primeng 4.2.1 → 4.3.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/.travis.yml +20 -0
- package/README.md +5 -0
- package/components/autocomplete/autocomplete.d.ts +1 -1
- package/components/autocomplete/autocomplete.js +17 -11
- package/components/autocomplete/autocomplete.js.map +1 -1
- package/components/autocomplete/autocomplete.metadata.json +1 -1
- package/components/blockui/blockui.d.ts +2 -0
- package/components/blockui/blockui.js +13 -1
- package/components/blockui/blockui.js.map +1 -1
- package/components/blockui/blockui.metadata.json +1 -1
- package/components/breadcrumb/breadcrumb.js +1 -1
- package/components/breadcrumb/breadcrumb.js.map +1 -1
- package/components/breadcrumb/breadcrumb.metadata.json +1 -1
- package/components/calendar/calendar.d.ts +6 -0
- package/components/calendar/calendar.js +167 -58
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/calendar.metadata.json +1 -1
- package/components/carousel/carousel.js +4 -2
- package/components/carousel/carousel.js.map +1 -1
- package/components/checkbox/checkbox.d.ts +2 -1
- package/components/checkbox/checkbox.js +7 -0
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/checkbox.metadata.json +1 -1
- package/components/chips/chips.d.ts +5 -2
- package/components/chips/chips.js +24 -4
- package/components/chips/chips.js.map +1 -1
- package/components/chips/chips.metadata.json +1 -1
- package/components/colorpicker/colorpicker.js +5 -5
- package/components/colorpicker/colorpicker.js.map +1 -1
- package/components/common/menuitem.d.ts +4 -1
- package/components/common/shared.d.ts +11 -0
- package/components/common/shared.js +46 -1
- package/components/common/shared.js.map +1 -1
- package/components/common/shared.metadata.json +1 -1
- package/components/confirmdialog/confirmdialog.d.ts +5 -2
- package/components/confirmdialog/confirmdialog.js +34 -18
- package/components/confirmdialog/confirmdialog.js.map +1 -1
- package/components/confirmdialog/confirmdialog.metadata.json +1 -1
- package/components/contextmenu/contextmenu.js +1 -1
- package/components/contextmenu/contextmenu.js.map +1 -1
- package/components/contextmenu/contextmenu.metadata.json +1 -1
- package/components/datalist/datalist.js +1 -1
- package/components/datalist/datalist.js.map +1 -1
- package/components/datalist/datalist.metadata.json +1 -1
- package/components/datatable/datatable.d.ts +25 -7
- package/components/datatable/datatable.js +222 -104
- package/components/datatable/datatable.js.map +1 -1
- package/components/datatable/datatable.metadata.json +1 -1
- package/components/dialog/dialog.d.ts +16 -8
- package/components/dialog/dialog.js +86 -38
- package/components/dialog/dialog.js.map +1 -1
- package/components/dialog/dialog.metadata.json +1 -1
- package/components/dropdown/dropdown.d.ts +8 -4
- package/components/dropdown/dropdown.js +24 -2
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/dropdown.metadata.json +1 -1
- package/components/editor/editor.d.ts +2 -1
- package/components/editor/editor.js +21 -4
- package/components/editor/editor.js.map +1 -1
- package/components/editor/editor.metadata.json +1 -1
- package/components/growl/growl.d.ts +2 -2
- package/components/growl/growl.js +20 -10
- package/components/growl/growl.js.map +1 -1
- package/components/growl/growl.metadata.json +1 -1
- package/components/inputswitch/inputswitch.js +1 -1
- package/components/inputswitch/inputswitch.js.map +1 -1
- package/components/lightbox/lightbox.js +1 -1
- package/components/lightbox/lightbox.js.map +1 -1
- package/components/lightbox/lightbox.metadata.json +1 -1
- package/components/listbox/listbox.d.ts +12 -4
- package/components/listbox/listbox.js +73 -39
- package/components/listbox/listbox.js.map +1 -1
- package/components/listbox/listbox.metadata.json +1 -1
- package/components/megamenu/megamenu.js +1 -1
- package/components/megamenu/megamenu.js.map +1 -1
- package/components/megamenu/megamenu.metadata.json +1 -1
- package/components/menu/menu.js +1 -1
- package/components/menu/menu.js.map +1 -1
- package/components/menu/menu.metadata.json +1 -1
- package/components/menubar/menubar.js +1 -1
- package/components/menubar/menubar.js.map +1 -1
- package/components/menubar/menubar.metadata.json +1 -1
- package/components/message/message.d.ts +7 -0
- package/components/message/message.js +77 -0
- package/components/message/message.js.map +1 -0
- package/components/message/message.metadata.json +1 -0
- package/components/messages/messages.js +3 -3
- package/components/messages/messages.js.map +1 -1
- package/components/messages/messages.metadata.json +1 -1
- package/components/multiselect/multiselect.d.ts +15 -10
- package/components/multiselect/multiselect.js +73 -27
- package/components/multiselect/multiselect.js.map +1 -1
- package/components/multiselect/multiselect.metadata.json +1 -1
- package/components/orderlist/orderlist.js +10 -6
- package/components/orderlist/orderlist.js.map +1 -1
- package/components/orderlist/orderlist.metadata.json +1 -1
- package/components/overlaypanel/overlaypanel.d.ts +10 -5
- package/components/overlaypanel/overlaypanel.js +61 -40
- package/components/overlaypanel/overlaypanel.js.map +1 -1
- package/components/overlaypanel/overlaypanel.metadata.json +1 -1
- package/components/paginator/paginator.d.ts +4 -1
- package/components/paginator/paginator.js +27 -8
- package/components/paginator/paginator.js.map +1 -1
- package/components/paginator/paginator.metadata.json +1 -1
- package/components/panel/panel.d.ts +1 -0
- package/components/panel/panel.js +6 -1
- package/components/panel/panel.js.map +1 -1
- package/components/panel/panel.metadata.json +1 -1
- package/components/panelmenu/panelmenu.d.ts +2 -0
- package/components/panelmenu/panelmenu.js +25 -3
- package/components/panelmenu/panelmenu.js.map +1 -1
- package/components/panelmenu/panelmenu.metadata.json +1 -1
- package/components/picklist/picklist.d.ts +5 -2
- package/components/picklist/picklist.js +39 -7
- package/components/picklist/picklist.js.map +1 -1
- package/components/picklist/picklist.metadata.json +1 -1
- package/components/progressbar/progressbar.d.ts +3 -0
- package/components/progressbar/progressbar.js +14 -1
- package/components/progressbar/progressbar.js.map +1 -1
- package/components/progressbar/progressbar.metadata.json +1 -1
- package/components/progressspinner/progressspinner.d.ts +9 -0
- package/components/progressspinner/progressspinner.js +62 -0
- package/components/progressspinner/progressspinner.js.map +1 -0
- package/components/progressspinner/progressspinner.metadata.json +1 -0
- package/components/rating/rating.d.ts +6 -0
- package/components/rating/rating.js +28 -1
- package/components/rating/rating.js.map +1 -1
- package/components/rating/rating.metadata.json +1 -1
- package/components/schedule/schedule.d.ts +1 -0
- package/components/schedule/schedule.js +5 -0
- package/components/schedule/schedule.js.map +1 -1
- package/components/schedule/schedule.metadata.json +1 -1
- package/components/selectbutton/selectbutton.d.ts +6 -1
- package/components/selectbutton/selectbutton.js +26 -7
- package/components/selectbutton/selectbutton.js.map +1 -1
- package/components/selectbutton/selectbutton.metadata.json +1 -1
- package/components/sidebar/sidebar.d.ts +38 -0
- package/components/sidebar/sidebar.js +214 -0
- package/components/sidebar/sidebar.js.map +1 -0
- package/components/sidebar/sidebar.metadata.json +1 -0
- package/components/slidemenu/slidemenu.js +1 -1
- package/components/slidemenu/slidemenu.js.map +1 -1
- package/components/slidemenu/slidemenu.metadata.json +1 -1
- package/components/slider/slider.js +18 -16
- package/components/slider/slider.js.map +1 -1
- package/components/spinner/spinner.d.ts +4 -3
- package/components/spinner/spinner.js +12 -7
- package/components/spinner/spinner.js.map +1 -1
- package/components/spinner/spinner.metadata.json +1 -1
- package/components/splitbutton/splitbutton.js +1 -1
- package/components/splitbutton/splitbutton.js.map +1 -1
- package/components/splitbutton/splitbutton.metadata.json +1 -1
- package/components/steps/steps.js +1 -1
- package/components/steps/steps.js.map +1 -1
- package/components/steps/steps.metadata.json +1 -1
- package/components/tabmenu/tabmenu.d.ts +0 -1
- package/components/tabmenu/tabmenu.js +1 -6
- package/components/tabmenu/tabmenu.js.map +1 -1
- package/components/tabmenu/tabmenu.metadata.json +1 -1
- package/components/tieredmenu/tieredmenu.js +5 -3
- package/components/tieredmenu/tieredmenu.js.map +1 -1
- package/components/tieredmenu/tieredmenu.metadata.json +1 -1
- package/components/tooltip/tooltip.d.ts +1 -0
- package/components/tooltip/tooltip.js +11 -0
- package/components/tooltip/tooltip.js.map +1 -1
- package/components/tooltip/tooltip.metadata.json +1 -1
- package/components/treetable/treetable.js +2 -2
- package/components/treetable/treetable.js.map +1 -1
- package/components/treetable/treetable.metadata.json +1 -1
- package/components/utils/objectutils.d.ts +2 -0
- package/components/utils/objectutils.js +11 -0
- package/components/utils/objectutils.js.map +1 -1
- package/components/utils/objectutils.metadata.json +1 -1
- package/package-lock.json +14366 -0
- package/package.json +34 -34
- package/primeng.d.ts +3 -0
- package/primeng.js +3 -0
- package/resources/primeng.css +342 -40
- package/resources/primeng.min.css +1 -1
- package/resources/themes/_theme.scss +93 -83
- package/resources/themes/cruze/theme.css +12 -3
- package/resources/themes/cruze/theme.css.map +7 -0
- package/resources/themes/cupertino/theme.css +12 -3
- package/resources/themes/cupertino/theme.css.map +7 -0
- package/resources/themes/darkness/theme.css +12 -3
- package/resources/themes/darkness/theme.css.map +7 -0
- package/resources/themes/flick/theme.css +12 -3
- package/resources/themes/flick/theme.css.map +7 -0
- package/resources/themes/home/theme.css +12 -3
- package/resources/themes/home/theme.css.map +7 -0
- package/resources/themes/kasper/theme.css +12 -3
- package/resources/themes/kasper/theme.css.map +7 -0
- package/resources/themes/lightness/theme.css +12 -3
- package/resources/themes/lightness/theme.css.map +7 -0
- package/resources/themes/ludvig/theme.css +12 -3
- package/resources/themes/ludvig/theme.css.map +7 -0
- package/resources/themes/omega/theme.css +20 -9
- package/resources/themes/omega/theme.css.map +1 -1
- package/resources/themes/omega/theme.scss +21 -6
- package/resources/themes/pepper-grinder/theme.css +12 -3
- package/resources/themes/pepper-grinder/theme.css.map +7 -0
- package/resources/themes/redmond/theme.css +12 -3
- package/resources/themes/redmond/theme.css.map +7 -0
- package/resources/themes/rocket/theme.css +12 -3
- package/resources/themes/rocket/theme.css.map +7 -0
- package/resources/themes/south-street/theme.css +12 -3
- package/resources/themes/south-street/theme.css.map +7 -0
- package/resources/themes/start/theme.css +12 -3
- package/resources/themes/start/theme.css.map +7 -0
- package/resources/themes/trontastic/theme.css +12 -3
- package/resources/themes/trontastic/theme.css.map +7 -0
- package/resources/themes/voclain/theme.css +12 -3
- package/resources/themes/voclain/theme.css.map +7 -0
@@ -70,7 +70,7 @@ __decorate([
|
|
70
70
|
DTCheckbox = __decorate([
|
71
71
|
core_1.Component({
|
72
72
|
selector: 'p-dtCheckbox',
|
73
|
-
template: "\n <div class=\"ui-chkbox ui-widget\">\n <div class=\"ui-helper-hidden-accessible\">\n <input type=\"checkbox\" [checked]=\"checked\">\n </div>\n <div class=\"ui-chkbox-box ui-widget ui-corner-all ui-state-default\" (click)=\"handleClick($event)\"\n (mouseover)=\"hover=true\" (mouseout)=\"hover=false\"
|
73
|
+
template: "\n <div class=\"ui-chkbox ui-widget\">\n <div class=\"ui-helper-hidden-accessible\">\n <input type=\"checkbox\" [checked]=\"checked\">\n </div>\n <div class=\"ui-chkbox-box ui-widget ui-corner-all ui-state-default\" (click)=\"handleClick($event)\"\n (mouseover)=\"hover=true\" (mouseout)=\"hover=false\"\n [ngClass]=\"{'ui-state-hover':hover&&!disabled,'ui-state-active':checked&&!disabled,'ui-state-disabled':disabled}\">\n <span class=\"ui-chkbox-icon ui-clickable\" [ngClass]=\"{'fa fa-check':checked}\"></span>\n </div>\n </div>\n "
|
74
74
|
})
|
75
75
|
], DTCheckbox);
|
76
76
|
exports.DTCheckbox = DTCheckbox;
|
@@ -122,7 +122,7 @@ __decorate([
|
|
122
122
|
ColumnHeaders = __decorate([
|
123
123
|
core_1.Component({
|
124
124
|
selector: '[pColumnHeaders]',
|
125
|
-
template: "\n <ng-template ngFor let-col [ngForOf]=\"columns\" let-lastCol=\"last\">\n <th #headerCell [attr.id]=\"col.colId\" [ngStyle]=\"col.style\" [class]=\"col.styleClass\" (click)=\"dt.sort($event,col)\" [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\"\n [ngClass]=\"{'ui-state-default ui-unselectable-text':true, 'ui-sortable-column': col.sortable, 'ui-state-active': dt.isSorted(col), 'ui-resizable-column': dt.resizableColumns, 'ui-selection-column':col.selectionMode,\n 'ui-helper-hidden': col.hidden}\"
|
125
|
+
template: "\n <ng-template ngFor let-col [ngForOf]=\"columns\" let-lastCol=\"last\">\n <th #headerCell [attr.id]=\"col.colId\" [ngStyle]=\"col.headerStyle||col.style\" [class]=\"col.headerStyleClass||col.styleClass\" (click)=\"dt.sort($event,col)\" [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\"\n [ngClass]=\"{'ui-state-default ui-unselectable-text':true, 'ui-sortable-column': col.sortable, 'ui-state-active': dt.isSorted(col), 'ui-resizable-column': dt.resizableColumns, 'ui-selection-column':col.selectionMode,\n 'ui-helper-hidden': col.hidden}\"\n (dragstart)=\"dt.onColumnDragStart($event)\" (dragleave)=\"dt.onColumnDragleave($event)\" (drop)=\"dt.onColumnDrop($event)\" (mousedown)=\"dt.onHeaderMousedown($event,headerCell)\"\n [attr.tabindex]=\"col.sortable ? tabindex : null\" (keydown)=\"dt.onHeaderKeydown($event,col)\"\n [attr.scope]=\"col.scope||(col.colspan ? 'colgroup' : 'col')\">\n <span class=\"ui-column-resizer ui-clickable\" *ngIf=\"dt.resizableColumns && ((dt.columnResizeMode == 'fit' && !lastCol) || dt.columnResizeMode == 'expand')\" (mousedown)=\"dt.initColumnResize($event)\"></span>\n <span class=\"ui-column-title\" *ngIf=\"!col.selectionMode&&!col.headerTemplate\">{{col.header}}</span>\n <span class=\"ui-column-title\" *ngIf=\"col.headerTemplate\">\n <p-columnHeaderTemplateLoader [column]=\"col\"></p-columnHeaderTemplateLoader>\n </span>\n <span class=\"ui-sortable-column-icon fa fa-fw fa-sort\" *ngIf=\"col.sortable\"\n [ngClass]=\"{'fa-sort-desc': (dt.getSortOrder(col) == -1),'fa-sort-asc': (dt.getSortOrder(col) == 1)}\"></span>\n <input [attr.type]=\"col.filterType\" class=\"ui-column-filter ui-inputtext ui-widget ui-state-default ui-corner-all\" [attr.maxlength]=\"col.filterMaxlength\" [attr.placeholder]=\"col.filterPlaceholder\" *ngIf=\"col.filter&&!col.filterTemplate\" [value]=\"dt.filters[col.filterField||col.field] ? dt.filters[col.filterField||col.field].value : ''\"\n (click)=\"dt.onFilterInputClick($event)\" (input)=\"dt.onFilterKeyup($event.target.value, col.filterField||col.field, col.filterMatchMode)\"/>\n <p-columnFilterTemplateLoader [column]=\"col\" *ngIf=\"col.filter&&col.filterTemplate\"></p-columnFilterTemplateLoader>\n <p-dtCheckbox *ngIf=\"col.selectionMode=='multiple' && dt.showHeaderCheckbox === true\" (onChange)=\"dt.toggleRowsWithCheckbox($event)\" [checked]=\"dt.allSelected\" [disabled]=\"dt.isEmpty()\"></p-dtCheckbox>\n </th>\n </ng-template>\n "
|
126
126
|
}),
|
127
127
|
__param(0, core_1.Inject(core_1.forwardRef(function () { return DataTable; }))),
|
128
128
|
__metadata("design:paramtypes", [DataTable])
|
@@ -141,7 +141,7 @@ __decorate([
|
|
141
141
|
ColumnFooters = __decorate([
|
142
142
|
core_1.Component({
|
143
143
|
selector: '[pColumnFooters]',
|
144
|
-
template: "\n <td *ngFor=\"let col of columns\" [ngStyle]=\"col.style\" [class]=\"col.styleClass\"\n [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\"\n [ngClass]=\"{'ui-state-default':true, 'ui-helper-hidden': col.hidden}\">\n <span class=\"ui-column-footer\" *ngIf=\"!col.footerTemplate\">{{col.footer}}</span>\n <span class=\"ui-column-footer\" *ngIf=\"col.footerTemplate\">\n <p-columnFooterTemplateLoader [column]=\"col\"></p-columnFooterTemplateLoader>\n </span>\n </td>\n "
|
144
|
+
template: "\n <td *ngFor=\"let col of columns\" [ngStyle]=\"col.footerStyle||col.style\" [class]=\"col.footerStyleClass||col.styleClass\"\n [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\"\n [ngClass]=\"{'ui-state-default':true, 'ui-helper-hidden': col.hidden}\">\n <span class=\"ui-column-footer\" *ngIf=\"!col.footerTemplate\">{{col.footer}}</span>\n <span class=\"ui-column-footer\" *ngIf=\"col.footerTemplate\">\n <p-columnFooterTemplateLoader [column]=\"col\"></p-columnFooterTemplateLoader>\n </span>\n </td>\n "
|
145
145
|
}),
|
146
146
|
__param(0, core_1.Inject(core_1.forwardRef(function () { return DataTable; }))),
|
147
147
|
__metadata("design:paramtypes", [DataTable])
|
@@ -167,7 +167,7 @@ __decorate([
|
|
167
167
|
TableBody = __decorate([
|
168
168
|
core_1.Component({
|
169
169
|
selector: '[pTableBody]',
|
170
|
-
template: "\n <ng-template ngFor let-rowData [ngForOf]=\"data\" let-even=\"even\" let-odd=\"odd\" let-rowIndex=\"index\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <tr #rowGroupElement class=\"ui-widget-header ui-rowgroup-header\"
|
170
|
+
template: "\n <ng-template ngFor let-rowData [ngForOf]=\"data\" let-even=\"even\" let-odd=\"odd\" let-rowIndex=\"index\" [ngForTrackBy]=\"dt.rowTrackBy\">\n <tr #rowGroupElement class=\"ui-widget-header ui-rowgroup-header\"\n *ngIf=\"dt.rowGroupMode=='subheader' && (rowIndex === 0||(dt.resolveFieldData(rowData,dt.groupField) !== dt.resolveFieldData(dt.dataToRender[rowIndex - 1], dt.groupField)))\"\n (click)=\"dt.onRowGroupClick($event)\" [ngStyle]=\"{'cursor': dt.sortableRowGroup ? 'pointer' : 'auto'}\">\n <td [attr.colspan]=\"dt.visibleColumns().length\">\n <a href=\"#\" *ngIf=\"dt.expandableRowGroups\" (click)=\"dt.toggleRowGroup($event,rowData)\">\n <span class=\"fa fa-fw\" [ngClass]=\"dt.isRowGroupExpanded(rowData) ? dt.expandedIcon : dt.collapsedIcon\"></span>\n </a>\n <span class=\"ui-rowgroup-header-name\">\n <p-templateLoader [template]=\"dt.rowGroupHeaderTemplate\" [data]=\"rowData\"></p-templateLoader>\n </span>\n </td>\n </tr>\n <tr #rowElement *ngIf=\"!dt.expandableRowGroups||dt.isRowGroupExpanded(rowData)\"\n (click)=\"dt.handleRowClick($event, rowData, rowIndex)\" (dblclick)=\"dt.rowDblclick($event,rowData)\" (contextmenu)=\"dt.onRowRightClick($event,rowData)\" (touchend)=\"dt.handleRowTouchEnd($event)\"\n [ngClass]=\"[even&&dt.rowGroupMode!='rowspan'? 'ui-datatable-even':'',\n odd&&dt.rowGroupMode!='rowspan'?'ui-datatable-odd':'',\n dt.isSelected(rowData)? 'ui-state-highlight': '',\n dt.isRowExpanded(rowData) ? 'ui-expanded-row': '',\n dt.getRowStyleClass(rowData,rowIndex)]\">\n <ng-template ngFor let-col [ngForOf]=\"columns\" let-colIndex=\"index\">\n <td #cell *ngIf=\"!dt.rowGroupMode || (dt.rowGroupMode == 'subheader') ||\n (dt.rowGroupMode=='rowspan' && ((dt.sortField==col.field && dt.rowGroupMetadata[dt.resolveFieldData(rowData,dt.sortField)].index == rowIndex) || (dt.sortField!=col.field)))\"\n [ngStyle]=\"col.bodyStyle||col.style\" [class]=\"col.bodyStyleClass||col.styleClass\" (click)=\"dt.switchCellToEditMode(cell,col,rowData)\"\n [ngClass]=\"{'ui-editable-column':col.editable,'ui-selection-column':col.selectionMode, 'ui-helper-hidden': col.hidden}\"\n [attr.rowspan]=\"(dt.rowGroupMode=='rowspan' && dt.sortField == col.field && dt.rowGroupMetadata[dt.resolveFieldData(rowData,dt.sortField)].index == rowIndex) ? dt.rowGroupMetadata[dt.resolveFieldData(rowData,dt.sortField)].size : null\">\n <span class=\"ui-column-title\" *ngIf=\"dt.responsive\">{{col.header}}</span>\n <span class=\"ui-cell-data\" *ngIf=\"!col.bodyTemplate && !col.expander && !col.selectionMode\">{{dt.resolveFieldData(rowData,col.field)}}</span>\n <span class=\"ui-cell-data\" *ngIf=\"col.bodyTemplate\">\n <p-columnBodyTemplateLoader [column]=\"col\" [rowData]=\"rowData\" [rowIndex]=\"rowIndex + dt.first\"></p-columnBodyTemplateLoader>\n </span>\n <div class=\"ui-cell-editor\" *ngIf=\"col.editable\">\n <input *ngIf=\"!col.editorTemplate\" type=\"text\" [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"dt.onCellEditorKeydown($event, col, rowData, rowIndex)\" (blur)=\"dt.onCellEditorBlur($event, col, rowData, rowIndex)\"\n (input)=\"dt.onCellEditorInput($event, col, rowData, rowIndex)\" (change)=\"dt.onCellEditorChange($event, col, rowData, rowIndex)\"\n class=\"ui-inputtext ui-widget ui-state-default ui-corner-all\"/>\n <a *ngIf=\"col.editorTemplate\" class=\"ui-cell-editor-proxy-focus\" href=\"#\" (focus)=\"dt.onCustomEditorFocusPrev($event, colIndex)\"></a>\n <p-columnEditorTemplateLoader *ngIf=\"col.editorTemplate\" [column]=\"col\" [rowData]=\"rowData\" [rowIndex]=\"rowIndex\"></p-columnEditorTemplateLoader>\n <a *ngIf=\"col.editorTemplate\" class=\"ui-cell-editor-proxy-focus\" href=\"#\" (focus)=\"dt.onCustomEditorFocusNext($event, colIndex)\"></a>\n </div>\n <a href=\"#\" *ngIf=\"col.expander\" (click)=\"dt.toggleRow(rowData,$event)\">\n <span class=\"ui-row-toggler fa fa-fw ui-clickable\" [ngClass]=\"dt.isRowExpanded(rowData) ? dt.expandedIcon : dt.collapsedIcon\"></span>\n </a>\n <p-dtRadioButton *ngIf=\"col.selectionMode=='single'\" (onClick)=\"dt.selectRowWithRadio($event, rowData)\" [checked]=\"dt.isSelected(rowData)\"></p-dtRadioButton>\n <p-dtCheckbox *ngIf=\"col.selectionMode=='multiple'\" (onChange)=\"dt.toggleRowWithCheckbox($event,rowData)\" [checked]=\"dt.isSelected(rowData)\"></p-dtCheckbox>\n </td>\n </ng-template>\n </tr>\n <tr *ngIf=\"dt.expandableRows && dt.isRowExpanded(rowData)\" class=\"ui-expanded-row-content\">\n <td [attr.colspan]=\"dt.visibleColumns().length\">\n <p-rowExpansionLoader [rowData]=\"rowData\" [rowIndex]=\"rowIndex\" [template]=\"dt.rowExpansionTemplate\"></p-rowExpansionLoader>\n </td>\n </tr>\n <tr class=\"ui-widget-header ui-rowgroup-footer\" *ngIf=\"dt.rowGroupFooterTemplate && dt.rowGroupMode=='subheader' && ((rowIndex === dt.dataToRender.length - 1)||(dt.resolveFieldData(rowData,dt.groupField) !== dt.resolveFieldData(dt.dataToRender[rowIndex + 1],dt.groupField))) && (!dt.expandableRowGroups || dt.isRowGroupExpanded(rowData))\">\n <p-templateLoader class=\"ui-helper-hidden\" [data]=\"rowData\" [template]=\"dt.rowGroupFooterTemplate\"></p-templateLoader>\n </tr>\n </ng-template>\n\n <tr *ngIf=\"dt.isEmpty()\" class=\"ui-widget-content ui-datatable-emptymessage-row\" [style.visibility]=\"dt.loading ? 'hidden' : 'visible'\">\n <td [attr.colspan]=\"dt.visibleColumns().length\" class=\"ui-datatable-emptymessage\">\n <span *ngIf=\"!dt.emptyMessageTemplate\">{{dt.emptyMessage}}</span>\n <p-templateLoader [template]=\"dt.emptyMessageTemplate\"></p-templateLoader>\n </td>\n </tr>\n "
|
171
171
|
}),
|
172
172
|
__param(0, core_1.Inject(core_1.forwardRef(function () { return DataTable; }))),
|
173
173
|
__metadata("design:paramtypes", [DataTable])
|
@@ -210,18 +210,22 @@ var ScrollableView = (function () {
|
|
210
210
|
this.scrollTableWrapper = this.scrollTableWrapperViewChild.nativeElement;
|
211
211
|
this.scrollFooter = this.scrollFooterViewChild ? this.scrollFooterViewChild.nativeElement : null;
|
212
212
|
this.scrollFooterBox = this.scrollFooterBoxViewChild ? this.scrollFooterBoxViewChild.nativeElement : null;
|
213
|
+
this.setScrollHeight();
|
213
214
|
if (!this.frozen) {
|
214
215
|
this.zone.runOutsideAngular(function () {
|
215
216
|
_this.scrollHeader.addEventListener('scroll', _this.onHeaderScroll.bind(_this));
|
216
217
|
_this.scrollBody.addEventListener('scroll', _this.onBodyScroll.bind(_this));
|
217
218
|
});
|
218
219
|
}
|
219
|
-
if (!this.frozen)
|
220
|
+
if (!this.frozen) {
|
220
221
|
this.alignScrollBar();
|
221
|
-
|
222
|
+
}
|
223
|
+
else {
|
222
224
|
this.scrollBody.style.paddingBottom = this.domHandler.calculateScrollbarWidth() + 'px';
|
225
|
+
}
|
223
226
|
};
|
224
227
|
ScrollableView.prototype.onBodyScroll = function (event) {
|
228
|
+
var _this = this;
|
225
229
|
var frozenView = this.el.nativeElement.previousElementSibling;
|
226
230
|
if (frozenView) {
|
227
231
|
var frozenScrollBody = this.domHandler.findSingle(frozenView, '.ui-datatable-scrollable-body');
|
@@ -236,15 +240,35 @@ var ScrollableView = (function () {
|
|
236
240
|
if (this.virtualScroll) {
|
237
241
|
var viewport = this.domHandler.getOuterHeight(this.scrollBody);
|
238
242
|
var tableHeight = this.domHandler.getOuterHeight(this.scrollTable);
|
239
|
-
var
|
243
|
+
var pageHeight_1 = this.rowHeight * this.dt.rows;
|
240
244
|
var virtualTableHeight = this.domHandler.getOuterHeight(this.scrollTableWrapper);
|
241
|
-
var pageCount = (virtualTableHeight /
|
245
|
+
var pageCount = (virtualTableHeight / pageHeight_1) || 1;
|
242
246
|
if (this.scrollBody.scrollTop + viewport > parseFloat(this.scrollTable.style.top) + tableHeight || this.scrollBody.scrollTop < parseFloat(this.scrollTable.style.top)) {
|
243
|
-
var
|
247
|
+
var page_1 = Math.floor((this.scrollBody.scrollTop * pageCount) / (this.scrollBody.scrollHeight)) + 1;
|
244
248
|
this.onVirtualScroll.emit({
|
245
|
-
page:
|
249
|
+
page: page_1,
|
250
|
+
callback: function () {
|
251
|
+
_this.scrollTable.style.top = ((page_1 - 1) * pageHeight_1) + 'px';
|
252
|
+
}
|
246
253
|
});
|
247
|
-
|
254
|
+
}
|
255
|
+
}
|
256
|
+
};
|
257
|
+
ScrollableView.prototype.setScrollHeight = function () {
|
258
|
+
if (this.dt.scrollHeight) {
|
259
|
+
if (this.dt.scrollHeight.indexOf('%') !== -1) {
|
260
|
+
this.scrollBody.style.visibility = 'hidden';
|
261
|
+
this.scrollBody.style.height = '100px'; //temporary height to calculate static height
|
262
|
+
var containerHeight = this.domHandler.getOuterHeight(this.dt.el.nativeElement.children[0]);
|
263
|
+
var relativeHeight = this.domHandler.getOuterHeight(this.dt.el.nativeElement.parentElement) * parseInt(this.dt.scrollHeight) / 100;
|
264
|
+
var staticHeight = containerHeight - 100; //total height of headers, footers, paginators
|
265
|
+
var scrollBodyHeight = (relativeHeight - staticHeight);
|
266
|
+
this.scrollBody.style.height = 'auto';
|
267
|
+
this.scrollBody.style.maxHeight = scrollBodyHeight + 'px';
|
268
|
+
this.scrollBody.style.visibility = 'visible';
|
269
|
+
}
|
270
|
+
else {
|
271
|
+
this.scrollBody.style.maxHeight = this.dt.scrollHeight;
|
248
272
|
}
|
249
273
|
}
|
250
274
|
};
|
@@ -271,6 +295,14 @@ __decorate([
|
|
271
295
|
core_1.Input("pScrollableView"),
|
272
296
|
__metadata("design:type", Array)
|
273
297
|
], ScrollableView.prototype, "columns", void 0);
|
298
|
+
__decorate([
|
299
|
+
core_1.Input(),
|
300
|
+
__metadata("design:type", shared_2.HeaderColumnGroup)
|
301
|
+
], ScrollableView.prototype, "headerColumnGroup", void 0);
|
302
|
+
__decorate([
|
303
|
+
core_1.Input(),
|
304
|
+
__metadata("design:type", shared_2.HeaderColumnGroup)
|
305
|
+
], ScrollableView.prototype, "footerColumnGroup", void 0);
|
274
306
|
__decorate([
|
275
307
|
core_1.ViewChild('scrollHeader'),
|
276
308
|
__metadata("design:type", core_1.ElementRef)
|
@@ -318,7 +350,7 @@ __decorate([
|
|
318
350
|
ScrollableView = __decorate([
|
319
351
|
core_1.Component({
|
320
352
|
selector: '[pScrollableView]',
|
321
|
-
template: "\n <div #scrollHeader class=\"ui-widget-header ui-datatable-scrollable-header\" [ngStyle]=\"{'width': width}\">\n <div #scrollHeaderBox class=\"ui-datatable-scrollable-header-box\">\n <table [ngClass]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <thead class=\"ui-datatable-thead\">\n <tr *ngIf=\"!
|
353
|
+
template: "\n <div #scrollHeader class=\"ui-widget-header ui-datatable-scrollable-header\" [ngStyle]=\"{'width': width}\">\n <div #scrollHeaderBox class=\"ui-datatable-scrollable-header-box\">\n <table [ngClass]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <thead class=\"ui-datatable-thead\">\n <tr *ngIf=\"!headerColumnGroup\" class=\"ui-state-default\" [pColumnHeaders]=\"columns\"></tr>\n <ng-template [ngIf]=\"headerColumnGroup\">\n <tr *ngFor=\"let headerRow of headerColumnGroup.rows\" class=\"ui-state-default\" [pColumnHeaders]=\"headerRow.columns\"></tr>\n </ng-template>\n </thead>\n <tbody *ngIf=\"dt.frozenValue\" [ngClass]=\"{'ui-datatable-data ui-widget-content': true, 'ui-datatable-hoverable-rows': (dt.rowHover||dt.selectionMode)}\" [pTableBody]=\"columns\" [data]=\"dt.frozenValue\"></tbody>\n </table>\n </div>\n </div>\n <div #scrollBody class=\"ui-datatable-scrollable-body\" [ngStyle]=\"{'width': width}\">\n <div #scrollTableWrapper class=\"ui-datatable-scrollable-table-wrapper\" style=\"position:relative\">\n <table #scrollTable [class]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\" [ngClass]=\"{'ui-datatable-virtual-table':virtualScroll}\" style=\"top:0px\">\n <colgroup class=\"ui-datatable-scrollable-colgroup\">\n <col *ngFor=\"let col of columns\" [ngStyle]=\"col.headerStyle||col.style\" [ngClass]=\"{'ui-helper-hidden': col.hidden}\"/>\n </colgroup>\n <tbody [ngClass]=\"{'ui-datatable-data ui-widget-content': true, 'ui-datatable-hoverable-rows': (dt.rowHover||dt.selectionMode)}\" [pTableBody]=\"columns\" [data]=\"dt.dataToRender\"></tbody>\n </table>\n </div>\n </div>\n <div #scrollFooter class=\"ui-widget-header ui-datatable-scrollable-footer\" [ngStyle]=\"{'width': width}\" *ngIf=\"dt.hasFooter()\">\n <div #scrollFooterBox class=\"ui-datatable-scrollable-footer-box\">\n <table [ngClass]=\"dt.tableStyleClass\" [ngStyle]=\"dt.tableStyle\">\n <tfoot class=\"ui-datatable-tfoot\">\n <tr *ngIf=\"!footerColumnGroup\" [pColumnFooters]=\"columns\" class=\"ui-state-default\"></tr>\n <ng-template [ngIf]=\"footerColumnGroup\">\n <tr *ngFor=\"let footerRow of footerColumnGroup.rows\" class=\"ui-state-default\" [pColumnFooters]=\"footerRow.columns\"></tr>\n </ng-template>\n </tfoot>\n </table>\n </div>\n </div>\n "
|
322
354
|
}),
|
323
355
|
__param(0, core_1.Inject(core_1.forwardRef(function () { return DataTable; }))),
|
324
356
|
__metadata("design:paramtypes", [DataTable, domhandler_1.DomHandler, core_1.ElementRef, core_1.Renderer2, core_1.NgZone])
|
@@ -335,6 +367,7 @@ var DataTable = (function () {
|
|
335
367
|
this.zone = zone;
|
336
368
|
this.pageLinks = 5;
|
337
369
|
this.selectionChange = new core_1.EventEmitter();
|
370
|
+
this.showHeaderCheckbox = true;
|
338
371
|
this.onRowClick = new core_1.EventEmitter();
|
339
372
|
this.onRowSelect = new core_1.EventEmitter();
|
340
373
|
this.onRowUnselect = new core_1.EventEmitter();
|
@@ -347,7 +380,6 @@ var DataTable = (function () {
|
|
347
380
|
this.onColResize = new core_1.EventEmitter();
|
348
381
|
this.onColReorder = new core_1.EventEmitter();
|
349
382
|
this.sortMode = 'single';
|
350
|
-
this.sortOrder = 1;
|
351
383
|
this.defaultSortOrder = 1;
|
352
384
|
this.csvSeparator = ',';
|
353
385
|
this.exportFilename = 'download';
|
@@ -372,8 +404,8 @@ var DataTable = (function () {
|
|
372
404
|
this.sortableRowGroup = true;
|
373
405
|
this.filters = {};
|
374
406
|
this.loadingIcon = 'fa-circle-o-notch';
|
375
|
-
this.enableLoader = true;
|
376
407
|
this.virtualScrollDelay = 500;
|
408
|
+
this.rowGroupExpandMode = 'multiple';
|
377
409
|
this.valueChange = new core_1.EventEmitter();
|
378
410
|
this.firstChange = new core_1.EventEmitter();
|
379
411
|
this.onRowExpand = new core_1.EventEmitter();
|
@@ -383,6 +415,7 @@ var DataTable = (function () {
|
|
383
415
|
this.page = 0;
|
384
416
|
this.columnsChanged = false;
|
385
417
|
this._first = 0;
|
418
|
+
this._sortOrder = 1;
|
386
419
|
this.filterConstraints = {
|
387
420
|
startsWith: function (value, filter) {
|
388
421
|
if (filter === undefined || filter === null || filter.trim() === '') {
|
@@ -455,6 +488,7 @@ var DataTable = (function () {
|
|
455
488
|
DataTable.prototype.ngAfterContentInit = function () {
|
456
489
|
var _this = this;
|
457
490
|
this.initColumns();
|
491
|
+
this.initColumnGroups();
|
458
492
|
this.columnsSubscription = this.cols.changes.subscribe(function (_) {
|
459
493
|
_this.initColumns();
|
460
494
|
_this.changeDetector.markForCheck();
|
@@ -510,6 +544,45 @@ var DataTable = (function () {
|
|
510
544
|
this.virtualScrollableTableWrapper = this.domHandler.findSingle(this.el.nativeElement, 'div.ui-datatable-scrollable-table-wrapper');
|
511
545
|
this.initialized = true;
|
512
546
|
};
|
547
|
+
Object.defineProperty(DataTable.prototype, "multiSortMeta", {
|
548
|
+
get: function () {
|
549
|
+
return this._multiSortMeta;
|
550
|
+
},
|
551
|
+
set: function (val) {
|
552
|
+
this._multiSortMeta = val;
|
553
|
+
if (this.sortMode === 'multiple') {
|
554
|
+
this.sortMultiple();
|
555
|
+
}
|
556
|
+
},
|
557
|
+
enumerable: true,
|
558
|
+
configurable: true
|
559
|
+
});
|
560
|
+
Object.defineProperty(DataTable.prototype, "sortField", {
|
561
|
+
get: function () {
|
562
|
+
return this._sortField;
|
563
|
+
},
|
564
|
+
set: function (val) {
|
565
|
+
this._sortField = val;
|
566
|
+
if (this.sortMode === 'single') {
|
567
|
+
this.sortSingle();
|
568
|
+
}
|
569
|
+
},
|
570
|
+
enumerable: true,
|
571
|
+
configurable: true
|
572
|
+
});
|
573
|
+
Object.defineProperty(DataTable.prototype, "sortOrder", {
|
574
|
+
get: function () {
|
575
|
+
return this._sortOrder;
|
576
|
+
},
|
577
|
+
set: function (val) {
|
578
|
+
this._sortOrder = val;
|
579
|
+
if (this.sortMode === 'single') {
|
580
|
+
this.sortSingle();
|
581
|
+
}
|
582
|
+
},
|
583
|
+
enumerable: true,
|
584
|
+
configurable: true
|
585
|
+
});
|
513
586
|
Object.defineProperty(DataTable.prototype, "value", {
|
514
587
|
get: function () {
|
515
588
|
return this._value;
|
@@ -561,9 +634,14 @@ var DataTable = (function () {
|
|
561
634
|
if (this.dataKey && !this.preventSelectionKeysPropagation) {
|
562
635
|
this.selectionKeys = {};
|
563
636
|
if (this._selection) {
|
564
|
-
|
565
|
-
var
|
566
|
-
|
637
|
+
if (Array.isArray(this._selection)) {
|
638
|
+
for (var _i = 0, _a = this._selection; _i < _a.length; _i++) {
|
639
|
+
var data = _a[_i];
|
640
|
+
this.selectionKeys[String(this.objectUtils.resolveFieldData(data, this.dataKey))] = 1;
|
641
|
+
}
|
642
|
+
}
|
643
|
+
else {
|
644
|
+
this.selectionKeys[String(this.objectUtils.resolveFieldData(this._selection, this.dataKey))] = 1;
|
567
645
|
}
|
568
646
|
}
|
569
647
|
}
|
@@ -582,12 +660,12 @@ var DataTable = (function () {
|
|
582
660
|
};
|
583
661
|
DataTable.prototype.handleDataChange = function () {
|
584
662
|
var _this = this;
|
585
|
-
if (this.lazy && this.enableLoader) {
|
586
|
-
this.loading = false;
|
587
|
-
}
|
588
663
|
if (this.paginator) {
|
589
664
|
this.updatePaginator();
|
590
665
|
}
|
666
|
+
if (this.virtualScroll && this.virtualScrollCallback) {
|
667
|
+
this.virtualScrollCallback();
|
668
|
+
}
|
591
669
|
if (!this.lazy) {
|
592
670
|
if (this.hasFilter()) {
|
593
671
|
this._filter();
|
@@ -608,42 +686,41 @@ var DataTable = (function () {
|
|
608
686
|
this.updateDataToRender(this.filteredValue || this.value);
|
609
687
|
};
|
610
688
|
DataTable.prototype.initColumns = function () {
|
611
|
-
var _this = this;
|
612
689
|
this.columns = this.cols.toArray();
|
613
|
-
|
614
|
-
this.scrollableColumns = [];
|
615
|
-
this.frozenColumns = [];
|
616
|
-
this.cols.forEach(function (col) {
|
617
|
-
if (col.frozen) {
|
618
|
-
_this.frozenColumns.push(col);
|
619
|
-
}
|
620
|
-
else {
|
621
|
-
_this.scrollableColumns.push(col);
|
622
|
-
}
|
623
|
-
});
|
624
|
-
}
|
690
|
+
this.initScrollableColumns();
|
625
691
|
this.columnsChanged = true;
|
626
692
|
};
|
627
|
-
DataTable.prototype.
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
if (value == null) {
|
637
|
-
return null;
|
638
|
-
}
|
639
|
-
value = value[fields[i]];
|
640
|
-
}
|
641
|
-
return value;
|
642
|
-
}
|
693
|
+
DataTable.prototype.initScrollableColumns = function () {
|
694
|
+
this.scrollableColumns = [];
|
695
|
+
this.frozenColumns = [];
|
696
|
+
for (var _i = 0, _a = this.columns; _i < _a.length; _i++) {
|
697
|
+
var col = _a[_i];
|
698
|
+
if (col.frozen)
|
699
|
+
this.frozenColumns.push(col);
|
700
|
+
else
|
701
|
+
this.scrollableColumns.push(col);
|
643
702
|
}
|
644
|
-
|
645
|
-
|
703
|
+
};
|
704
|
+
DataTable.prototype.initColumnGroups = function () {
|
705
|
+
var headerColumnsGroups = this.headerColumnGroups.toArray();
|
706
|
+
var footerColumnsGroups = this.footerColumnGroups.toArray();
|
707
|
+
for (var _i = 0, headerColumnsGroups_1 = headerColumnsGroups; _i < headerColumnsGroups_1.length; _i++) {
|
708
|
+
var columnGroup = headerColumnsGroups_1[_i];
|
709
|
+
if (columnGroup.frozen)
|
710
|
+
this.frozenHeaderColumnGroup = columnGroup;
|
711
|
+
else
|
712
|
+
this.scrollableHeaderColumnGroup = columnGroup;
|
646
713
|
}
|
714
|
+
for (var _a = 0, footerColumnsGroups_1 = footerColumnsGroups; _a < footerColumnsGroups_1.length; _a++) {
|
715
|
+
var columnGroup = footerColumnsGroups_1[_a];
|
716
|
+
if (columnGroup.frozen)
|
717
|
+
this.frozenFooterColumnGroup = columnGroup;
|
718
|
+
else
|
719
|
+
this.scrollableFooterColumnGroup = columnGroup;
|
720
|
+
}
|
721
|
+
};
|
722
|
+
DataTable.prototype.resolveFieldData = function (data, field) {
|
723
|
+
return this.objectUtils.resolveFieldData(data, field);
|
647
724
|
};
|
648
725
|
DataTable.prototype.updateRowGroupMetadata = function () {
|
649
726
|
this.rowGroupMetadata = {};
|
@@ -717,6 +794,7 @@ var DataTable = (function () {
|
|
717
794
|
DataTable.prototype.onVirtualScroll = function (event) {
|
718
795
|
var _this = this;
|
719
796
|
this._first = (event.page - 1) * this.rows;
|
797
|
+
this.virtualScrollCallback = event.callback;
|
720
798
|
this.zone.run(function () {
|
721
799
|
if (_this.virtualScrollTimer) {
|
722
800
|
clearTimeout(_this.virtualScrollTimer);
|
@@ -755,13 +833,13 @@ var DataTable = (function () {
|
|
755
833
|
this.preventSortPropagation = true;
|
756
834
|
}
|
757
835
|
var columnSortField = column.sortField || column.field;
|
758
|
-
this.
|
759
|
-
this.
|
836
|
+
this._sortOrder = (this.sortField === columnSortField) ? this.sortOrder * -1 : this.defaultSortOrder;
|
837
|
+
this._sortField = columnSortField;
|
760
838
|
this.sortColumn = column;
|
761
839
|
var metaKey = event.metaKey || event.ctrlKey;
|
762
840
|
if (this.sortMode == 'multiple') {
|
763
841
|
if (!this.multiSortMeta || !metaKey) {
|
764
|
-
this.
|
842
|
+
this._multiSortMeta = [];
|
765
843
|
}
|
766
844
|
this.addSortMeta({ field: this.sortField, order: this.sortOrder });
|
767
845
|
}
|
@@ -908,11 +986,11 @@ var DataTable = (function () {
|
|
908
986
|
var targetNode = event.target.nodeName;
|
909
987
|
if ((targetNode == 'TD' || (targetNode == 'SPAN' && !this.domHandler.hasClass(event.target, 'ui-clickable')))) {
|
910
988
|
if (this.sortField != this.groupField) {
|
911
|
-
this.
|
989
|
+
this._sortField = this.groupField;
|
912
990
|
this.sortSingle();
|
913
991
|
}
|
914
992
|
else {
|
915
|
-
this.
|
993
|
+
this._sortOrder = -1 * this.sortOrder;
|
916
994
|
this.sortSingle();
|
917
995
|
}
|
918
996
|
}
|
@@ -1061,6 +1139,7 @@ var DataTable = (function () {
|
|
1061
1139
|
if (selected) {
|
1062
1140
|
var selectionIndex_2 = this.findIndexInSelection(rowData);
|
1063
1141
|
this._selection = this.selection.filter(function (val, i) { return i != selectionIndex_2; });
|
1142
|
+
this.selectionChange.emit(this.selection);
|
1064
1143
|
this.onRowUnselect.emit({ originalEvent: event, data: rowData, type: 'row' });
|
1065
1144
|
if (dataKeyValue) {
|
1066
1145
|
delete this.selectionKeys[dataKeyValue];
|
@@ -1068,13 +1147,13 @@ var DataTable = (function () {
|
|
1068
1147
|
}
|
1069
1148
|
else {
|
1070
1149
|
this._selection = (this.selection || []).concat([rowData]);
|
1150
|
+
this.selectionChange.emit(this.selection);
|
1071
1151
|
this.onRowSelect.emit({ originalEvent: event, data: rowData, type: 'row' });
|
1072
1152
|
if (dataKeyValue) {
|
1073
1153
|
this.selectionKeys[dataKeyValue] = 1;
|
1074
1154
|
}
|
1075
1155
|
}
|
1076
1156
|
}
|
1077
|
-
this.selectionChange.emit(this.selection);
|
1078
1157
|
}
|
1079
1158
|
}
|
1080
1159
|
this.preventSelectionKeysPropagation = true;
|
@@ -1108,6 +1187,7 @@ var DataTable = (function () {
|
|
1108
1187
|
var dataKeyValue = this.dataKey ? String(this.resolveFieldData(rowData, this.dataKey)) : null;
|
1109
1188
|
if (selectionIndex != -1) {
|
1110
1189
|
this._selection = this.selection.filter(function (val, i) { return i != selectionIndex; });
|
1190
|
+
this.selectionChange.emit(this.selection);
|
1111
1191
|
this.onRowUnselect.emit({ originalEvent: event, data: rowData, type: 'checkbox' });
|
1112
1192
|
if (dataKeyValue) {
|
1113
1193
|
delete this.selectionKeys[dataKeyValue];
|
@@ -1115,12 +1195,12 @@ var DataTable = (function () {
|
|
1115
1195
|
}
|
1116
1196
|
else {
|
1117
1197
|
this._selection = this.selection.concat([rowData]);
|
1198
|
+
this.selectionChange.emit(this.selection);
|
1118
1199
|
this.onRowSelect.emit({ originalEvent: event, data: rowData, type: 'checkbox' });
|
1119
1200
|
if (dataKeyValue) {
|
1120
1201
|
this.selectionKeys[dataKeyValue] = 1;
|
1121
1202
|
}
|
1122
1203
|
}
|
1123
|
-
this.selectionChange.emit(this.selection);
|
1124
1204
|
this.preventSelectionKeysPropagation = true;
|
1125
1205
|
this.preventRowClickPropagation = true;
|
1126
1206
|
};
|
@@ -1148,12 +1228,12 @@ var DataTable = (function () {
|
|
1148
1228
|
}
|
1149
1229
|
if (this.dataKey) {
|
1150
1230
|
this.selectionKeys[String(this.resolveFieldData(rowData, this.dataKey))] = 1;
|
1231
|
+
this.preventSelectionKeysPropagation = true;
|
1151
1232
|
}
|
1152
1233
|
}
|
1153
1234
|
this.contextMenu.show(event);
|
1154
1235
|
this.onContextMenuSelect.emit({ originalEvent: event, data: rowData });
|
1155
1236
|
}
|
1156
|
-
this.preventSelectionKeysPropagation = true;
|
1157
1237
|
};
|
1158
1238
|
DataTable.prototype.rowDblclick = function (event, rowData) {
|
1159
1239
|
this.onRowDblclick.emit({ originalEvent: event, data: rowData });
|
@@ -1250,6 +1330,9 @@ var DataTable = (function () {
|
|
1250
1330
|
this.onLazyLoad.emit(this.createLazyLoadMetadata());
|
1251
1331
|
}
|
1252
1332
|
else {
|
1333
|
+
if (!this.value || !this.columns) {
|
1334
|
+
return;
|
1335
|
+
}
|
1253
1336
|
this.filteredValue = [];
|
1254
1337
|
for (var i = 0; i < this.value.length; i++) {
|
1255
1338
|
var localMatch = true;
|
@@ -1268,7 +1351,7 @@ var DataTable = (function () {
|
|
1268
1351
|
}
|
1269
1352
|
}
|
1270
1353
|
//global
|
1271
|
-
if (this.globalFilter && !globalMatch) {
|
1354
|
+
if (!col.excludeGlobalFilter && this.globalFilter && !globalMatch) {
|
1272
1355
|
globalMatch = this.filterConstraints['contains'](this.resolveFieldData(this.value[i], col.filterField || col.field), this.globalFilter.value);
|
1273
1356
|
}
|
1274
1357
|
}
|
@@ -1357,22 +1440,18 @@ var DataTable = (function () {
|
|
1357
1440
|
};
|
1358
1441
|
DataTable.prototype.onCellEditorKeydown = function (event, column, rowData, rowIndex) {
|
1359
1442
|
if (this.editable) {
|
1360
|
-
this.onEdit.emit({ originalEvent: event, column: column, data: rowData, index: rowIndex });
|
1361
1443
|
//enter
|
1362
1444
|
if (event.keyCode == 13) {
|
1363
|
-
this.
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1445
|
+
if (this.domHandler.find(this.editingCell, '.ng-invalid.ng-dirty').length == 0) {
|
1446
|
+
this.switchCellToViewMode(event.target);
|
1447
|
+
event.preventDefault();
|
1448
|
+
}
|
1367
1449
|
}
|
1368
1450
|
else if (event.keyCode == 27) {
|
1369
|
-
this.onEditCancel.emit({ column: column, data: rowData, index: rowIndex });
|
1370
|
-
this.domHandler.invokeElementMethod(event.target, 'blur');
|
1371
1451
|
this.switchCellToViewMode(event.target);
|
1372
1452
|
event.preventDefault();
|
1373
1453
|
}
|
1374
1454
|
else if (event.keyCode == 9) {
|
1375
|
-
this.onEditComplete.emit({ column: column, data: rowData, index: rowIndex });
|
1376
1455
|
if (event.shiftKey)
|
1377
1456
|
this.moveToPreviousCell(event);
|
1378
1457
|
else
|
@@ -1380,6 +1459,25 @@ var DataTable = (function () {
|
|
1380
1459
|
}
|
1381
1460
|
}
|
1382
1461
|
};
|
1462
|
+
DataTable.prototype.onCellEditorInput = function (event, column, rowData, rowIndex) {
|
1463
|
+
if (this.editable) {
|
1464
|
+
this.onEdit.emit({ originalEvent: event, column: column, data: rowData, index: rowIndex });
|
1465
|
+
}
|
1466
|
+
};
|
1467
|
+
DataTable.prototype.onCellEditorChange = function (event, column, rowData, rowIndex) {
|
1468
|
+
if (this.editable) {
|
1469
|
+
this.editChanged = true;
|
1470
|
+
this.onEditComplete.emit({ column: column, data: rowData, index: rowIndex });
|
1471
|
+
}
|
1472
|
+
};
|
1473
|
+
DataTable.prototype.onCellEditorBlur = function (event, column, rowData, rowIndex) {
|
1474
|
+
if (this.editable) {
|
1475
|
+
if (this.editChanged)
|
1476
|
+
this.editChanged = false;
|
1477
|
+
else
|
1478
|
+
this.onEditCancel.emit({ column: column, data: rowData, index: rowIndex });
|
1479
|
+
}
|
1480
|
+
};
|
1383
1481
|
DataTable.prototype.moveToPreviousCell = function (event) {
|
1384
1482
|
var currentCell = this.findCell(event.target);
|
1385
1483
|
var row = currentCell.parentElement;
|
@@ -1630,6 +1728,9 @@ var DataTable = (function () {
|
|
1630
1728
|
}
|
1631
1729
|
if (allowDrop) {
|
1632
1730
|
this.objectUtils.reorderArray(this.columns, dragIndex, dropIndex);
|
1731
|
+
if (this.scrollable) {
|
1732
|
+
this.initScrollableColumns();
|
1733
|
+
}
|
1633
1734
|
this.onColReorder.emit({
|
1634
1735
|
dragIndex: dragIndex,
|
1635
1736
|
dropIndex: dropIndex,
|
@@ -1664,7 +1765,7 @@ var DataTable = (function () {
|
|
1664
1765
|
}
|
1665
1766
|
};
|
1666
1767
|
DataTable.prototype.hasFooter = function () {
|
1667
|
-
if (this.
|
1768
|
+
if (this.footerColumnGroups.first) {
|
1668
1769
|
return true;
|
1669
1770
|
}
|
1670
1771
|
else {
|
@@ -1682,9 +1783,6 @@ var DataTable = (function () {
|
|
1682
1783
|
return !this.dataToRender || (this.dataToRender.length == 0);
|
1683
1784
|
};
|
1684
1785
|
DataTable.prototype.createLazyLoadMetadata = function () {
|
1685
|
-
if (this.enableLoader) {
|
1686
|
-
this.loading = true;
|
1687
|
-
}
|
1688
1786
|
return {
|
1689
1787
|
first: this.first,
|
1690
1788
|
rows: this.virtualScroll ? this.rows * 2 : this.rows,
|
@@ -1754,6 +1852,9 @@ var DataTable = (function () {
|
|
1754
1852
|
return this.findExpandedRowGroupIndex(row) != -1;
|
1755
1853
|
};
|
1756
1854
|
DataTable.prototype.toggleRowGroup = function (event, row) {
|
1855
|
+
if (!this.expandedRowsGroups) {
|
1856
|
+
this.expandedRowsGroups = [];
|
1857
|
+
}
|
1757
1858
|
this.rowGroupToggleClick = true;
|
1758
1859
|
var index = this.findExpandedRowGroupIndex(row);
|
1759
1860
|
var rowGroupField = this.resolveFieldData(row, this.groupField);
|
@@ -1765,7 +1866,9 @@ var DataTable = (function () {
|
|
1765
1866
|
});
|
1766
1867
|
}
|
1767
1868
|
else {
|
1768
|
-
this.
|
1869
|
+
if (this.rowGroupExpandMode === 'single') {
|
1870
|
+
this.expandedRowsGroups = [];
|
1871
|
+
}
|
1769
1872
|
this.expandedRowsGroups.push(rowGroupField);
|
1770
1873
|
this.onRowGroupExpand.emit({
|
1771
1874
|
originalEvent: event,
|
@@ -1775,8 +1878,8 @@ var DataTable = (function () {
|
|
1775
1878
|
event.preventDefault();
|
1776
1879
|
};
|
1777
1880
|
DataTable.prototype.reset = function () {
|
1778
|
-
this.
|
1779
|
-
this.
|
1881
|
+
this._sortField = null;
|
1882
|
+
this._sortOrder = 1;
|
1780
1883
|
this.filteredValue = null;
|
1781
1884
|
this.filters = {};
|
1782
1885
|
this._first = 0;
|
@@ -1787,25 +1890,30 @@ var DataTable = (function () {
|
|
1787
1890
|
else
|
1788
1891
|
this.updateDataToRender(this.value);
|
1789
1892
|
};
|
1790
|
-
DataTable.prototype.exportCSV = function () {
|
1893
|
+
DataTable.prototype.exportCSV = function (options) {
|
1791
1894
|
var _this = this;
|
1792
1895
|
var data = this.filteredValue || this.value;
|
1793
1896
|
var csv = '\ufeff';
|
1897
|
+
if (options && options.selectionOnly) {
|
1898
|
+
data = this.selection || [];
|
1899
|
+
}
|
1794
1900
|
//headers
|
1795
1901
|
for (var i = 0; i < this.columns.length; i++) {
|
1796
|
-
|
1797
|
-
|
1902
|
+
var column = this.columns[i];
|
1903
|
+
if (column.exportable && column.field) {
|
1904
|
+
csv += '"' + (column.header || column.field) + '"';
|
1798
1905
|
if (i < (this.columns.length - 1)) {
|
1799
1906
|
csv += this.csvSeparator;
|
1800
1907
|
}
|
1801
1908
|
}
|
1802
1909
|
}
|
1803
|
-
//body
|
1910
|
+
//body
|
1804
1911
|
data.forEach(function (record, i) {
|
1805
1912
|
csv += '\n';
|
1806
1913
|
for (var i_1 = 0; i_1 < _this.columns.length; i_1++) {
|
1807
|
-
|
1808
|
-
|
1914
|
+
var column = _this.columns[i_1];
|
1915
|
+
if (column.exportable && column.field) {
|
1916
|
+
csv += '"' + _this.resolveFieldData(record, column.field) + '"';
|
1809
1917
|
if (i_1 < (_this.columns.length - 1)) {
|
1810
1918
|
csv += _this.csvSeparator;
|
1811
1919
|
}
|
@@ -1888,6 +1996,9 @@ var DataTable = (function () {
|
|
1888
1996
|
if (this.columnsSubscription) {
|
1889
1997
|
this.columnsSubscription.unsubscribe();
|
1890
1998
|
}
|
1999
|
+
if (this.virtualScrollCallback) {
|
2000
|
+
this.virtualScrollCallback = null;
|
2001
|
+
}
|
1891
2002
|
};
|
1892
2003
|
return DataTable;
|
1893
2004
|
}());
|
@@ -1927,6 +2038,10 @@ __decorate([
|
|
1927
2038
|
core_1.Input(),
|
1928
2039
|
__metadata("design:type", Boolean)
|
1929
2040
|
], DataTable.prototype, "editable", void 0);
|
2041
|
+
__decorate([
|
2042
|
+
core_1.Input(),
|
2043
|
+
__metadata("design:type", Boolean)
|
2044
|
+
], DataTable.prototype, "showHeaderCheckbox", void 0);
|
1930
2045
|
__decorate([
|
1931
2046
|
core_1.Output(),
|
1932
2047
|
__metadata("design:type", core_1.EventEmitter)
|
@@ -2035,14 +2150,6 @@ __decorate([
|
|
2035
2150
|
core_1.Input(),
|
2036
2151
|
__metadata("design:type", String)
|
2037
2152
|
], DataTable.prototype, "sortMode", void 0);
|
2038
|
-
__decorate([
|
2039
|
-
core_1.Input(),
|
2040
|
-
__metadata("design:type", String)
|
2041
|
-
], DataTable.prototype, "sortField", void 0);
|
2042
|
-
__decorate([
|
2043
|
-
core_1.Input(),
|
2044
|
-
__metadata("design:type", Number)
|
2045
|
-
], DataTable.prototype, "sortOrder", void 0);
|
2046
2153
|
__decorate([
|
2047
2154
|
core_1.Input(),
|
2048
2155
|
__metadata("design:type", Number)
|
@@ -2051,10 +2158,6 @@ __decorate([
|
|
2051
2158
|
core_1.Input(),
|
2052
2159
|
__metadata("design:type", String)
|
2053
2160
|
], DataTable.prototype, "groupField", void 0);
|
2054
|
-
__decorate([
|
2055
|
-
core_1.Input(),
|
2056
|
-
__metadata("design:type", Array)
|
2057
|
-
], DataTable.prototype, "multiSortMeta", void 0);
|
2058
2161
|
__decorate([
|
2059
2162
|
core_1.Input(),
|
2060
2163
|
__metadata("design:type", Object)
|
@@ -2207,14 +2310,14 @@ __decorate([
|
|
2207
2310
|
core_1.Input(),
|
2208
2311
|
__metadata("design:type", String)
|
2209
2312
|
], DataTable.prototype, "loadingIcon", void 0);
|
2210
|
-
__decorate([
|
2211
|
-
core_1.Input(),
|
2212
|
-
__metadata("design:type", Boolean)
|
2213
|
-
], DataTable.prototype, "enableLoader", void 0);
|
2214
2313
|
__decorate([
|
2215
2314
|
core_1.Input(),
|
2216
2315
|
__metadata("design:type", Number)
|
2217
2316
|
], DataTable.prototype, "virtualScrollDelay", void 0);
|
2317
|
+
__decorate([
|
2318
|
+
core_1.Input(),
|
2319
|
+
__metadata("design:type", String)
|
2320
|
+
], DataTable.prototype, "rowGroupExpandMode", void 0);
|
2218
2321
|
__decorate([
|
2219
2322
|
core_1.Output(),
|
2220
2323
|
__metadata("design:type", core_1.EventEmitter)
|
@@ -2248,13 +2351,28 @@ __decorate([
|
|
2248
2351
|
__metadata("design:type", core_1.QueryList)
|
2249
2352
|
], DataTable.prototype, "cols", void 0);
|
2250
2353
|
__decorate([
|
2251
|
-
core_1.
|
2252
|
-
__metadata("design:type",
|
2253
|
-
], DataTable.prototype, "
|
2354
|
+
core_1.ContentChildren(shared_2.HeaderColumnGroup),
|
2355
|
+
__metadata("design:type", core_1.QueryList)
|
2356
|
+
], DataTable.prototype, "headerColumnGroups", void 0);
|
2357
|
+
__decorate([
|
2358
|
+
core_1.ContentChildren(shared_2.FooterColumnGroup),
|
2359
|
+
__metadata("design:type", core_1.QueryList)
|
2360
|
+
], DataTable.prototype, "footerColumnGroups", void 0);
|
2361
|
+
__decorate([
|
2362
|
+
core_1.Input(),
|
2363
|
+
__metadata("design:type", Array),
|
2364
|
+
__metadata("design:paramtypes", [Array])
|
2365
|
+
], DataTable.prototype, "multiSortMeta", null);
|
2366
|
+
__decorate([
|
2367
|
+
core_1.Input(),
|
2368
|
+
__metadata("design:type", String),
|
2369
|
+
__metadata("design:paramtypes", [String])
|
2370
|
+
], DataTable.prototype, "sortField", null);
|
2254
2371
|
__decorate([
|
2255
|
-
core_1.
|
2256
|
-
__metadata("design:type",
|
2257
|
-
|
2372
|
+
core_1.Input(),
|
2373
|
+
__metadata("design:type", Number),
|
2374
|
+
__metadata("design:paramtypes", [Number])
|
2375
|
+
], DataTable.prototype, "sortOrder", null);
|
2258
2376
|
__decorate([
|
2259
2377
|
core_1.Input(),
|
2260
2378
|
__metadata("design:type", Array),
|
@@ -2278,7 +2396,7 @@ __decorate([
|
|
2278
2396
|
DataTable = __decorate([
|
2279
2397
|
core_1.Component({
|
2280
2398
|
selector: 'p-dataTable',
|
2281
|
-
template: "\n <div [ngStyle]=\"style\" [class]=\"styleClass\" [style.width]=\"containerWidth\"\n [ngClass]=\"{'ui-datatable ui-widget':true,'ui-datatable-reflow':responsive,'ui-datatable-stacked':stacked,'ui-datatable-resizable':resizableColumns,'ui-datatable-scrollable':scrollable}\">\n <div class=\"ui-datatable-loading ui-widget-overlay\" *ngIf=\"loading\"></div>\n <div class=\"ui-datatable-loading-content\" *ngIf=\"loading\">\n <i [class]=\"'fa fa-spin fa-2x ' + loadingIcon\"></i>\n </div>\n <div class=\"ui-datatable-header ui-widget-header\" *ngIf=\"header\">\n <ng-content select=\"p-header\"></ng-content>\n </div>\n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"ui-paginator-top\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && paginatorPosition
|
2399
|
+
template: "\n <div [ngStyle]=\"style\" [class]=\"styleClass\" [style.width]=\"containerWidth\"\n [ngClass]=\"{'ui-datatable ui-widget':true,'ui-datatable-reflow':responsive,'ui-datatable-stacked':stacked,'ui-datatable-resizable':resizableColumns,'ui-datatable-scrollable':scrollable}\">\n <div class=\"ui-datatable-loading ui-widget-overlay\" *ngIf=\"loading\"></div>\n <div class=\"ui-datatable-loading-content\" *ngIf=\"loading\">\n <i [class]=\"'fa fa-spin fa-2x ' + loadingIcon\"></i>\n </div>\n <div class=\"ui-datatable-header ui-widget-header\" *ngIf=\"header\">\n <ng-content select=\"p-header\"></ng-content>\n </div>\n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"ui-paginator-top\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition =='both')\"></p-paginator>\n <div class=\"ui-datatable-tablewrapper\" *ngIf=\"!scrollable\">\n <table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <thead class=\"ui-datatable-thead\">\n <tr *ngIf=\"!headerColumnGroups.first\" class=\"ui-state-default\" [pColumnHeaders]=\"columns\"></tr>\n <ng-template [ngIf]=\"headerColumnGroups.first\">\n <tr *ngFor=\"let headerRow of headerColumnGroups.first.rows\" class=\"ui-state-default\" [pColumnHeaders]=\"headerRow.columns\"></tr>\n </ng-template>\n </thead>\n <tfoot *ngIf=\"hasFooter()\" class=\"ui-datatable-tfoot\">\n <tr *ngIf=\"!footerColumnGroups.first\" class=\"ui-state-default\" [pColumnFooters]=\"columns\"></tr>\n <ng-template [ngIf]=\"footerColumnGroups.first\">\n <tr *ngFor=\"let footerRow of footerColumnGroups.first.rows\" class=\"ui-state-default\" [pColumnFooters]=\"footerRow.columns\"></tr>\n </ng-template>\n </tfoot>\n <tbody [ngClass]=\"{'ui-datatable-data ui-widget-content': true, 'ui-datatable-hoverable-rows': (rowHover||selectionMode)}\" [pTableBody]=\"columns\" [data]=\"dataToRender\"></tbody>\n </table>\n </div>\n \n <ng-template [ngIf]=\"scrollable\">\n <div class=\"ui-datatable-scrollable-wrapper ui-helper-clearfix\">\n <div *ngIf=\"hasFrozenColumns()\" [pScrollableView]=\"frozenColumns\" frozen=\"true\"\n [headerColumnGroup]=\"frozenHeaderColumnGroup\" [footerColumnGroup]=\"frozenFooterColumnGroup\"\n [ngStyle]=\"{'width':this.frozenWidth}\" class=\"ui-datatable-scrollable-view ui-datatable-frozen-view\"></div>\n <div [pScrollableView]=\"scrollableColumns\" [ngStyle]=\"{'width':this.unfrozenWidth, 'left': this.frozenWidth}\"\n [headerColumnGroup]=\"scrollableHeaderColumnGroup\" [footerColumnGroup]=\"scrollableFooterColumnGroup\"\n class=\"ui-datatable-scrollable-view\" [virtualScroll]=\"virtualScroll\" (onVirtualScroll)=\"onVirtualScroll($event)\"\n [ngClass]=\"{'ui-datatable-unfrozen-view': hasFrozenColumns()}\"></div>\n </div>\n </ng-template>\n \n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"ui-paginator-bottom\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition =='both')\"></p-paginator>\n <div class=\"ui-datatable-footer ui-widget-header\" *ngIf=\"footer\">\n <ng-content select=\"p-footer\"></ng-content>\n </div>\n \n <div class=\"ui-column-resizer-helper ui-state-highlight\" style=\"display:none\"></div>\n <span class=\"fa fa-arrow-down ui-datatable-reorder-indicator-up\" style=\"position: absolute; display: none;\"></span>\n <span class=\"fa fa-arrow-up ui-datatable-reorder-indicator-down\" style=\"position: absolute; display: none;\"></span>\n </div>\n ",
|
2282
2400
|
providers: [domhandler_1.DomHandler, objectutils_1.ObjectUtils]
|
2283
2401
|
}),
|
2284
2402
|
__metadata("design:paramtypes", [core_1.ElementRef, domhandler_1.DomHandler, core_1.IterableDiffers,
|