@den4ik92/ng2-smart-table 2.1.1 → 2.1.2
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
2
|
import { Row } from "../../../lib/data-set/row";
|
|
3
3
|
import { LocalDataSource } from "../../../lib/data-source/local/local.data-source";
|
|
4
4
|
import { Grid } from "../../../lib/grid";
|
|
@@ -127,13 +127,12 @@ export class TbodyEditDeleteComponent {
|
|
|
127
127
|
</svg>
|
|
128
128
|
</div>
|
|
129
129
|
</ng-template>
|
|
130
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }]
|
|
130
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
131
131
|
}
|
|
132
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TbodyEditDeleteComponent, decorators: [{
|
|
133
133
|
type: Component,
|
|
134
134
|
args: [{
|
|
135
135
|
selector: "ng2-st-tbody-edit-delete",
|
|
136
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
137
136
|
template: `
|
|
138
137
|
<ng-container *ngIf="!row.pending; else loader">
|
|
139
138
|
<a
|
|
@@ -234,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
234
233
|
}], editRowSelect: [{
|
|
235
234
|
type: Output
|
|
236
235
|
}] } });
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1kZWxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcyLXNtYXJ0LXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy90Ym9keS9jZWxscy9lZGl0LWRlbGV0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBdUZ6QyxNQUFNLE9BQU8sd0JBQXdCO0lBckZyQztRQTRGWSxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMvQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFbEQsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMseUJBQW9CLEdBQVcsRUFBRSxDQUFDO1FBQ2xDLDJCQUFzQixHQUFXLEVBQUUsQ0FBQztLQXVDckM7SUFyQ0MsTUFBTSxDQUFDLEtBQVU7UUFDZixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNiLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxVQUFVLEVBQUU7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxVQUFVLEVBQUU7WUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07YUFDcEIsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQ2hELDRCQUE0QixDQUM3QixDQUFDO0lBQ0osQ0FBQzsrR0FwRFUsd0JBQXdCO21HQUF4Qix3QkFBd0Isc1JBbkZ6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUZUOzs0RkFFVSx3QkFBd0I7a0JBckZwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUZUO2lCQUNGOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFJvdyB9IGZyb20gXCIuLi8uLi8uLi9saWIvZGF0YS1zZXQvcm93XCI7XG5pbXBvcnQgeyBMb2NhbERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2RhdGEtc291cmNlL2xvY2FsL2xvY2FsLmRhdGEtc291cmNlXCI7XG5pbXBvcnQgeyBHcmlkIH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9ncmlkXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJuZzItc3QtdGJvZHktZWRpdC1kZWxldGVcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXJvdy5wZW5kaW5nOyBlbHNlIGxvYWRlclwiPlxuICAgICAgPGFcbiAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAqbmdJZj1cImlzQWN0aW9uRWRpdFwiXG4gICAgICAgIFtpZF09XCIncm93LScgKyByb3cuaW5kZXggKyAnX2FjdGlvbi1lZGl0LWJ1dHRvbidcIlxuICAgICAgICBjbGFzcz1cIm5nMi1zbWFydC1hY3Rpb24gbmcyLXNtYXJ0LWFjdGlvbi1lZGl0LWVkaXRcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImVkaXRSb3dCdXR0b25Db250ZW50XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uRWRpdCgkZXZlbnQpXCJcbiAgICAgID48L2E+XG4gICAgICA8YVxuICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgICpuZ0lmPVwiaXNBY3Rpb25EZWxldGVcIlxuICAgICAgICBbaWRdPVwiJ3Jvdy0nICsgcm93LmluZGV4ICsgJ19hY3Rpb24tZGVsZXRlLWJ1dHRvbidcIlxuICAgICAgICBjbGFzcz1cIm5nMi1zbWFydC1hY3Rpb24gbmcyLXNtYXJ0LWFjdGlvbi1kZWxldGUtZGVsZXRlXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJkZWxldGVSb3dCdXR0b25Db250ZW50XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKCRldmVudClcIlxuICAgICAgPjwvYT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2xvYWRlcj5cbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgICA8c3ZnXG4gICAgICAgICAgKm5nSWY9XCJpc0FjdGlvbkVkaXRcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAycmVtOyB3aWR0aDogMnJlbTtcIlxuICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgICAgIGlkPVwiTDlcIlxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgICAgICAgeD1cIjBweFwiXG4gICAgICAgICAgeT1cIjBweFwiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAxMDAgMTAwXCJcbiAgICAgICAgICBlbmFibGUtYmFja2dyb3VuZD1cIm5ldyAwIDAgMCAwXCJcbiAgICAgICAgICB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZmlsbD1cIiNlOWU5ZTlcIlxuICAgICAgICAgICAgZD1cIk03Myw1MGMwLTEyLjctMTAuMy0yMy0yMy0yM1MyNywzNy4zLDI3LDUwIE0zMC45LDUwYzAtMTAuNSw4LjUtMTkuMSwxOS4xLTE5LjFTNjkuMSwzOS41LDY5LjEsNTBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhbmltYXRlVHJhbnNmb3JtXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9XCJ0cmFuc2Zvcm1cIlxuICAgICAgICAgICAgICBhdHRyaWJ1dGVUeXBlPVwiWE1MXCJcbiAgICAgICAgICAgICAgdHlwZT1cInJvdGF0ZVwiXG4gICAgICAgICAgICAgIGR1cj1cIjFzXCJcbiAgICAgICAgICAgICAgZnJvbT1cIjAgNTAgNTBcIlxuICAgICAgICAgICAgICB0bz1cIjM2MCA1MCA1MFwiXG4gICAgICAgICAgICAgIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICAqbmdJZj1cImlzQWN0aW9uRGVsZXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICBzdHlsZT1cImhlaWdodDogMnJlbTsgd2lkdGg6IDJyZW07XCJcbiAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgICBpZD1cIkw5XCJcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgICAgIHg9XCIwcHhcIlxuICAgICAgICAgIHk9XCIwcHhcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiXG4gICAgICAgICAgZW5hYmxlLWJhY2tncm91bmQ9XCJuZXcgMCAwIDAgMFwiXG4gICAgICAgICAgeG1sOnNwYWNlPVwicHJlc2VydmVcIlxuICAgICAgICA+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGZpbGw9XCIjZTllOWU5XCJcbiAgICAgICAgICAgIGQ9XCJNNzMsNTBjMC0xMi43LTEwLjMtMjMtMjMtMjNTMjcsMzcuMywyNyw1MCBNMzAuOSw1MGMwLTEwLjUsOC41LTE5LjEsMTkuMS0xOS4xUzY5LjEsMzkuNSw2OS4xLDUwXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybVxuICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCJcbiAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT1cIlhNTFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJyb3RhdGVcIlxuICAgICAgICAgICAgICBkdXI9XCIxc1wiXG4gICAgICAgICAgICAgIGZyb209XCIwIDUwIDUwXCJcbiAgICAgICAgICAgICAgdG89XCIzNjAgNTAgNTBcIlxuICAgICAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3BhdGg+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVGJvZHlFZGl0RGVsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZ3JpZCE6IEdyaWQ7XG4gIEBJbnB1dCgpIHJvdyE6IFJvdztcbiAgQElucHV0KCkgc291cmNlITogTG9jYWxEYXRhU291cmNlO1xuICBASW5wdXQoKSBkZWxldGVDb25maXJtITogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBJbnB1dCgpIGVkaXRDb25maXJtITogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgQE91dHB1dCgpIGVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZWRpdFJvd1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGlzQWN0aW9uRWRpdDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0FjdGlvbkRlbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBlZGl0Um93QnV0dG9uQ29udGVudDogc3RyaW5nID0gXCJcIjtcbiAgZGVsZXRlUm93QnV0dG9uQ29udGVudDogc3RyaW5nID0gXCJcIjtcblxuICBvbkVkaXQoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLmVkaXRSb3dTZWxlY3QuZW1pdCh0aGlzLnJvdyk7XG5cbiAgICB0aGlzLmVkaXQuZW1pdCh7XG4gICAgICBkYXRhOiB0aGlzLnJvdy5nZXREYXRhKCksXG4gICAgICBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLmdyaWQuZ2V0U2V0dGluZyhcIm1vZGVcIikgIT09IFwiZXh0ZXJuYWxcIikge1xuICAgICAgdGhpcy5ncmlkLmVkaXQodGhpcy5yb3cpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGVsZXRlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuZ3JpZC5nZXRTZXR0aW5nKFwibW9kZVwiKSA9PT0gXCJleHRlcm5hbFwiKSB7XG4gICAgICB0aGlzLmRlbGV0ZS5lbWl0KHtcbiAgICAgICAgZGF0YTogdGhpcy5yb3cuZ2V0RGF0YSgpLFxuICAgICAgICBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ3JpZC5kZWxldGUodGhpcy5yb3csIHRoaXMuZGVsZXRlQ29uZmlybSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5pc0FjdGlvbkVkaXQgPSB0aGlzLmdyaWQuZ2V0U2V0dGluZyhcImFjdGlvbnMuZWRpdFwiKTtcbiAgICB0aGlzLmlzQWN0aW9uRGVsZXRlID0gdGhpcy5ncmlkLmdldFNldHRpbmcoXCJhY3Rpb25zLmRlbGV0ZVwiKTtcbiAgICB0aGlzLmVkaXRSb3dCdXR0b25Db250ZW50ID0gdGhpcy5ncmlkLmdldFNldHRpbmcoXCJlZGl0LmVkaXRCdXR0b25Db250ZW50XCIpO1xuICAgIHRoaXMuZGVsZXRlUm93QnV0dG9uQ29udGVudCA9IHRoaXMuZ3JpZC5nZXRTZXR0aW5nKFxuICAgICAgXCJkZWxldGUuZGVsZXRlQnV0dG9uQ29udGVudFwiXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -2446,13 +2446,12 @@ class TbodyEditDeleteComponent {
|
|
|
2446
2446
|
</svg>
|
|
2447
2447
|
</div>
|
|
2448
2448
|
</ng-template>
|
|
2449
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }]
|
|
2449
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
2450
2450
|
}
|
|
2451
2451
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TbodyEditDeleteComponent, decorators: [{
|
|
2452
2452
|
type: Component,
|
|
2453
2453
|
args: [{
|
|
2454
2454
|
selector: "ng2-st-tbody-edit-delete",
|
|
2455
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2456
2455
|
template: `
|
|
2457
2456
|
<ng-container *ngIf="!row.pending; else loader">
|
|
2458
2457
|
<a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"den4ik92-ng2-smart-table.mjs","sources":["../../../projects/ng2-smart-table/src/lib/lib/data-set/cell.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/row.ts","../../../projects/ng2-smart-table/src/lib/lib/helpers.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/column.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/data-set.ts","../../../projects/ng2-smart-table/src/lib/lib/grid.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/edit-cell-default.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/custom-edit.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/default-editor.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/checkbox-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/input-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/select-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/textarea-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/default-edit.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/default-edit.component.html","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/edit-cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-view-mode/custom-view.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-view-mode/view-cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell.module.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.sorter.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.filter.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.pager.ts","../../../projects/ng2-smart-table/src/lib/lib/interfaces/smart-table.models.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/data-source.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.data-source.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-default.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/default-filter.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/checkbox-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/input-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/select-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/default-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/custom-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter.module.ts","../../../projects/ng2-smart-table/src/lib/components/pager/pager.component.ts","../../../projects/ng2-smart-table/src/lib/components/pager/pager.module.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/create-cancel.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/edit-delete.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/custom.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.component.html","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.module.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/add-button.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-filters-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/actions.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-form-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/actions-title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/checkbox-select-all.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/title/title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/column-title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-titles-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/thead.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/thead.component.html","../../../projects/ng2-smart-table/src/lib/components/thead/thead.module.ts","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.component.ts","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.component.html","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.module.ts","../../../projects/ng2-smart-table/src/den4ik92-ng2-smart-table.ts"],"sourcesContent":["import { Column } from './column';\nimport { DataSet } from './data-set';\nimport { Row } from './row';\n\nexport function prepareValue (value: any) { return value }\n\nexport class Cell {\n\n newValue: any = '';\n protected static PREPARE = prepareValue;\n\n constructor(protected value: any, protected row: Row, protected column: Column, protected dataSet: DataSet) {\n this.newValue = value;\n }\n\n getColumn(): Column {\n return this.column;\n }\n\n getColumnClass(): string | undefined {\n return this.column.class;\n }\n\n getRow(): Row {\n return this.row;\n }\n\n getValue(): any {\n const prepare = this.column.getValuePrepareFunction() || Cell.PREPARE;\n return prepare.call(null, this.value, this.row.getData(), this);\n }\n\n setValue(value: any): any {\n this.newValue = value;\n }\n\n getId(): string {\n return this.getColumn().id;\n }\n\n getTitle(): string {\n return this.getColumn().title;\n }\n\n isEditable(): boolean {\n if (this.getRow().index === -1) {\n return this.getColumn().isAddable;\n }\n else {\n return this.getColumn().isEditable;\n }\n }\n\n}\n","import { Cell } from './cell';\nimport { Column } from './column';\nimport { DataSet } from './data-set';\n\nexport class Row {\n\n pending: boolean = false;\n isSelected: boolean = false;\n isInEditing: boolean = false;\n cells: Cell[] = [];\n\n\n constructor(public index: number, protected data: any, protected _dataSet: DataSet) {\n this.process();\n }\n\n getCell(column: Column): Cell | undefined {\n return this.cells.find(el => el.getColumn() === column);\n }\n\n getCells(): Cell[] {\n return this.cells;\n }\n\n getData(): any {\n return this.data;\n }\n\n getIsSelected(): boolean {\n return this.isSelected;\n }\n\n getNewData(): any {\n const values = Object.assign({}, this.data);\n this.getCells().forEach((cell) => values[cell.getColumn().id] = cell.newValue);\n return values;\n }\n\n setData<T=any>(data: T): void {\n this.data = data;\n this.process();\n }\n\n process(): void {\n this.cells = [];\n this._dataSet.getColumns().forEach((column: Column) => {\n const cell = this.createCell(column);\n this.cells.push(cell);\n });\n }\n\n createCell(column: Column): Cell {\n const defValue = (column as any).settings.defaultValue ? (column as any).settings.defaultValue : '';\n const value = typeof this.data[column.id] === 'undefined' ? defValue : this.data[column.id];\n return new Cell(value, this, column, this._dataSet);\n }\n}\n","/**\n * Extending object that entered in first argument.\n *\n * Returns extended object or false if have no target object or incorrect type.\n *\n * If you wish to clone source object (without modify it), just use empty new\n * object as first argument, like this:\n * deepExtend({}, yourObj_1, [yourObj_N]);\n */\nexport const deepExtend = function(...objects: Array<any>): any {\n if (arguments.length < 1 || typeof arguments[0] !== 'object') {\n return false;\n }\n\n if (arguments.length < 2) {\n return arguments[0];\n }\n\n const target = arguments[0];\n\n // convert arguments to array and cut off target object\n const args = Array.prototype.slice.call(arguments, 1);\n\n let val, src;\n\n args.forEach((obj: any) => {\n // skip argument if it is array or isn't object\n if (typeof obj !== 'object' || Array.isArray(obj)) {\n return;\n }\n\n Object.keys(obj).forEach(function (key) {\n src = target[key]; // source value\n val = obj[key]; // new value\n\n // recursion prevention\n if (val === target) {\n return;\n\n /**\n * if new value isn't object then just overwrite by new value\n * instead of extending.\n */\n } else if (typeof val !== 'object' || val === null) {\n target[key] = val;\n return;\n\n // just clone arrays (and recursive clone objects inside)\n } else if (Array.isArray(val)) {\n target[key] = [...val];\n return;\n\n // overwrite by new value if source isn't object or array\n } else if (typeof src !== 'object' || src === null || Array.isArray(src)) {\n target[key] = deepExtend({}, val);\n return;\n\n // source value and new value is objects both, extending...\n } else {\n target[key] = deepExtend(src, val);\n return;\n }\n });\n });\n\n return target;\n};\n\nexport class Deferred<T> {\n promise: Promise<T>;\n resolve!: (value?: T) => void;\n reject!: (reason?: string) => void;\n\n constructor() {\n this.promise = new Promise<T>((resolve, reject) => {\n this.resolve = resolve as any;\n this.reject = reject;\n });\n }\n}\n\n// getDeepFromObject({result: {data: 1}}, 'result.data', 2); // returns 1\nexport function getDeepFromObject(object = {}, name: string, defaultValue: any = null) {\n const keys = name.split('.');\n // clone the object\n let level = deepExtend({}, object);\n keys.forEach((k) => {\n if (level && typeof level[k] !== 'undefined') {\n level = level[k];\n }\n });\n return typeof level === 'undefined' ? defaultValue : level;\n}\n\nexport function getPageForRowIndex(index: number, perPage: number): number {\n // we need to add 1 to convert 0-based index to 1-based page number.\n return Math.floor(index / perPage) + 1;\n}\n","import { SmartTableEditorAndFilter } from '../interfaces/smart-table.models';\nimport { SmartTableColumnSettings, SmartTableColumnSettingsTypes, SmartTableSortDirection } from './../interfaces/smart-table.models';\nimport { DataSet } from './data-set';\n\nexport class Column {\n title: string = '';\n type: SmartTableColumnSettingsTypes = 'text';\n class: string = '';\n width: string = '';\n hide: boolean = false;\n isSortable: boolean = false;\n isEditable: boolean = true;\n isAddable: boolean = true;\n isFilterable: boolean = false;\n sortDirection: SmartTableSortDirection = 'asc';\n defaultSortDirection: SmartTableSortDirection | false = false;\n editor: SmartTableEditorAndFilter | false = false;\n filter: SmartTableEditorAndFilter | false = false;\n renderComponent: any;\n compareFunction: Function | undefined;\n valuePrepareFunction: Function | undefined;\n filterFunction: Function | undefined;\n\n constructor(public id: string, private settings: SmartTableColumnSettings, protected dataSet: DataSet) {\n this.process(this.settings);\n }\n\n getCompareFunction(): Function | undefined {\n return this.compareFunction;\n }\n\n getValuePrepareFunction(): Function | undefined {\n return this.valuePrepareFunction;\n }\n\n getFilterFunction(): Function | undefined {\n return this.filterFunction;\n }\n\n getConfig(): any {\n if (this.editor && (this.editor.type === 'checkbox' || this.editor.type === 'custom' || this.editor.type === 'list')) {\n return this.editor?.config\n }\n return false\n }\n\n getFilterType(): any {\n return this.filter && this.filter.type;\n }\n\n getFilterConfig(): any {\n if (this.filter && (this.filter.type === 'checkbox' || this.filter.type === 'custom' || this.filter.type === 'list')) {\n return this.filter?.config\n }\n return false;\n }\n\n protected process(settings: SmartTableColumnSettings) {\n this.title = settings.title;\n this.class = settings.class || '';\n this.width = settings.width || '';\n this.hide = !!settings.hide;\n this.type = settings.type;\n if (settings?.editor) {\n this.editor = settings.editor;\n }\n if (settings?.filter) {\n this.filter = settings.filter;\n }\n if (settings.type === 'custom' && settings.renderComponent) {\n this.renderComponent = settings.renderComponent;\n }\n this.isFilterable = typeof settings.filter === 'undefined' ? true : !!settings['filter'];\n this.defaultSortDirection = settings?.sortDirection || false;\n this.isSortable = typeof settings.sort === 'undefined' ? true : settings.sort;\n this.isEditable = typeof settings.editable === 'undefined' ? true : settings.editable;\n this.isAddable=typeof settings.addable === 'undefined' ? true : settings.addable;\n this.sortDirection = this.prepareSortDirection();\n\n this.compareFunction = settings.compareFunction;\n this.valuePrepareFunction = settings.valuePrepareFunction;\n this.filterFunction = settings.filterFunction;\n }\n\n prepareSortDirection(): SmartTableSortDirection {\n return this.defaultSortDirection === 'desc' ? 'desc' : 'asc';\n }\n}\n","import { Row } from './row';\nimport { Column } from './column';\nimport { SmartTableColumnSettings } from '../interfaces/smart-table.models';\n\nexport class DataSet {\n newRow!: Row;\n\n protected data: Array<any> = [];\n protected columns: Array<Column> = [];\n protected rows: Array<Row> = [];\n protected selectedRows = new Set<Row>();\n\n constructor(data: any[] = [], protected columnSettings: SmartTableColumnSettings[]) {\n this.createColumns(columnSettings);\n this.setData(data);\n\n this.createNewRow();\n }\n\n setData(data: Array<any>) {\n this.data = data;\n this.createRows();\n }\n\n getColumns(): Array<Column> {\n return this.columns;\n }\n\n getRows(): Array<Row> {\n return this.rows;\n }\n\n getFirstRow(): Row {\n return this.rows[0];\n }\n\n getLastRow(): Row {\n return this.rows[this.rows.length - 1];\n }\n\n findRowByData(data: any): Row | undefined {\n return this.rows.find((row: Row) => row.getData() === data);\n }\n\n setSelectAll(state: boolean): void {\n this.rows.forEach((row) => {\n row.isSelected = state;\n this.storeSelectedRow(row);\n });\n }\n\n deselectAll() {\n this.rows.forEach((row) => {\n row.isSelected = false;\n });\n // we need to clear selectedRow field because no one row selected\n this.selectedRows.clear();\n }\n\n selectRow(row: Row, state: boolean): void {\n row.isSelected = state;\n this.storeSelectedRow(row);\n }\n\n multipleSelectRow(row: Row): Row {\n row.isSelected = !row.isSelected;\n this.storeSelectedRow(row);\n\n return row;\n }\n\n getSelectedRowsData(): Array<any> {\n return [...this.selectedRows]\n }\n\n createNewRow() {\n this.newRow = new Row(-1, {}, this);\n this.newRow.isInEditing = true;\n }\n\n /**\n * Create columns by mapping from the settings\n * @param settings\n * @private\n */\n createColumns(settings: SmartTableColumnSettings[]) {\n settings.forEach((columnSettings) => {\n this.columns.push(new Column(columnSettings.key as string, columnSettings, this));\n })\n }\n\n /**\n * Create rows based on current data prepared in data source\n * @private\n */\n createRows() {\n this.rows = [];\n this.data.forEach((el, index) => {\n const row = new Row(index, el, this);\n row.isSelected = this.selectedRows.has(row.getData());\n this.rows.push(row);\n });\n }\n\n public get isAllSelected(): boolean {\n return this.rows.every((row) => row.isSelected)\n }\n\n private storeSelectedRow(row: Row): void {\n if(row.isSelected) {\n this.selectedRows.add(row.getData());\n } else {\n this.selectedRows.delete(row.getData());\n }\n }\n}\n","import { LocalDataSource } from \"./data-source/local/local.data-source\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { Observable } from \"rxjs\";\nimport { EventEmitter } from \"@angular/core\";\n\nimport { Deferred, getDeepFromObject } from \"./helpers\";\nimport { Column } from \"./data-set/column\";\nimport { Row } from \"./data-set/row\";\nimport { DataSet } from \"./data-set/data-set\";\nimport {\n SmartTableSettings,\n SmartTableColumnSettings,\n SmartTableSortItem,\n} from \"./interfaces/smart-table.models\";\n\nexport class Grid {\n createFormShown: boolean = false;\n\n source!: LocalDataSource;\n settings!: SmartTableSettings;\n dataSet!: DataSet;\n\n onSelectRowSource = new Subject<any>();\n onDeselectRowSource = new Subject<any>();\n\n private sourceOnChangedSubscription: Subscription | undefined;\n private sourceOnUpdatedSubscription: Subscription | undefined;\n\n constructor(source: LocalDataSource, settings: SmartTableSettings) {\n this.setSettings(settings);\n this.setSource(source);\n }\n\n detach(): void {\n if (this.sourceOnChangedSubscription) {\n this.sourceOnChangedSubscription.unsubscribe();\n }\n if (this.sourceOnUpdatedSubscription) {\n this.sourceOnUpdatedSubscription.unsubscribe();\n }\n }\n\n showActionColumn(position: string): boolean {\n return this.isCurrentActionsPosition(position) && this.isActionsVisible();\n }\n\n isCurrentActionsPosition(position: string): boolean {\n return position == this.getSetting(\"actions.position\");\n }\n\n isActionsVisible(): boolean {\n return (\n this.getSetting<boolean>(\"actions.add\", false) ||\n this.getSetting<boolean>(\"actions.edit\", false) ||\n this.getSetting<boolean>(\"actions.delete\", false) ||\n !!this.getSetting<[]>(\"actions.custom\", [])?.length\n );\n }\n\n isMultiSelectVisible(): boolean {\n return this.getSetting(\"selectMode\") === \"multi\";\n }\n\n getNewRow(): Row {\n return this.dataSet.newRow;\n }\n\n setSettings(settings: SmartTableSettings) {\n this.settings = settings;\n this.dataSet = new DataSet(\n [],\n this.getSetting<SmartTableColumnSettings[]>(\"columns\")\n );\n\n if (this.source) {\n this.source.refresh();\n }\n }\n\n getDataSet(): DataSet {\n return this.dataSet;\n }\n\n setSource(source: LocalDataSource) {\n this.source = this.prepareSource(source);\n this.detach();\n\n this.sourceOnChangedSubscription = this.source\n .onChanged()\n .subscribe((changes: any) => this.processDataChange(changes));\n\n this.sourceOnUpdatedSubscription = this.source\n .onUpdated()\n .subscribe((data: any) => {\n const changedRow = this.dataSet.findRowByData(data);\n if (changedRow) {\n changedRow.setData(data);\n }\n });\n }\n\n getSetting<T>(name: string, defaultValue?: any): T {\n return getDeepFromObject(this.settings, name, defaultValue);\n }\n\n getColumns(): Array<Column> {\n return this.dataSet.getColumns();\n }\n\n getRows(): Array<Row> {\n return this.dataSet.getRows();\n }\n\n selectRow(row: Row, state: boolean) {\n this.dataSet.selectRow(row, state);\n }\n\n multipleSelectRow(row: Row) {\n this.dataSet.multipleSelectRow(row);\n }\n\n onSelectRow(): Observable<any> {\n return this.onSelectRowSource.asObservable();\n }\n\n onDeselectRow(): Observable<any> {\n return this.onDeselectRowSource.asObservable();\n }\n\n edit(row: Row) {\n row.isInEditing = true;\n }\n\n create(row: Row, confirmEmitter: EventEmitter<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then((newData) => {\n row.pending = false;\n newData = newData ? newData : row.getNewData();\n this.source.prepend(newData).then(() => {\n this.createFormShown = false;\n this.dataSet.createNewRow();\n });\n })\n .catch((err) => {\n row.pending = false;\n });\n\n if (this.getSetting(\"add.confirmCreate\")) {\n confirmEmitter.emit({\n newData: row.getNewData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n }\n\n save(row: Row, confirmEmitter: EventEmitter<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then((newData) => {\n row.pending = false;\n newData = newData ? newData : row.getNewData();\n this.source.update(row.getData(), newData).then(() => {\n row.isInEditing = false;\n });\n })\n .catch((err) => {\n row.pending = false;\n });\n\n if (this.getSetting(\"edit.confirmSave\")) {\n confirmEmitter.emit({\n data: row.getData(),\n newData: row.getNewData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n }\n\n delete(row: Row, confirmEmitter: EventEmitter<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then(() => {\n row.pending = false;\n this.source.remove(row.getData());\n })\n .catch((err) => {\n row.pending = false;\n // doing nothing\n });\n if (this.getSetting(\"delete.confirmDelete\")) {\n confirmEmitter.emit({\n data: row.getData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n if (row.isSelected) {\n this.dataSet.selectRow(row, false);\n }\n }\n\n processDataChange(changes: any) {\n if (this.shouldProcessChange(changes)) {\n if (changes[\"action\"] === \"load\") {\n this.dataSet.deselectAll();\n }\n this.dataSet.setData(changes[\"elements\"]);\n }\n }\n\n shouldProcessChange(changes: any): boolean {\n if (\n [\"filter\", \"sort\", \"page\", \"remove\", \"refresh\", \"load\", \"paging\"].indexOf(\n changes[\"action\"]\n ) !== -1\n ) {\n return true;\n } else if (\n [\"prepend\", \"append\"].indexOf(changes[\"action\"]) !== -1 &&\n !this.getSetting(\"pager.display\")\n ) {\n return true;\n }\n return false;\n }\n\n prepareSource(source: LocalDataSource): LocalDataSource {\n const initialSort: SmartTableSortItem | false = this.getInitialSort();\n if (initialSort) {\n source.setSort([initialSort], false);\n }\n if (this.getSetting(\"pager.display\") === true) {\n source.setPaging(1, this.getSetting(\"pager.perPage\"), false);\n }\n\n source.refresh();\n return source;\n }\n\n getInitialSort(): SmartTableSortItem | false {\n const defaultSortColumn = this.getColumns().find(\n (column: Column) => column.isSortable && column.defaultSortDirection\n );\n if (!defaultSortColumn) {\n return false;\n }\n return {\n field: defaultSortColumn.id,\n direction: defaultSortColumn.defaultSortDirection || \"asc\",\n compare: defaultSortColumn.getCompareFunction(),\n };\n }\n\n getSelectedRowsData(): Array<any> {\n return this.dataSet.getRows();\n }\n\n selectAllRows(status: boolean) {\n this.dataSet.setSelectAll(status);\n }\n\n getFirstRow(): Row {\n return this.dataSet.getFirstRow();\n }\n\n getLastRow(): Row {\n return this.dataSet.getLastRow();\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n template: ''\n})\nexport class EditCellDefault {\n\n @Input() cell!: Cell;\n @Input() inputClass: string = '';\n\n @Output() edited = new EventEmitter<any>();\n\n onEdited(event: any): boolean {\n this.edited.next(event);\n return false;\n }\n\n onStopEditing(): boolean {\n this.cell.getRow().isInEditing = false;\n return false;\n }\n\n onClick(event: MouseEvent) {\n event.stopPropagation();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n SimpleChanges,\n OnChanges,\n OnDestroy,\n} from '@angular/core';\n\nimport { EditCellDefault } from './edit-cell-default';\nimport { SmartTableEditorAndFilter } from '../../../lib/interfaces/smart-table.models';\n\n@Component({\n selector: 'table-cell-custom-editor',\n template: `\n <ng-template #dynamicTarget></ng-template>\n `,\n})\nexport class CustomEditComponent extends EditCellDefault implements OnChanges, OnDestroy {\n\n customComponent: any;\n @ViewChild('dynamicTarget', { read: ViewContainerRef, static: true }) dynamicTarget: any;\n\n constructor(private resolver: ComponentFactoryResolver) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const editor: SmartTableEditorAndFilter | false = this.cell.getColumn().editor\n if (this.cell && !this.customComponent && editor && editor.type == 'custom') {\n const componentFactory = this.resolver.resolveComponentFactory(editor.component);\n this.customComponent = this.dynamicTarget.createComponent(componentFactory);\n\n // set @Inputs and @Outputs of custom component\n this.customComponent.instance.cell = this.cell;\n this.customComponent.instance.inputClass = this.inputClass;\n this.customComponent.instance.onStopEditing.subscribe(() => this.onStopEditing());\n this.customComponent.instance.onEdited.subscribe((event: any) => this.onEdited(event));\n this.customComponent.instance.onClick.subscribe((event: any) => this.onClick(event));\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n template: '',\n})\nexport class DefaultEditor implements Editor {\n @Input() cell!: Cell;\n @Input() inputClass: string = '';\n\n @Output() onStopEditing = new EventEmitter<any>();\n @Output() onEdited = new EventEmitter<any>();\n @Output() onClick = new EventEmitter<any>();\n}\n\nexport interface Editor {\n cell: Cell;\n inputClass: string;\n onStopEditing: EventEmitter<any>;\n onEdited: EventEmitter<any>;\n onClick: EventEmitter<any>;\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'checkbox-editor',\n styleUrls: ['./editor.component.scss'],\n template: `\n <input [ngClass]=\"inputClass\"\n type=\"checkbox\"\n class=\"form-control\"\n [name]=\"cell.getId()\"\n [disabled]=\"!cell.isEditable()\"\n [checked]=\"cell.getValue() === (cell.getColumn().getConfig()?.true || true)\"\n (click)=\"onClick.emit($event)\"\n (change)=\"onChange($event)\">\n `,\n})\nexport class CheckboxEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n\n onChange(event: any) {\n const config: any = this.cell.getColumn().getConfig();\n const trueVal = (config && config?.true) || true;\n const falseVal = (config && config?.false) || false;\n this.cell.newValue = event.target.checked ? trueVal : falseVal;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'input-editor',\n styleUrls: ['./editor.component.scss'],\n template: `\n <input [ngClass]=\"inputClass\"\n class=\"form-control\"\n [(ngModel)]=\"cell.newValue\"\n [name]=\"cell.getId()\"\n [placeholder]=\"cell.getTitle()\"\n [disabled]=\"!cell.isEditable()\"\n (click)=\"onClick.emit($event)\"\n (keydown.enter)=\"onEdited.emit($event)\"\n (keydown.esc)=\"onStopEditing.emit()\">\n `,\n})\nexport class InputEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'select-editor',\n template: `\n <select [ngClass]=\"inputClass\"\n class=\"form-control\"\n [(ngModel)]=\"cell.newValue\"\n [name]=\"cell.getId()\"\n [disabled]=\"!cell.isEditable()\"\n (click)=\"onClick.emit($event)\"\n (keydown.enter)=\"onEdited.emit($event)\"\n (keydown.esc)=\"onStopEditing.emit()\">\n\n <option *ngFor=\"let option of cell.getColumn().getConfig()?.list\" [value]=\"option.value\"\n [selected]=\"option.value === cell.getValue()\">{{ option.title }}\n </option>\n </select>\n `,\n})\nexport class SelectEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'textarea-editor',\n styleUrls: ['./editor.component.scss'],\n template: `\n <textarea [ngClass]=\"inputClass\"\n class=\"form-control\"\n [(ngModel)]=\"cell.newValue\"\n [name]=\"cell.getId()\"\n [disabled]=\"!cell.isEditable()\"\n [placeholder]=\"cell.getTitle()\"\n (click)=\"onClick.emit($event)\"\n (keydown.enter)=\"onEdited.emit($event)\"\n (keydown.esc)=\"onStopEditing.emit()\">\n </textarea>\n `,\n})\nexport class TextareaEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n}\n","import { Component } from '@angular/core';\n\nimport { EditCellDefault } from './edit-cell-default';\nimport { SmartTableEditorAndFilterTypes } from '../../../lib/interfaces/smart-table.models';\n\n@Component({\n selector: 'table-cell-default-editor',\n templateUrl: './default-edit.component.html',\n})\nexport class DefaultEditComponent extends EditCellDefault {\n\n constructor() {\n super();\n }\n\n getEditorType(): SmartTableEditorAndFilterTypes {\n const editor = this.cell.getColumn().editor\n if (editor) {\n return editor.type\n }\n return 'text';\n }\n}\n","<div [ngSwitch]=\"getEditorType()\">\n <select-editor *ngSwitchCase=\"'list'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </select-editor>\n\n <textarea-editor *ngSwitchCase=\"'textarea'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </textarea-editor>\n\n <checkbox-editor *ngSwitchCase=\"'checkbox'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\">\n </checkbox-editor>\n\n <input-editor *ngSwitchDefault\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </input-editor>\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\nimport { SmartTableEditorAndFilterTypes } from '../../../lib/interfaces/smart-table.models';\n\n@Component({\n selector: 'table-cell-edit-mode',\n template: `\n <div [ngSwitch]=\"getEditorType()\">\n <table-cell-custom-editor *ngSwitchCase=\"'custom'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (edited)=\"onEdited($event)\">\n </table-cell-custom-editor>\n <table-cell-default-editor *ngSwitchDefault\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (edited)=\"onEdited($event)\">\n </table-cell-default-editor>\n </div>\n `,\n})\nexport class EditCellComponent {\n\n @Input() cell!: Cell;\n @Input() inputClass: string = '';\n\n @Output() edited = new EventEmitter<any>();\n\n onEdited(event: any): boolean {\n this.edited.next(event);\n return false;\n }\n\n getEditorType(): SmartTableEditorAndFilterTypes {\n const editor = this.cell.getColumn().editor\n if (editor) {\n return editor.type\n }\n return 'text';\n }\n}\n","import {\n Component,\n Input,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n OnInit,\n OnDestroy,\n} from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\nimport { ViewCell } from './view-cell';\n\n@Component({\n selector: 'custom-view-component',\n template: `\n <ng-template #dynamicTarget></ng-template>\n `,\n})\nexport class CustomViewComponent implements OnInit, OnDestroy {\n\n customComponent: any;\n @Input() cell!: Cell;\n @ViewChild('dynamicTarget', { read: ViewContainerRef, static: true }) dynamicTarget: any;\n\n constructor(private resolver: ComponentFactoryResolver) {\n }\n\n ngOnInit() {\n if (this.cell && !this.customComponent) {\n this.createCustomComponent();\n this.patchInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n\n protected createCustomComponent() {\n const componentFactory = this.resolver.resolveComponentFactory(this.cell.getColumn().renderComponent);\n this.customComponent = this.dynamicTarget.createComponent(componentFactory);\n }\n\n protected patchInstance() {\n Object.assign(this.customComponent.instance, this.getPatch());\n }\n\n protected getPatch(): ViewCell {\n return {\n value: this.cell.getValue(),\n rowData: this.cell.getRow().getData()\n }\n }\n}\n","import {Component, Input, ChangeDetectionStrategy } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n selector: 'table-cell-view-mode',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [ngSwitch]=\"cell.getColumn().type\">\n <custom-view-component *ngSwitchCase=\"'custom'\" [cell]=\"cell\"></custom-view-component>\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"cell.getValue()\"></div>\n <div *ngSwitchDefault>{{ cell.getValue() }}</div>\n </div>\n `,\n})\nexport class ViewCellComponent {\n @Input() cell!: Cell;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { Cell } from '../../lib/data-set/cell';\nimport { Row } from '../../lib/data-set/row';\nimport { Grid } from '../../lib/grid';\n\n@Component({\n selector: 'ng2-smart-table-cell',\n template: `\n <table-cell-view-mode *ngIf=\"!isInEditing\" [cell]=\"cell\"></table-cell-view-mode>\n <table-cell-edit-mode *ngIf=\"isInEditing\" [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (edited)=\"onEdited($event)\">\n </table-cell-edit-mode>\n `,\n})\nexport class CellComponent {\n\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() editConfirm!: EventEmitter<any>;\n @Input() createConfirm!: EventEmitter<any>;\n @Input() isNew!: boolean;\n @Input() cell!: Cell;\n @Input() inputClass: string = '';\n @Input() mode: string = 'inline';\n @Input() isInEditing: boolean = false;\n\n @Output() edited = new EventEmitter<any>();\n\n onEdited(event: any) {\n if (this.isNew) {\n this.grid.create(this.grid.getNewRow(), this.createConfirm);\n } else {\n this.grid.save(this.row, this.editConfirm);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { CellComponent } from './cell.component';\nimport { CustomEditComponent } from './cell-edit-mode/custom-edit.component';\nimport { DefaultEditComponent } from './cell-edit-mode/default-edit.component';\nimport { EditCellComponent } from './cell-edit-mode/edit-cell.component';\nimport { CheckboxEditorComponent } from './cell-editors/checkbox-editor.component';\nimport { InputEditorComponent } from './cell-editors/input-editor.component';\nimport { SelectEditorComponent } from './cell-editors/select-editor.component';\nimport { TextareaEditorComponent } from './cell-editors/textarea-editor.component';\nimport { CustomViewComponent } from './cell-view-mode/custom-view.component';\nimport { ViewCellComponent } from './cell-view-mode/view-cell.component';\nimport { EditCellDefault } from './cell-edit-mode/edit-cell-default';\nimport { DefaultEditor } from './cell-editors/default-editor';\n\nconst CELL_COMPONENTS = [\n CellComponent,\n EditCellDefault,\n DefaultEditor,\n CustomEditComponent,\n DefaultEditComponent,\n EditCellComponent,\n CheckboxEditorComponent,\n InputEditorComponent,\n SelectEditorComponent,\n TextareaEditorComponent,\n CustomViewComponent,\n ViewCellComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n declarations: [\n ...CELL_COMPONENTS,\n ],\n exports: [\n ...CELL_COMPONENTS,\n ],\n})\nexport class CellModule { }\n","export function compareValues(direction: any, a: any, b: any) {\n if (a < b) {\n return -1 * direction;\n }\n if (a > b) {\n return direction;\n }\n return 0;\n}\n\nexport class LocalSorter {\n\n static sort(data: Array<any>, field: string, direction: string, customCompare?: Function): Array<any> {\n\n const dir: number = (direction === 'asc') ? 1 : -1;\n const compare: Function = customCompare ? customCompare : compareValues;\n\n return data.sort((a, b) => {\n return compare.call(null, dir, a[field], b[field]);\n });\n }\n}\n","export function filterValues(value: string, search: string) {\n return value.toString().toLowerCase().includes(search.toString().toLowerCase());\n}\n\nexport class LocalFilter {\n static filter(data: any[], field: string, search: string, customFilter?: Function): any[] {\n const filter: Function = customFilter ? customFilter : filterValues;\n\n return data.filter((el) => {\n const value = typeof el[field] === 'undefined' || el[field] === null ? '' : el[field];\n return filter.call(null, value, search);\n });\n }\n}\n","export class LocalPager {\n\n static paginate(data: Array<any>, page: number, perPage: number): Array<any> {\n return data.slice(perPage * (page - 1), perPage * page);\n }\n}\n","import { LocalDataSource } from \"../data-source/local/local.data-source\";\nimport { Deferred } from \"../helpers\";\n\nexport interface SelectOption {\n\ttitle: string;\n\tvalue: any;\n}\n\ninterface ObjectAny {\n\t[key: string]: any;\n}\n\nexport interface SmartTableSettings<T extends ObjectAny = any> {\n\tmode?: 'inline' | 'external' | 'click-to-edit';\n\tselectMode?: 'single' | 'multi';\n\tselectedRowIndex?: number; //if need deselect first item set value < 0;\n\tswitchPageToSelectedRowPage?: boolean;\n\thideHeader?: boolean;\n\thideSubHeader?: boolean;\n\tactions?: SmartTableAction | false;\n\tfilter?: {\n\t\tinputClass: string;\n\t};\n\tedit?:\n\t| {\n\t\tinputClass?: string;\n\t\teditButtonContent?: string;\n\t\tsaveButtonContent?: string;\n\t\tcancelButtonContent?: string;\n\t\tconfirmSave?: boolean;\n\t}\n\t| false;\n\tadd?:\n\t| {\n\t\tinputClass?: string;\n\t\taddButtonContent?: string;\n\t\tcreateButtonContent?: string;\n\t\tcancelButtonContent?: string;\n\t\tconfirmCreate?: boolean;\n\t}\n\t| false;\n\tdelete?:\n\t| {\n\t\tdeleteButtonContent?: string;\n\t\tconfirmDelete?: boolean;\n\t}\n\t| false;\n\tattr?: {\n\t\tid?: string;\n\t\tclass?: string;\n\t};\n\tnoDataMessage?: string;\n\tcolumns: SmartTableColumnSettings<T>[];\n\tpager?: SmartTablePagerSettings | false;\n\trowClassFunction?: (row: { data: T }) => string;\n}\n\nexport interface SmartTableAction {\n\tcolumnTitle?: string;\n\tadd?: boolean;\n\tedit?: boolean;\n\tdelete?: boolean;\n\tcustom?: SmartTableCustomAction[];\n\tposition?: 'left' | 'right';\n}\n\nexport interface SmartTableCustomAction {\n\tname: string;\n\ttitle: string; // insert html content to action button\n}\n\nexport type SmartTableColumnSettingsTypes = 'text' | 'html' | 'custom'\n\nexport type SmartTableColumnSettings<T=any> = SmartTableTextHtmlColumn<T> | SmartTableCustomColumn<T>;\n\ninterface SmartTableDefaultColumn<T> {\n\tkey: keyof T;\n\ttitle: string;\n\twidth?: string; //example: '20px', '20%'\n\tclass?: string;\n\teditable?: boolean;\n\thide?: boolean;\n\tsort?: boolean;\n\taddable?: boolean;\n\tsortDirection?: SmartTableSortDirection | false;\n\teditor?: SmartTableEditorAndFilter;\n\tfilter?: SmartTableEditorAndFilter | false;\n\tcompareFunction?: (itemA: T, itemB: T) => number;\n\tvaluePrepareFunction?: (columnData: any, rowData: T) => any;\n\tfilterFunction?: (columnData: any, search: string) => boolean;\n}\n\ninterface SmartTableTextHtmlColumn<T> extends SmartTableDefaultColumn<T> {\n\ttype: 'text' | 'html';\n}\n\ninterface SmartTableCustomColumn<T> extends SmartTableDefaultColumn<T> {\n\ttype: 'custom';\n\trenderComponent: any;\n}\n\nexport type SmartTableEditorAndFilterTypes = 'text' | 'textarea' | 'list' | 'custom' | 'checkbox';\n\nexport type SmartTableEditorAndFilter =\n\t| SmartTableTextEditor\n\t| SmartTableEditorList\n\t| SmartTableEditorCheckbox\n\t| SmartTableEditorCustom;\n\ninterface SmartTableTextEditor {\n\ttype: 'text' | 'textarea';\n\tconfig: any;\n}\n\ninterface SmartTableEditorList {\n\ttype: 'list';\n\tconfig: {\n\t\tselectText?: string;\n\t\tlist: SelectOption[];\n\t};\n}\n\n//deprecated\ninterface SmartTableEditorCompleter {\n\ttype: 'completer';\n\tconfig: {\n\t\tcompleter: {\n\t\t\tdata: any[];\n\t\t\tsearchFields: string;\n\t\t\ttitleField: string;\n\t\t\tdescriptionField?: string;\n\t\t};\n\t};\n}\n\ninterface SmartTableEditorCheckbox {\n\ttype: 'checkbox';\n\tconfig?: {\n\t\ttrue: any;\n\t\tfalse: any;\n\t\tresetText?: string;\n\t};\n}\n\ninterface SmartTableEditorCustom {\n\ttype: 'custom';\n\tcomponent: any;\n\tconfig?: any;\n}\n\ninterface SmartTablePagerSettings {\n\tdisplay: boolean;\n\tpage?: number;\n\tperPage: number;\n\tperPageSelect?: number[];\n}\n\nexport interface SmartTableFilterItem {\n\tfield: string;\n\tsearch: string;\n\tfilter?: any;\n}\n\nexport interface SmartTablePagingItem {\n\tpage: number;\n\tperPage: number;\n}\n\nexport type SmartTableSortDirection = 'asc' | 'desc';\n\nexport interface SmartTableSortItem {\n\tfield: string;\n\tdirection: SmartTableSortDirection;\n\tcompare?: any;\n}\n\ninterface SmartTableDefaultEvent<T> {\n\tconfirm: Deferred<T>;\n\tdata: T;\n\tsource: LocalDataSource;\n}\n\nexport type SmartTableConfirmDeleteEvent<T = any> = SmartTableDefaultEvent<T>;\n\nexport type SmartTableRowClickedEvent<T = any> = Omit<SmartTableDefaultEvent<T>, \"confirm\">\n\nexport interface SmartTableCustomEvent<T = any> extends Omit<SmartTableDefaultEvent<T>, \"confirm\"> {\n\taction: string;\n}\n\nexport interface SmartTableRowSelectEvent<T = any> extends Omit<SmartTableDefaultEvent<T>, \"confirm\"> {\n\tisSelected: boolean;\n\tselected: T[];\n}\n\nexport interface SmartTableConfirmEditEvent<T = any, N = T> extends SmartTableDefaultEvent<T> {\n\tnewData: N;\n}\n\nexport interface SmartTableCreateConfirm<T = any> extends Omit<SmartTableDefaultEvent<T>, \"data\"> {\n\tnewData: T;\n}\n\nexport interface ObjectStringString {\n\t[key: string]: string;\n}\n\nexport enum SmartTableOnChangedEventName {\n\t'load' = 'load',\n\t'paging' = 'paging',\n\t'update' = 'update',\n\t'page' = 'page',\n\t'filter' = 'filter',\n\t'empty' = 'empty',\n\t'sort' = 'sort',\n\t'add' = 'add',\n\t'remove' = 'remove',\n\t'append' = 'append',\n\t'prepend' = 'prepend',\n\t'refresh' = 'refresh',\n}\n\nexport type SmartTableOnChangedEventType = 'load' | 'prepend' | 'append' | 'update' | 'empty' | 'paging' | 'page' | 'filter' | 'sort' | 'add' | 'remove' | 'refresh';\n\nexport interface SmartTableOnChangedEvent<T extends ObjectAny = any> {\n\taction: SmartTableOnChangedEventType;\n\telements: T[];\n\tfilter: SmartTableFilterConf;\n\tpaging: SmartTablePagingItem | false;\n\tsort: SmartTableSortItem[];\n}\n\nexport interface SmartTableFilterConf { filters: SmartTableFilterItem[]; andOperator: boolean }","import { Subject } from 'rxjs';\nimport { Observable } from 'rxjs';\nimport { SmartTableFilterConf, SmartTableOnChangedEvent, SmartTableOnChangedEventName, SmartTableOnChangedEventType, SmartTablePagingItem, SmartTableSortItem } from '../interfaces/smart-table.models';\n\nexport abstract class DataSource<T=any> {\n\n protected onChangedSource = new Subject<SmartTableOnChangedEvent>();\n protected onAddedSource = new Subject<any>();\n protected onUpdatedSource = new Subject<any>();\n protected onRemovedSource = new Subject<any>();\n\n abstract getAll(): Promise<T[]>;\n abstract getElements(): Promise<T[]>;\n abstract getSort(): SmartTableSortItem[];\n abstract getFilter(): SmartTableFilterConf;\n abstract getPaging(): SmartTablePagingItem | false;\n abstract count(): number;\n\n refresh(): void {\n this.emitOnChanged(SmartTableOnChangedEventName.refresh);\n }\n\n loadEmit<T>(): Promise<true> {\n this.emitOnChanged(SmartTableOnChangedEventName.load);\n return Promise.resolve(true);\n }\n\n onChanged(): Observable<SmartTableOnChangedEvent> {\n return this.onChangedSource.asObservable();\n }\n\n onAdded(): Observable<any> {\n return this.onAddedSource.asObservable();\n }\n\n onUpdated(): Observable<any> {\n return this.onUpdatedSource.asObservable();\n }\n\n onRemoved(): Observable<any> {\n return this.onRemovedSource.asObservable();\n }\n\n prependEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.prepend);\n return Promise.resolve(true);\n }\n\n appendEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.append);\n return Promise.resolve(true);\n }\n\n addEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.add);\n return Promise.resolve(true);\n }\n\n removeEmit(element: T): Promise<true> {\n this.emitOnRemoved(element);\n this.emitOnChanged(SmartTableOnChangedEventName.remove);\n return Promise.resolve(true);\n }\n\n updateEmit(element: T): Promise<true> {\n this.emitOnUpdated(element);\n this.emitOnChanged(SmartTableOnChangedEventName.update);\n return Promise.resolve(true);\n }\n\n emptyEmit(): Promise<true> {\n this.emitOnChanged(SmartTableOnChangedEventName.empty);\n return Promise.resolve(true);\n }\n\n setSortEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.sort);\n }\n\n setFilterEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.filter);\n }\n\n addFilterEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.filter);\n }\n\n setPagingEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.paging);\n }\n\n setPageEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.page);\n }\n\n protected emitOnRemoved(element: T) {\n this.onRemovedSource.next(element);\n }\n\n protected emitOnUpdated(element: T) {\n this.onUpdatedSource.next(element);\n }\n\n protected emitOnAdded(element: T) {\n this.onAddedSource.next(element);\n }\n\n protected emitOnChanged(action: SmartTableOnChangedEventType) {\n this.getElements().then((elements) => this.onChangedSource.next({\n action: action,\n elements: elements,\n paging: this.getPaging(),\n filter: this.getFilter(),\n sort: this.getSort(),\n }));\n }\n}\n","import { LocalSorter } from './local.sorter';\nimport { LocalFilter } from './local.filter';\nimport { LocalPager } from './local.pager';\nimport { DataSource } from '../data-source';\nimport { deepExtend } from '../../helpers';\nimport { SmartTableFilterConf, SmartTableFilterItem, SmartTablePagingItem, SmartTableSortItem } from '../../interfaces/smart-table.models';\n\nexport class LocalDataSource<T = any> extends DataSource<T> {\n\n protected data: T[] = [];\n protected filteredAndSorted: T[] = [];\n protected sortConf: SmartTableSortItem[] = [];\n protected filterConf: SmartTableFilterConf = {\n filters: [],\n andOperator: true,\n };\n protected pagingConf: SmartTablePagingItem | false = false;\n\n constructor(data: T[] = []) {\n super();\n\n this.data = data;\n }\n\n load(data: any): Promise<true> {\n this.data = data;\n return super.loadEmit();\n }\n\n prepend(element: T): Promise<true> {\n this.reset(true);\n this.data.unshift(element);\n return super.prependEmit(element);\n }\n\n appendMany(elements: T[]): Promise<true> {\n this.reset(true);\n this.data = [...this.data, ...elements];\n return super.loadEmit();\n }\n\n append(element: T): Promise<true> {\n this.reset(true);\n\n this.data.push(element);\n return super.appendEmit(element);\n }\n\n add(element: T): Promise<true> {\n this.data.push(element);\n return super.addEmit(element);\n }\n\n remove(element: T): Promise<true> {\n this.data = this.data.filter(el => el !== element);\n return super.removeEmit(element);\n }\n\n update(element: T, values: T): Promise<true> {\n return new Promise((resolve, reject) => {\n this.find(element).then((found) => {\n found = deepExtend(found, values);\n super.updateEmit(found).then(resolve).catch(reject);\n }).catch(reject);\n });\n }\n\n find(element: T): Promise<T> {\n const found = this.data.find(el => el === element);\n if (found) {\n return Promise.resolve(found);\n }\n return Promise.reject(new Error('Element was not found in the dataset'));\n }\n\n getElements(): Promise<T[]> {\n const data = this.data.slice(0);\n return Promise.resolve(this.prepareData(data));\n }\n\n getFilteredAndSorted(): Promise<T[]> {\n let data = this.data.slice(0);\n this.prepareData(data);\n return Promise.resolve(this.filteredAndSorted);\n }\n\n getAll(): Promise<T[]> {\n const data = this.data.slice(0);\n return Promise.resolve(data);\n }\n\n reset(silent = false) {\n if (silent) {\n this.filterConf = {\n filters: [],\n andOperator: true,\n };\n this.sortConf = [];\n if (this.pagingConf) {\n this.pagingConf.page = 1;\n }\n } else {\n this.setFilter([], true, false);\n this.setSort([], false);\n if (this.pagingConf) {\n this.setPage(1);\n }\n }\n }\n\n empty(): Promise<true> {\n this.data = [];\n return super.emptyEmit();\n }\n\n count(): number {\n return this.filteredAndSorted.length;\n }\n\n /**\n *\n * Array of conf objects\n * [\n * {field: string, direction: asc|desc|null, compare: Function|null},\n * ]\n * @param conf\n * @param doEmit\n * @returns {LocalDataSource}\n */\n setSort(conf: SmartTableSortItem[], doEmit = true): LocalDataSource {\n if (conf !== null) {\n conf.forEach((fieldConf) => {\n if (!fieldConf.field || typeof fieldConf.direction === 'undefined') {\n throw new Error('Sort configuration object is not valid');\n }\n });\n this.sortConf = conf;\n }\n if (doEmit) {\n super.setSortEmit();\n }\n return this;\n }\n\n /**\n *\n * Array of conf objects\n * [\n * {field: string, search: string, filter: Function|null},\n * ]\n * @param conf\n * @param andOperator\n * @param doEmit\n * @returns {LocalDataSource}\n */\n setFilter(conf: SmartTableFilterItem[], andOperator = true, doEmit = true): LocalDataSource {\n if (conf && conf.length > 0) {\n conf.forEach((fieldConf) => {\n this.addFilter(fieldConf, andOperator, false);\n });\n } else {\n this.filterConf = {\n filters: [],\n andOperator: true,\n };\n }\n this.filterConf.andOperator = andOperator;\n if (this.pagingConf) {\n this.pagingConf.page = 1;\n }\n if (doEmit) {\n super.setFilterEmit();\n }\n return this;\n }\n\n addFilter(fieldConf: SmartTableFilterItem, andOperator = true, doEmit: boolean = true): LocalDataSource {\n if (!fieldConf.field || typeof fieldConf.search === 'undefined') {\n throw new Error('Filter configuration object is not valid');\n }\n\n let found = false;\n this.filterConf.filters.forEach((currentFieldConf: any, index: any) => {\n if (currentFieldConf.field === fieldConf.field) {\n this.filterConf.filters[index] = fieldConf;\n found = true;\n }\n });\n if (!found) {\n this.filterConf.filters.push(fieldConf);\n }\n this.filterConf.andOperator = andOperator;\n if (doEmit) {\n super.addFilterEmit();\n }\n return this;\n }\n\n setPaging(page: number = 1, perPage: number, doEmit: boolean = true): void {\n if (this.pagingConf) {\n this.pagingConf.page = page;\n this.pagingConf.perPage = perPage;\n } else {\n this.pagingConf = {\n page, perPage\n }\n }\n if (doEmit) {\n super.setPagingEmit();\n }\n return;\n }\n\n setPage(page: number, doEmit: boolean = true): void {\n if (!this.pagingConf) {\n return;\n }\n this.pagingConf.page = page;\n if(doEmit) {\n super.setPageEmit();\n }\n return;\n }\n\n getSort(): SmartTableSortItem[] {\n return this.sortConf;\n }\n\n getFilter(): SmartTableFilterConf {\n return this.filterConf;\n }\n\n getPaging(): SmartTablePagingItem | false {\n return this.pagingConf;\n }\n\n protected prepareData(data: T[]): T[] {\n data = this.filter(data);\n data = this.sort(data);\n this.filteredAndSorted = data.slice(0);\n if(this.pagingConf) {\n return this.paginate(data);\n } else return data\n }\n\n protected sort(data: T[]): T[] {\n if (this.sortConf) {\n this.sortConf.forEach((fieldConf) => {\n data = LocalSorter\n .sort(data, fieldConf.field, fieldConf.direction, fieldConf.compare);\n });\n }\n return data;\n }\n\n // TODO: refactor?\n protected filter(data: T[]): T[] {\n if (this.filterConf.filters) {\n if (this.filterConf.andOperator) {\n this.filterConf.filters.forEach((fieldConf: SmartTableFilterItem) => {\n if (fieldConf.search?.length > 0) {\n data = LocalFilter\n .filter(data, fieldConf.field, fieldConf.search, fieldConf.filter);\n }\n });\n } else {\n let mergedData: T[] = [];\n this.filterConf.filters.forEach((fieldConf: SmartTableFilterItem) => {\n if (fieldConf.search?.length > 0) {\n mergedData = mergedData.concat(LocalFilter\n .filter(data, fieldConf.field, fieldConf.search, fieldConf.filter));\n }\n });\n // remove non unique items\n data = mergedData.filter((elem: any, pos: any, arr: any) => {\n return arr.indexOf(elem) === pos;\n });\n }\n }\n return data;\n }\n\n protected paginate(data: T[]): T[] {\n if (this.pagingConf && this.pagingConf.page && this.pagingConf.perPage) {\n data = LocalPager.paginate(data, this.pagingConf.page, this.pagingConf.perPage);\n }\n return data;\n }\n}\n","import { Output, EventEmitter, Input, Component } from '@angular/core';\n\nimport { Column } from '../../lib/data-set/column';\nimport { LocalDataSource } from '../../lib/data-source/local/local.data-source';\n\n@Component({\n template: '',\n})\nexport class FilterDefault {\n\n @Input() column!: Column;\n @Input() source!: LocalDataSource;\n @Input() inputClass: string = '';\n @Input() query: string = '';\n\n @Output() filter = new EventEmitter<any>();\n\n onFilter(query: string) {\n this.source.addFilter({\n field: this.column.id,\n search: query,\n filter: this.column.getFilterFunction(),\n });\n }\n}\n","import { Input, Output, EventEmitter, OnDestroy, Component } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Column } from '../../../lib/data-set/column';\n\n@Component({\n template: '',\n})\nexport class DefaultFilter implements Filter, OnDestroy {\n\n delay: number = 300;\n changesSubscription?: Subscription;\n @Input() query: string = '';\n @Input() inputClass: string = '';\n @Input() column!: Column;\n @Output() filter = new EventEmitter<string>();\n\n ngOnDestroy() {\n if (this.changesSubscription) {\n this.changesSubscription.unsubscribe();\n }\n }\n\n setFilter() {\n this.filter.emit(this.query);\n }\n}\n\nexport interface Filter {\n\n delay?: number;\n changesSubscription?: Subscription;\n query: string;\n inputClass: string;\n column: Column;\n filter: EventEmitter<string>;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\n\nimport { DefaultFilter } from './default-filter';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'checkbox-filter',\n template: `\n <input type=\"checkbox\" [formControl]=\"inputControl\" [ngClass]=\"inputClass\" class=\"form-control\">\n <a href=\"#\" *ngIf=\"filterActive\"\n (click)=\"resetFilter($event)\">{{column.getFilterConfig()?.resetText || 'reset'}}</a>\n `,\n})\nexport class CheckboxFilterComponent extends DefaultFilter implements OnInit {\n\n filterActive: boolean = false;\n inputControl = new UntypedFormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.changesSubscription = this.inputControl.valueChanges\n .pipe(debounceTime(this.delay))\n .subscribe((checked: boolean) => {\n this.filterActive = true;\n const trueVal = (this.column.getFilterConfig() && this.column.getFilterConfig().true) || true;\n const falseVal = (this.column.getFilterConfig() && this.column.getFilterConfig().false) || false;\n this.query = checked ? trueVal : falseVal;\n this.setFilter();\n });\n }\n\n resetFilter(event: any) {\n event.preventDefault();\n this.query = '';\n this.inputControl.setValue(false, { emitEvent: false });\n this.filterActive = false;\n this.setFilter();\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\n\nimport { DefaultFilter } from './default-filter';\n\n@Component({\n selector: 'input-filter',\n template: `\n <input\n [ngClass]=\"inputClass\"\n [formControl]=\"inputControl\"\n class=\"form-control\"\n type=\"text\"\n placeholder=\"{{ column.title }}\"/>\n `,\n})\nexport class InputFilterComponent extends DefaultFilter implements OnInit, OnChanges {\n\n inputControl = new UntypedFormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.query) {\n this.inputControl.setValue(this.query);\n }\n this.inputControl.valueChanges\n .pipe(\n distinctUntilChanged(),\n debounceTime(this.delay),\n )\n .subscribe((value: string) => {\n this.query = this.inputControl.value;\n this.setFilter();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes?.['query']) {\n this.inputControl.setValue(this.query);\n }\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { distinctUntilChanged, debounceTime, skip } from 'rxjs/operators';\n\nimport { DefaultFilter } from './default-filter';\n\n@Component({\n selector: 'select-filter',\n template: `\n <select [ngClass]=\"inputClass\"\n class=\"form-control\"\n #inputControl\n [(ngModel)]=\"query\">\n\n <option value=\"\">{{ column.getFilterConfig().selectText }}</option>\n <option *ngFor=\"let option of column.getFilterConfig().list\" [value]=\"option.value\">\n {{ option.title }}\n </option>\n </select>\n `,\n})\nexport class SelectFilterComponent extends DefaultFilter implements OnInit {\n @ViewChild('inputControl', { read: NgControl, static: true }) inputControl!: NgControl;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.inputControl.valueChanges) {\n this.inputControl.valueChanges\n .pipe(\n skip(1),\n distinctUntilChanged(),\n debounceTime(this.delay)\n )\n .subscribe((value: string) => this.setFilter());\n }\n \n }\n}\n","import {Component, Input} from '@angular/core';\n\nimport {FilterDefault} from \"./filter-default\";\n\n@Component({\n selector: 'default-table-filter',\n template: `\n <ng-container [ngSwitch]=\"column.getFilterType()\">\n <select-filter *ngSwitchCase=\"'list'\"\n [query]=\"query\"\n [ngClass]=\"inputClass\"\n [column]=\"column\"\n (filter)=\"onFilter($event)\">\n </select-filter>\n <checkbox-filter *ngSwitchCase=\"'checkbox'\"\n [query]=\"query\"\n [ngClass]=\"inputClass\"\n [column]=\"column\"\n (filter)=\"onFilter($event)\">\n </checkbox-filter>\n <input-filter *ngSwitchDefault\n [query]=\"query\"\n [ngClass]=\"inputClass\"\n [column]=\"column\"\n (filter)=\"onFilter($event)\">\n </input-filter>\n </ng-container>\n `,\n})\nexport class DefaultFilterComponent extends FilterDefault { \n\n}\n","import {\n Component,\n ComponentFactoryResolver,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { FilterDefault } from './filter-default';\n\n@Component({\n selector: 'custom-table-filter',\n template: `<ng-template #dynamicTarget></ng-template>`,\n})\nexport class CustomFilterComponent extends FilterDefault implements OnChanges, OnDestroy {\n customComponent: any;\n @ViewChild('dynamicTarget', { read: ViewContainerRef, static: true }) dynamicTarget: any;\n\n constructor(private resolver: ComponentFactoryResolver) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.customComponent) {\n this.customComponent.instance.ngOnChanges(changes);\n return;\n }\n if (this.column.filter && this.column.filter.type === 'custom') {\n const componentFactory = this.resolver.resolveComponentFactory(this.column.filter?.component);\n this.customComponent = this.dynamicTarget.createComponent(componentFactory);\n }\n\n // set @Inputs and @Outputs of custom component\n this.customComponent.instance.query = this.query;\n this.customComponent.instance.column = this.column;\n this.customComponent.instance.source = this.source;\n this.customComponent.instance.inputClass = this.inputClass;\n this.customComponent.instance.filter.subscribe((event: any) => this.onFilter(event));\n\n\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n}\n","import { Component, OnChanges, SimpleChanges } from '@angular/core';\nimport { FilterDefault } from './filter-default';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'ng2-smart-table-filter',\n styleUrls: ['./filter.component.scss'],\n template: `\n <div class=\"ng2-smart-filter\" *ngIf=\"column.isFilterable\" [ngSwitch]=\"column.getFilterType()\">\n <custom-table-filter *ngSwitchCase=\"'custom'\"\n [query]=\"query\"\n [column]=\"column\"\n [source]=\"source\"\n [inputClass]=\"inputClass\"\n (filter)=\"onFilter($event)\">\n </custom-table-filter>\n <default-table-filter *ngSwitchDefault\n [query]=\"query\"\n [column]=\"column\"\n [source]=\"source\"\n [inputClass]=\"inputClass\"\n (filter)=\"onFilter($event)\">\n </default-table-filter>\n </div>\n `,\n})\nexport class FilterComponent extends FilterDefault implements OnChanges {\n protected dataChangedSub?: Subscription;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['source']) {\n if (!changes['source'].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n const filterConf = this.source.getFilter();\n if (filterConf && filterConf.filters && filterConf.filters.length === 0) {\n this.query = '';\n\n // add a check for existing filters an set the query if one exists for this column\n // this covers instances where the filter is set by user code while maintaining existing functionality\n } else if (filterConf && filterConf.filters && filterConf.filters.length > 0) {\n filterConf.filters.forEach((k: any, v: any) => {\n if (k.field == this.column.id) {\n this.query = k.search;\n }\n });\n }\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { FilterComponent } from './filter.component';\nimport { DefaultFilterComponent } from \"./default-filter.component\";\nimport { CustomFilterComponent } from \"./custom-filter.component\";\nimport { CheckboxFilterComponent } from './filter-types/checkbox-filter.component';\nimport { InputFilterComponent } from './filter-types/input-filter.component';\nimport { SelectFilterComponent } from './filter-types/select-filter.component';\nimport { DefaultFilter } from './filter-types/default-filter';\nimport { FilterDefault } from './filter-default';\n\nconst FILTER_COMPONENTS = [\n FilterDefault,\n DefaultFilter,\n FilterComponent,\n DefaultFilterComponent,\n CustomFilterComponent,\n CheckboxFilterComponent,\n InputFilterComponent,\n SelectFilterComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n declarations: [\n ...FILTER_COMPONENTS,\n ],\n exports: [\n ...FILTER_COMPONENTS,\n ],\n})\nexport class FilterModule { }\n","import { SmartTablePagingItem } from './../../lib/interfaces/smart-table.models';\nimport { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LocalDataSource } from '../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: 'ng2-smart-table-pager',\n styleUrls: ['./pager.component.scss'],\n template: `\n <nav *ngIf=\"shouldShow()\" class=\"ng2-smart-pagination-nav\">\n <ul class=\"ng2-smart-pagination pagination\">\n <li class=\"ng2-smart-page-item page-item\" [ngClass]=\"{disabled: getPage() == 1}\">\n <a class=\"ng2-smart-page-link page-link\" href=\"#\"\n (click)=\"getPage() == 1 ? false : paginate(1)\" aria-label=\"First\">\n <span aria-hidden=\"true\">«</span>\n <span class=\"sr-only\">First</span>\n </a>\n </li>\n <li class=\"ng2-smart-page-item page-item\" [ngClass]=\"{disabled: getPage() == 1}\">\n <a class=\"ng2-smart-page-link page-link page-link-prev\" href=\"#\"\n (click)=\"getPage() == 1 ? false : prev()\" aria-label=\"Prev\">\n <span aria-hidden=\"true\"><</span>\n <span class=\"sr-only\">Prev</span>\n </a>\n </li>\n <li class=\"ng2-smart-page-item page-item\"\n [ngClass]=\"{active: getPage() == page}\" *ngFor=\"let page of getPages()\">\n <span class=\"ng2-smart-page-link page-link\"\n *ngIf=\"getPage() == page\">{{ page }} <span class=\"sr-only\">(current)</span></span>\n <a class=\"ng2-smart-page-link page-link\" href=\"#\"\n (click)=\"paginate(page)\" *ngIf=\"getPage() != page\">{{ page }}</a>\n </li>\n\n <li class=\"ng2-smart-page-item page-item\"\n [ngClass]=\"{disabled: getPage() == getLast()}\">\n <a class=\"ng2-smart-page-link page-link page-link-next\" href=\"#\"\n (click)=\"getPage() == getLast() ? false : next()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">></span>\n <span class=\"sr-only\">Next</span>\n </a>\n </li>\n \n <li class=\"ng2-smart-page-item page-item\"\n [ngClass]=\"{disabled: getPage() == getLast()}\">\n <a class=\"ng2-smart-page-link page-link\" href=\"#\"\n (click)=\"getPage() == getLast() ? false : paginate(getLast())\" aria-label=\"Last\">\n <span aria-hidden=\"true\">»</span>\n <span class=\"sr-only\">Last</span>\n </a>\n </li>\n </ul>\n </nav>\n \n <nav *ngIf=\"perPageSelect && perPageSelect.length > 0\" class=\"ng2-smart-pagination-per-page\">\n <label for=\"per-page\">\n Per Page:\n </label>\n <select (change)=\"onChangePerPage()\" [(ngModel)]=\"currentPerPage\" id=\"per-page\">\n <option *ngFor=\"let item of perPageSelect\" [value]=\"item\">{{ item }}</option>\n </select>\n </nav>\n `,\n})\nexport class PagerComponent implements OnChanges {\n\n @Input() source!: LocalDataSource;\n @Input() perPageSelect: number[] = [];\n\n @Output() changePage = new EventEmitter<any>();\n\n currentPerPage: number = 0;\n\n protected pages: number[] = [];\n protected page: number = 1;\n protected count: number = 0;\n protected perPage: number = 0;\n\n protected dataChangedSub: Subscription | undefined;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['source']) {\n if (!changes['source'].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n const paging: SmartTablePagingItem | false = this.source.getPaging();\n if (paging) {\n this.page = paging.page;\n this.perPage = paging.perPage;\n }\n this.currentPerPage = this.perPage;\n this.count = this.source.count();\n if (this.isPageOutOfBounce()) {\n this.source.setPage(--this.page);\n }\n\n this.processPageChange(dataChanges);\n this.initPages();\n });\n }\n }\n\n /**\n * We change the page here depending on the action performed against data source\n * if a new element was added to the end of the table - then change the page to the last\n * if a new element was added to the beginning of the table - then to the first page\n * @param changes\n */\n processPageChange(changes: any) {\n if (changes['action'] === 'prepend') {\n this.source.setPage(1);\n }\n if (changes['action'] === 'append') {\n this.source.setPage(this.getLast());\n }\n }\n\n shouldShow(): boolean {\n return this.source.count() > this.perPage;\n }\n\n paginate(page: number): boolean {\n this.source.setPage(page);\n this.page = page;\n this.changePage.emit({ page });\n return false;\n }\n\n next(): boolean {\n return this.paginate(this.getPage() + 1);\n }\n\n prev(): boolean {\n return this.paginate(this.getPage() - 1);\n }\n\n getPage(): number {\n return this.page;\n }\n\n getPages(): number[] {\n return this.pages;\n }\n\n getLast(): number {\n return Math.ceil(this.count / this.perPage);\n }\n\n isPageOutOfBounce(): boolean {\n return (this.page * this.perPage) >= (this.count + this.perPage) && this.page > 1;\n }\n\n initPages() {\n const pagesCount = this.getLast();\n let showPagesCount = 4;\n showPagesCount = pagesCount < showPagesCount ? pagesCount : showPagesCount;\n this.pages = [];\n\n if (this.shouldShow()) {\n\n let middleOne = Math.ceil(showPagesCount / 2);\n middleOne = this.page >= middleOne ? this.page : middleOne;\n\n let lastOne = middleOne + Math.floor(showPagesCount / 2);\n lastOne = lastOne >= pagesCount ? pagesCount : lastOne;\n\n const firstOne = lastOne - showPagesCount + 1;\n\n for (let i = firstOne; i <= lastOne; i++) {\n this.pages.push(i);\n }\n }\n }\n\n onChangePerPage() {\n const paging: SmartTablePagingItem | false = this.source.getPaging(); \n if (paging) {\n paging.perPage = this.currentPerPage * 1;\n }\n this.source.refresh();\n this.initPages();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { PagerComponent } from './pager.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n declarations: [\n PagerComponent,\n ],\n exports: [\n PagerComponent,\n ],\n})\nexport class PagerModule { }\n","import { Component, EventEmitter, Input, OnChanges } from \"@angular/core\";\n\nimport { Row } from \"../../../lib/data-set/row\";\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"ng2-st-tbody-create-cancel\",\n template: `\n <ng-container *ngIf=\"!row.pending; else loader\">\n <a\n href=\"#\"\n [id]=\"'row-' + row.index + '_editing-confirm-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-save\"\n [innerHTML]=\"saveButtonContent\"\n (click)=\"onSave($event)\"\n ></a>\n <a\n href=\"#\"\n [id]=\"'row-' + row.index + '_editing-cancel-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-cancel\"\n [innerHTML]=\"cancelButtonContent\"\n (click)=\"onCancelEdit($event)\"\n ></a>\n </ng-container>\n <ng-template #loader>\n <div style=\"display: flex;\">\n <svg\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n <svg\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem; \"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n </div>\n </ng-template>\n `,\n})\nexport class TbodyCreateCancelComponent implements OnChanges {\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() editConfirm!: EventEmitter<any>;\n @Input() editCancel!: EventEmitter<any>;\n\n cancelButtonContent: string = \"\";\n saveButtonContent: string = \"\";\n\n onSave(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.grid.save(this.row, this.editConfirm);\n }\n\n onCancelEdit(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.editCancel.emit(true);\n this.row.isInEditing = false;\n }\n\n ngOnChanges() {\n this.saveButtonContent = this.grid.getSetting(\n \"edit.saveButtonContent\",\n \"save\"\n );\n this.cancelButtonContent = this.grid.getSetting(\n \"edit.cancelButtonContent\",\n \"cancel\"\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n} from \"@angular/core\";\n\nimport { Row } from \"../../../lib/data-set/row\";\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"ng2-st-tbody-edit-delete\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-container *ngIf=\"!row.pending; else loader\">\n <a\n href=\"#\"\n *ngIf=\"isActionEdit\"\n [id]=\"'row-' + row.index + '_action-edit-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-edit\"\n [innerHTML]=\"editRowButtonContent\"\n (click)=\"onEdit($event)\"\n ></a>\n <a\n href=\"#\"\n *ngIf=\"isActionDelete\"\n [id]=\"'row-' + row.index + '_action-delete-button'\"\n class=\"ng2-smart-action ng2-smart-action-delete-delete\"\n [innerHTML]=\"deleteRowButtonContent\"\n (click)=\"onDelete($event)\"\n ></a>\n </ng-container>\n <ng-template #loader>\n <div style=\"display: flex;\">\n <svg\n *ngIf=\"isActionEdit\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n <svg\n *ngIf=\"isActionDelete\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n </div>\n </ng-template>\n `,\n})\nexport class TbodyEditDeleteComponent implements OnChanges {\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() source!: LocalDataSource;\n @Input() deleteConfirm!: EventEmitter<any>;\n @Input() editConfirm!: EventEmitter<any>;\n\n @Output() edit = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() editRowSelect = new EventEmitter<any>();\n\n isActionEdit: boolean = false;\n isActionDelete: boolean = false;\n editRowButtonContent: string = \"\";\n deleteRowButtonContent: string = \"\";\n\n onEdit(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n this.editRowSelect.emit(this.row);\n\n this.edit.emit({\n data: this.row.getData(),\n source: this.source,\n });\n if (this.grid.getSetting(\"mode\") !== \"external\") {\n this.grid.edit(this.row);\n }\n }\n\n onDelete(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.grid.getSetting(\"mode\") === \"external\") {\n this.delete.emit({\n data: this.row.getData(),\n source: this.source,\n });\n } else {\n this.grid.delete(this.row, this.deleteConfirm);\n }\n }\n\n ngOnChanges() {\n this.isActionEdit = this.grid.getSetting(\"actions.edit\");\n this.isActionDelete = this.grid.getSetting(\"actions.delete\");\n this.editRowButtonContent = this.grid.getSetting(\"edit.editButtonContent\");\n this.deleteRowButtonContent = this.grid.getSetting(\n \"delete.deleteButtonContent\"\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from \"@angular/core\";\nimport { Row } from \"../../../lib/data-set/row\";\nimport { LocalDataSource } from \"./../../../lib/data-source/local/local.data-source\";\n\nimport { Grid } from \"../../../lib/grid\";\nimport { SmartTableCustomAction } from \"../../../lib/interfaces/smart-table.models\";\n\n@Component({\n selector: \"ng2-st-tbody-custom\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <a\n *ngFor=\"let action of customActions()\"\n [id]=\"'row-' + row.index + '_action-' + action.name + '-button'\"\n href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-custom-custom\"\n [innerHTML]=\"action.title\"\n (click)=\"$event.stopPropagation(); $event.preventDefault(); onCustom(action)\"\n ></a>\n `,\n})\nexport class TbodyCustomComponent {\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() source!: LocalDataSource;\n @Output() custom = new EventEmitter<any>();\n\n onCustom(action: any) {\n this.custom.emit({\n action: action.name,\n data: this.row.getData(),\n source: this.source,\n });\n }\n\n customActions() {\n return this.grid.getSetting<SmartTableCustomAction[] | undefined>(\"actions.custom\");\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Grid } from '../../lib/grid';\nimport { Cell } from '../../lib/data-set/cell';\nimport { LocalDataSource } from '../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: '[ng2-st-tbody]',\n styleUrls: ['./tbody.component.scss'],\n templateUrl: './tbody.component.html',\n})\nexport class Ng2SmartTableTbodyComponent {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n @Input() deleteConfirm!: EventEmitter<any>;\n @Input() editConfirm!: EventEmitter<any>;\n @Input() rowClassFunction: Function = ()=>'';\n\n @Output() save = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() edit = new EventEmitter<any>();\n @Output() editCancel = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() custom = new EventEmitter<any>();\n @Output() edited = new EventEmitter<any>();\n @Output() userSelectRow = new EventEmitter<any>();\n @Output() userClickedRow = new EventEmitter<any>();\n @Output() editRowSelect = new EventEmitter<any>();\n @Output() multipleSelectRow = new EventEmitter<any>();\n\n isMultiSelectVisible: boolean = false;\n showActionColumnLeft: boolean = false;\n showActionColumnRight: boolean = false;\n mode: 'inline' | 'external' | 'click-to-edit' = 'inline';\n editInputClass: string = '';\n isActionAdd: boolean = false;\n isActionEdit: boolean = false;\n isActionDelete: boolean = false;\n noDataMessage: boolean = false;\n\n get tableColumnsCount() {\n const actionColumns = this.isActionAdd || this.isActionEdit || this.isActionDelete ? 1 : 0;\n return this.grid.getColumns().length + actionColumns;\n }\n\n ngOnChanges() {\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.mode = this.grid.getSetting('mode', 'inline');\n this.editInputClass = this.grid.getSetting('edit.inputClass', '');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n this.isActionAdd = this.grid.getSetting('actions.add', false);\n this.isActionEdit = this.grid.getSetting('actions.edit', false);\n this.isActionDelete = this.grid.getSetting('actions.delete', false);\n this.noDataMessage = this.grid.getSetting('noDataMessage');\n }\n\n getVisibleCells(cells: Cell[]): Cell[] {\n return (cells || []).filter((cell: Cell) => !cell.getColumn().hide);\n }\n\n protected trackByIdOrIndex(index: number, item: any): string | number { \n return item?.id || index;\n }\n}\n","<ng-container *ngIf=\"grid.getRows()?.length; noRows\">\n <tr\n *ngFor=\"let row of grid.getRows(); trackBy: trackByIdOrIndex\"\n (click)=\"userClickedRow.emit(row)\"\n class=\"ng2-smart-row\"\n [className]=\"rowClassFunction(row)\"\n [ngClass]=\"{ selected: row.isSelected }\"\n >\n <td\n *ngIf=\"isMultiSelectVisible\"\n class=\"ng2-smart-actions ng2-smart-action-multiple-select\"\n (click)=\"$event.stopPropagation(); multipleSelectRow.emit(row)\"\n >\n <input\n type=\"checkbox\"\n [id]=\"'row-' + row.index + '_select-checkbox'\"\n class=\"form-control\"\n [ngModel]=\"row.isSelected\"\n />\n </td>\n <td\n *ngIf=\"!row.isInEditing && showActionColumnLeft\"\n class=\"ng2-smart-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n <td\n *ngIf=\"row.isInEditing && showActionColumnLeft\"\n class=\"ng2-smart-actions\"\n >\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n [editCancel]=\"editCancel\"\n ></ng2-st-tbody-create-cancel>\n </td>\n <td\n *ngFor=\"let cell of getVisibleCells(row.cells)\"\n [ngClass]=\"cell.getColumnClass()\"\n >\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [grid]=\"grid\"\n [row]=\"row\"\n [isNew]=\"false\"\n [mode]=\"mode\"\n [editConfirm]=\"editConfirm\"\n [inputClass]=\"editInputClass\"\n [isInEditing]=\"row.isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n\n <td\n *ngIf=\"row.isInEditing && showActionColumnRight\"\n class=\"ng2-smart-actions\"\n >\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n ></ng2-st-tbody-create-cancel>\n </td>\n\n <td\n *ngIf=\"!row.isInEditing && showActionColumnRight\"\n class=\"ng2-smart-actions\"\n >\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [row]=\"row\"\n [source]=\"source\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n </tr>\n</ng-container>\n\n<ng-template #noRows>\n <tr>\n <td [attr.colspan]=\"tableColumnsCount\">\n {{ noDataMessage }}\n </td>\n </tr>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { CellModule } from '../cell/cell.module';\n\nimport { Ng2SmartTableTbodyComponent } from './tbody.component';\nimport { TbodyCreateCancelComponent } from './cells/create-cancel.component';\nimport { TbodyEditDeleteComponent } from './cells/edit-delete.component';\nimport { TbodyCustomComponent } from './cells/custom.component';\n\nconst TBODY_COMPONENTS = [\n TbodyCreateCancelComponent,\n TbodyEditDeleteComponent,\n TbodyCustomComponent,\n Ng2SmartTableTbodyComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n CellModule,\n ],\n declarations: [\n ...TBODY_COMPONENTS,\n ],\n exports: [\n ...TBODY_COMPONENTS,\n ],\n})\nexport class TBodyModule { }\n","import { Component, Input, Output, EventEmitter, AfterViewInit, ElementRef, OnChanges } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { LocalDataSource } from '../../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: '[ng2-st-add-button]',\n template: `\n <a *ngIf=\"isActionAdd\" href=\"#\" class=\"ng2-smart-action ng2-smart-action-add-add\"\n [innerHTML]=\"addNewButtonContent\" (click)=\"onAdd($event)\"></a>\n `,\n})\nexport class AddButtonComponent implements AfterViewInit, OnChanges {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n @Output() create = new EventEmitter<any>();\n\n isActionAdd: boolean = false;\n addNewButtonContent: string = '';\n\n constructor(private ref: ElementRef) {\n }\n\n ngAfterViewInit() {\n this.ref.nativeElement.classList.add('ng2-smart-actions-title', 'ng2-smart-actions-title-add');\n }\n\n ngOnChanges() {\n this.isActionAdd = this.grid.getSetting('actions.add');\n this.addNewButtonContent = this.grid.getSetting('add.addButtonContent');\n }\n\n onAdd(event: any) {\n event.preventDefault();\n event.stopPropagation();\n if (this.grid.getSetting('mode') === 'external') {\n this.create.emit({\n source: this.source,\n });\n } else {\n this.grid.createFormShown = true;\n }\n }\n}\n","import {Component, Input, Output, EventEmitter, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { Column } from \"../../../lib/data-set/column\";\nimport { LocalDataSource } from '../../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: '[ng2-st-thead-filters-row]',\n template: `\n <th *ngIf=\"isMultiSelectVisible\"></th>\n <th ng2-st-add-button *ngIf=\"showActionColumnLeft\"\n [grid]=\"grid\"\n (create)=\"create.emit($event)\">\n </th>\n <th *ngFor=\"let column of getVisibleColumns(grid.getColumns())\" class=\"ng2-smart-th {{ column.id }}\">\n <ng2-smart-table-filter [source]=\"source\"\n [column]=\"column\"\n [inputClass]=\"filterInputClass\"\n (filter)=\"filter.emit($event)\">\n </ng2-smart-table-filter>\n </th>\n <th ng2-st-add-button *ngIf=\"showActionColumnRight\"\n [grid]=\"grid\"\n [source]=\"source\"\n (create)=\"create.emit($event)\">\n </th>\n `,\n})\nexport class TheadFitlersRowComponent implements OnChanges {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n\n @Output() create = new EventEmitter<any>();\n @Output() filter = new EventEmitter<any>();\n\n isMultiSelectVisible: boolean = false;\n showActionColumnLeft: boolean = false;\n showActionColumnRight: boolean = false;\n filterInputClass: string = '';\n\n ngOnChanges() {\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n this.filterInputClass = this.grid.getSetting('filter.inputClass', '');\n }\n\n getVisibleColumns(columns: Array<Column>): Array<Column> {\n return (columns || []).filter((column: Column) => !column.hide);\n }\n}\n","import {Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\n\n@Component({\n selector: 'ng2-st-actions',\n template: `\n <a href=\"#\" class=\"ng2-smart-action ng2-smart-action-add-create\"\n [innerHTML]=\"createButtonContent\"\n (click)=\"$event.preventDefault();create.emit($event)\"></a>\n <a href=\"#\" class=\"ng2-smart-action ng2-smart-action-add-cancel\"\n [innerHTML]=\"cancelButtonContent\"\n (click)=\"$event.preventDefault();grid.createFormShown = false;\"></a>\n `,\n})\nexport class ActionsComponent implements OnChanges {\n\n @Input() grid!: Grid;\n @Output() create = new EventEmitter<any>();\n\n createButtonContent: string = '';\n cancelButtonContent: string = '';\n\n ngOnChanges() {\n this.createButtonContent = this.grid.getSetting('add.createButtonContent');\n this.cancelButtonContent = this.grid.getSetting('add.cancelButtonContent');\n }\n}\n","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { Row } from '../../../lib/data-set/row';\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n selector: '[ng2-st-thead-form-row]',\n template: `\n <td *ngIf=\"grid.isMultiSelectVisible\"></td>\n <td *ngIf=\"showActionColumnLeft\" class=\"ng2-smart-actions\">\n <ng2-st-actions [grid]=\"grid\" (create)=\"onCreate($event)\"></ng2-st-actions>\n </td>\n <td *ngFor=\"let cell of getVisibleCells(grid.getNewRow().getCells())\">\n <ng2-smart-table-cell [cell]=\"cell\"\n [grid]=\"grid\"\n [isNew]=\"true\"\n [createConfirm]=\"createConfirm\"\n [inputClass]=\"addInputClass\"\n [isInEditing]=\"grid.getNewRow().isInEditing\"\n (edited)=\"onCreate($event)\">\n </ng2-smart-table-cell>\n </td>\n <td *ngIf=\"showActionColumnRight\" class=\"ng2-smart-actions\">\n <ng2-st-actions [grid]=\"grid\" (create)=\"onCreate($event)\"></ng2-st-actions>\n </td>\n `,\n})\nexport class TheadFormRowComponent implements OnChanges {\n\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() createConfirm!: EventEmitter<any>;\n\n @Output() create = new EventEmitter<any>();\n\n isMultiSelectVisible: boolean = false;\n showActionColumnLeft: boolean = false;\n showActionColumnRight: boolean = false;\n addInputClass = '';\n\n onCreate(event: any) {\n event.stopPropagation();\n\n this.grid.create(this.grid.getNewRow(), this.createConfirm);\n }\n\n ngOnChanges(){\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n this.addInputClass = this.grid.getSetting('add.inputClass', '');\n }\n\n getVisibleCells(cells: Array<Cell>): Array<Cell> {\n return (cells || []).filter((cell: Cell) => !cell.getColumn().hide);\n }\n}\n","import {Component, Input, AfterViewInit, ElementRef, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\n\n@Component({\n selector: '[ng2-st-actions-title]',\n template: `\n <div class=\"ng2-smart-title\">{{ actionsColumnTitle }}</div>\n `,\n})\nexport class ActionsTitleComponent implements AfterViewInit, OnChanges {\n\n @Input() grid!: Grid;\n\n actionsColumnTitle: string = '';\n\n constructor(private ref: ElementRef) {\n }\n\n ngAfterViewInit() {\n this.ref.nativeElement.classList.add('ng2-smart-actions');\n }\n\n ngOnChanges() {\n this.actionsColumnTitle = this.grid.getSetting('actions.columnTitle');\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { LocalDataSource } from '../../../lib/data-source/local/local.data-source';\n@Component({\n selector: '[ng2-st-checkbox-select-all]',\n template: `\n <input type=\"checkbox\" [ngModel]=\"this.grid.dataSet.isAllSelected\">\n `,\n})\nexport class CheckboxSelectAllComponent {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n}\n","import { SmartTableSortDirection } from './../../../../lib/interfaces/smart-table.models';\nimport { LocalDataSource } from './../../../../lib/data-source/local/local.data-source';\nimport { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Column } from '../../../../lib/data-set/column';\n\n@Component({\n selector: 'ng2-smart-table-title',\n styleUrls: ['./title.component.scss'],\n template: `\n <a href=\"#\" *ngIf=\"column.isSortable\"\n (click)=\"_sort($event)\"\n class=\"ng2-smart-sort-link sort\"\n [ngClass]=\"currentDirection\">\n {{ column.title }}\n </a>\n <span class=\"ng2-smart-sort\" *ngIf=\"!column.isSortable\">{{ column.title }}</span>\n `,\n})\nexport class TitleComponent implements OnChanges {\n\n currentDirection: SmartTableSortDirection | '' = '';\n @Input() column!: Column;\n @Input() source!: LocalDataSource;\n @Output() sort = new EventEmitter<any>();\n\n protected dataChangedSub: Subscription | false = false;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['source']) {\n if (!changes['source'].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n const sortConf = this.source.getSort();\n\n if (sortConf.length > 0 && sortConf[0]['field'] === this.column.id) {\n this.currentDirection = sortConf[0]['direction'];\n } else {\n this.currentDirection = '';\n }\n });\n }\n }\n\n _sort(event: any) {\n event.preventDefault();\n this.changeSortDirection();\n this.source.setSort([\n {\n field: this.column.id,\n direction: this.currentDirection === 'desc' ? 'desc': 'asc',\n compare: this.column.getCompareFunction(),\n },\n ]);\n this.sort.emit(null);\n }\n\n changeSortDirection(): string {\n if (this.currentDirection) {\n const newDirection = this.currentDirection === 'asc' ? 'desc' : 'asc';\n this.currentDirection = newDirection;\n } else {\n this.currentDirection = this.column.sortDirection;\n }\n return this.currentDirection;\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Column } from '../../../lib/data-set/column';\nimport { LocalDataSource } from '../../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: 'ng2-st-column-title',\n template: `\n <div class=\"ng2-smart-title\">\n <ng2-smart-table-title [source]=\"source\" [column]=\"column\" (sort)=\"sort.emit($event)\"></ng2-smart-table-title>\n </div>\n `,\n})\nexport class ColumnTitleComponent {\n\n @Input() column!: Column;\n @Input() source!: LocalDataSource;\n\n @Output() sort = new EventEmitter<any>();\n\n}\n","import {Component, Input, Output, EventEmitter, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { Column } from \"../../../lib/data-set/column\";\nimport { LocalDataSource } from '../../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: '[ng2-st-thead-titles-row]',\n template: `\n <th ng2-st-checkbox-select-all *ngIf=\"isMultiSelectVisible\"\n [grid]=\"grid\"\n [source]=\"source\"\n (click)=\"selectAllRows.emit($event)\">\n </th>\n <th ng2-st-actions-title *ngIf=\"showActionColumnLeft\" [grid]=\"grid\"></th>\n <th *ngFor=\"let column of getVisibleColumns(grid.getColumns())\"\n class=\"ng2-smart-th {{ column.id }}\"\n [ngClass]=\"column.class\"\n [style.width]=\"column.width\">\n <ng2-st-column-title [source]=\"source\" [column]=\"column\" (sort)=\"sort.emit($event)\"></ng2-st-column-title>\n </th>\n <th ng2-st-actions-title *ngIf=\"showActionColumnRight\" [grid]=\"grid\"></th>\n `,\n})\nexport class TheadTitlesRowComponent implements OnChanges {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n\n @Output() sort = new EventEmitter<any>();\n @Output() selectAllRows = new EventEmitter<any>();\n\n isMultiSelectVisible = false;\n showActionColumnLeft = false;\n showActionColumnRight = false;\n\n ngOnChanges() {\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n }\n\n getVisibleColumns(columns: Array<Column>): Array<Column> {\n return (columns || []).filter((column: Column) => !column.hide);\n }\n}\n","import { LocalDataSource } from './../../lib/data-source/local/local.data-source';\nimport {Component, Input, Output, EventEmitter, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../lib/grid';\n\n@Component({\n selector: '[ng2-st-thead]',\n templateUrl: './thead.component.html',\n})\nexport class Ng2SmartTableTheadComponent implements OnChanges {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n @Input() createConfirm!: EventEmitter<any>;\n\n @Output() sort = new EventEmitter<any>();\n @Output() selectAllRows = new EventEmitter<any>();\n @Output() create = new EventEmitter<any>();\n @Output() filter = new EventEmitter<any>();\n\n isHideHeader: boolean = false;\n isHideSubHeader: boolean = false;\n\n ngOnChanges() {\n this.isHideHeader = this.grid.getSetting('hideHeader', false);\n this.isHideSubHeader = this.grid.getSetting('hideSubHeader', false);\n }\n}\n","<tr ng2-st-thead-titles-row *ngIf=\"!isHideHeader\"\n class=\"ng2-smart-titles\"\n [grid]=\"grid\"\n [source]=\"source\"\n (sort)=\"sort.emit($event)\"\n (selectAllRows)=\"selectAllRows.emit($event)\">\n</tr>\n\n<tr ng2-st-thead-filters-row *ngIf=\"!isHideSubHeader\"\n class=\"ng2-smart-filters\"\n [grid]=\"grid\"\n [source]=\"source\"\n (create)=\"create.emit($event)\"\n (filter)=\"filter.emit($event)\">\n</tr>\n\n<tr ng2-st-thead-form-row *ngIf=\"grid.createFormShown\"\n [grid]=\"grid\"\n [createConfirm]=\"createConfirm\">\n</tr>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { FilterModule } from '../filter/filter.module';\nimport { CellModule } from '../cell/cell.module';\n\nimport { Ng2SmartTableTheadComponent } from './thead.component';\nimport { ActionsComponent } from './cells/actions.component';\nimport { ActionsTitleComponent } from './cells/actions-title.component';\nimport { AddButtonComponent } from './cells/add-button.component';\nimport { CheckboxSelectAllComponent } from './cells/checkbox-select-all.component';\nimport { ColumnTitleComponent } from './cells/column-title.component';\nimport { TitleComponent } from './cells/title/title.component';\nimport { TheadFitlersRowComponent } from './rows/thead-filters-row.component';\nimport { TheadFormRowComponent } from './rows/thead-form-row.component';\nimport { TheadTitlesRowComponent } from './rows/thead-titles-row.component';\n\nconst THEAD_COMPONENTS = [\n ActionsComponent,\n ActionsTitleComponent,\n AddButtonComponent,\n CheckboxSelectAllComponent,\n ColumnTitleComponent,\n TitleComponent,\n TheadFitlersRowComponent,\n TheadFormRowComponent,\n TheadTitlesRowComponent,\n Ng2SmartTableTheadComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n FilterModule,\n CellModule,\n ],\n declarations: [\n ...THEAD_COMPONENTS,\n ],\n exports: [\n ...THEAD_COMPONENTS,\n ],\n})\nexport class THeadModule { }\n","import { Component, Input, Output, SimpleChange, EventEmitter, OnChanges } from '@angular/core';\n\nimport { Grid } from './lib/grid';\nimport { Row } from './lib/data-set/row';\nimport { deepExtend } from './lib/helpers';\nimport { LocalDataSource } from './lib/data-source/local/local.data-source';\nimport { SmartTableConfirmDeleteEvent, SmartTableConfirmEditEvent, SmartTableCreateConfirm, SmartTableCustomEvent, SmartTableRowClickedEvent, SmartTableRowSelectEvent, SmartTableSettings } from './lib/interfaces/smart-table.models';\n\n@Component({\n selector: 'ng2-smart-table',\n styleUrls: ['./ng2-smart-table.component.scss'],\n templateUrl: './ng2-smart-table.component.html',\n})\nexport class Ng2SmartTableComponent implements OnChanges {\n @Input() source!: LocalDataSource;\n @Input() settings!: SmartTableSettings;\n\n @Output() multiRowSelect = new EventEmitter<SmartTableRowSelectEvent>();\n @Output() rowClicked = new EventEmitter<SmartTableRowClickedEvent>();\n @Output() delete = new EventEmitter<any>();\n @Output() edit = new EventEmitter<any>();\n @Output() editCancel = new EventEmitter<any>();\n @Output() create = new EventEmitter<any>();\n @Output() custom = new EventEmitter<SmartTableCustomEvent>();\n @Output() deleteConfirm = new EventEmitter<SmartTableConfirmDeleteEvent>();\n @Output() editConfirm = new EventEmitter<SmartTableConfirmEditEvent>();\n @Output() createConfirm = new EventEmitter<SmartTableCreateConfirm>();\n @Output() rowHover: EventEmitter<any> = new EventEmitter<any>();\n\n tableClass: string = '';\n tableId: string = '';\n perPageSelect: number[] = [];\n isHideHeader = false;\n isHideSubHeader = false;\n isPagerDisplay = false;\n rowClassFunction: Function = ()=>'';\n\n grid!: Grid;\n defaultSettings: SmartTableSettings = {\n mode: 'inline', // inline|external|click-to-edit\n selectMode: 'single', // single|multi\n selectedRowIndex: -1,\n switchPageToSelectedRowPage: false,\n hideHeader: false,\n hideSubHeader: false,\n actions: {\n columnTitle: 'Actions',\n add: true,\n edit: true,\n delete: true,\n custom: [],\n position: 'left', // left|right\n },\n filter: {\n inputClass: '',\n },\n edit: {\n inputClass: '',\n editButtonContent: 'Edit',\n saveButtonContent: 'Update',\n cancelButtonContent: 'Cancel',\n confirmSave: false,\n },\n add: {\n inputClass: '',\n addButtonContent: 'Add New',\n createButtonContent: 'Create',\n cancelButtonContent: 'Cancel',\n confirmCreate: false,\n },\n delete: {\n deleteButtonContent: 'Delete',\n confirmDelete: false,\n },\n attr: {\n id: '',\n class: '',\n },\n noDataMessage: 'No data found',\n columns: [],\n pager: false,\n rowClassFunction: () => '',\n };\n\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\n if (this.grid) {\n if (changes['settings']) {\n this.grid.setSettings(this.prepareSettings());\n }\n if (changes['source']) {\n this.source = this.prepareSource();\n this.grid.setSource(this.source);\n }\n } else {\n this.initGrid();\n }\n this.tableId = this.grid.getSetting('attr.id');\n this.tableClass = this.grid.getSetting('attr.class');\n this.isHideHeader = this.grid.getSetting('hideHeader');\n this.isHideSubHeader = this.grid.getSetting('hideSubHeader');\n this.isPagerDisplay = this.grid.getSetting('pager.display', false);\n this.perPageSelect = this.grid.getSetting('pager.perPageSelect');\n this.rowClassFunction = this.grid.getSetting('rowClassFunction', () => '');\n }\n\n protected multipleSelectRow(row: Row): void {\n this.grid.multipleSelectRow(row);\n this.emitUserSelectRow(row);\n }\n\n protected onSelectAllRows(): void {\n this.grid.dataSet.isAllSelected;\n this.grid.selectAllRows(!this.grid.dataSet.isAllSelected);\n this.emitUserSelectRow(null);\n }\n\n protected onSelectRow(row: Row, state: boolean): void {\n this.grid.selectRow(row, state);\n }\n\n protected emitUserRowClicked(row: Row): void {\n this.rowClicked.emit({\n data: row ? row.getData() : null,\n source: this.source,\n });\n }\n\n private initGrid(): void {\n this.source = this.prepareSource();\n this.grid = new Grid(this.source, this.prepareSettings());\n }\n\n private prepareSource(): LocalDataSource {\n if (this.source instanceof LocalDataSource) {\n return this.source;\n }\n return new LocalDataSource();\n }\n\n private prepareSettings(): SmartTableSettings {\n return deepExtend({}, this.defaultSettings, this.settings);\n }\n\n private emitUserSelectRow(row: Row | null): void {\n this.multiRowSelect.emit({\n data: row ? row.getData() : null,\n isSelected: row ? row.getIsSelected() : false,\n source: this.source,\n selected: this.grid.dataSet.getSelectedRowsData(),\n });\n } \n}\n","<table [id]=\"tableId\" [ngClass]=\"tableClass\">\n\n <thead ng2-st-thead *ngIf=\"!isHideHeader || !isHideSubHeader\"\n [grid]=\"grid\"\n [source]=\"source\"\n [createConfirm]=\"createConfirm\"\n (create)=\"create.emit($event)\"\n (selectAllRows)=\"onSelectAllRows()\">\n </thead>\n\n <tbody ng2-st-tbody [grid]=\"grid\"\n [source]=\"source\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [rowClassFunction]=\"rowClassFunction\"\n (edit)=\"edit.emit($event)\"\n (editCancel)=\"editCancel.emit($event)\"\n (delete)=\"delete.emit($event)\"\n (custom)=\"custom.emit($event)\"\n (userClickedRow)=\"emitUserRowClicked($event)\"\n (multipleSelectRow)=\"multipleSelectRow($event)\">\n </tbody>\n\n</table>\n\n<ng2-smart-table-pager *ngIf=\"isPagerDisplay\"\n [source]=\"source\"\n [perPageSelect]=\"perPageSelect\">\n</ng2-smart-table-pager>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CellModule } from './components/cell/cell.module';\nimport { FilterModule } from './components/filter/filter.module';\nimport { PagerModule } from './components/pager/pager.module';\nimport { TBodyModule } from './components/tbody/tbody.module';\nimport { THeadModule } from './components/thead/thead.module';\n\nimport { Ng2SmartTableComponent } from './ng2-smart-table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CellModule,\n FilterModule,\n PagerModule,\n TBodyModule,\n THeadModule,\n ],\n declarations: [\n Ng2SmartTableComponent,\n ],\n exports: [\n Ng2SmartTableComponent,\n ],\n})\nexport class Ng2SmartTableModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.CheckboxEditorComponent","i3.InputEditorComponent","i4.SelectEditorComponent","i5.TextareaEditorComponent","i2.CustomEditComponent","i3.DefaultEditComponent","i2.CustomViewComponent","i2.EditCellComponent","i3.ViewCellComponent","i2.CheckboxFilterComponent","i3.InputFilterComponent","i4.SelectFilterComponent","i2.DefaultFilterComponent","i3.CustomFilterComponent","i3.CellComponent","i4.TbodyCreateCancelComponent","i5.TbodyEditDeleteComponent","i6.TbodyCustomComponent","i2.FilterComponent","i3.AddButtonComponent","i2.CellComponent","i3.ActionsComponent","i1","i1.TitleComponent","i2.ActionsTitleComponent","i3.CheckboxSelectAllComponent","i4.ColumnTitleComponent","i2.TheadFitlersRowComponent","i3.TheadFormRowComponent","i4.TheadTitlesRowComponent","i2.PagerComponent","i3.Ng2SmartTableTbodyComponent","i4.Ng2SmartTableTheadComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"den4ik92-ng2-smart-table.mjs","sources":["../../../projects/ng2-smart-table/src/lib/lib/data-set/cell.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/row.ts","../../../projects/ng2-smart-table/src/lib/lib/helpers.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/column.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/data-set.ts","../../../projects/ng2-smart-table/src/lib/lib/grid.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/edit-cell-default.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/custom-edit.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/default-editor.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/checkbox-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/input-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/select-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/textarea-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/default-edit.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/default-edit.component.html","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/edit-cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-view-mode/custom-view.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-view-mode/view-cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell.module.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.sorter.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.filter.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.pager.ts","../../../projects/ng2-smart-table/src/lib/lib/interfaces/smart-table.models.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/data-source.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.data-source.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-default.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/default-filter.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/checkbox-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/input-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/select-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/default-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/custom-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter.module.ts","../../../projects/ng2-smart-table/src/lib/components/pager/pager.component.ts","../../../projects/ng2-smart-table/src/lib/components/pager/pager.module.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/create-cancel.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/edit-delete.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/custom.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.component.html","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.module.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/add-button.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-filters-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/actions.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-form-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/actions-title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/checkbox-select-all.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/title/title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/column-title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-titles-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/thead.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/thead.component.html","../../../projects/ng2-smart-table/src/lib/components/thead/thead.module.ts","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.component.ts","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.component.html","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.module.ts","../../../projects/ng2-smart-table/src/den4ik92-ng2-smart-table.ts"],"sourcesContent":["import { Column } from './column';\nimport { DataSet } from './data-set';\nimport { Row } from './row';\n\nexport function prepareValue (value: any) { return value }\n\nexport class Cell {\n\n newValue: any = '';\n protected static PREPARE = prepareValue;\n\n constructor(protected value: any, protected row: Row, protected column: Column, protected dataSet: DataSet) {\n this.newValue = value;\n }\n\n getColumn(): Column {\n return this.column;\n }\n\n getColumnClass(): string | undefined {\n return this.column.class;\n }\n\n getRow(): Row {\n return this.row;\n }\n\n getValue(): any {\n const prepare = this.column.getValuePrepareFunction() || Cell.PREPARE;\n return prepare.call(null, this.value, this.row.getData(), this);\n }\n\n setValue(value: any): any {\n this.newValue = value;\n }\n\n getId(): string {\n return this.getColumn().id;\n }\n\n getTitle(): string {\n return this.getColumn().title;\n }\n\n isEditable(): boolean {\n if (this.getRow().index === -1) {\n return this.getColumn().isAddable;\n }\n else {\n return this.getColumn().isEditable;\n }\n }\n\n}\n","import { Cell } from './cell';\nimport { Column } from './column';\nimport { DataSet } from './data-set';\n\nexport class Row {\n\n pending: boolean = false;\n isSelected: boolean = false;\n isInEditing: boolean = false;\n cells: Cell[] = [];\n\n\n constructor(public index: number, protected data: any, protected _dataSet: DataSet) {\n this.process();\n }\n\n getCell(column: Column): Cell | undefined {\n return this.cells.find(el => el.getColumn() === column);\n }\n\n getCells(): Cell[] {\n return this.cells;\n }\n\n getData(): any {\n return this.data;\n }\n\n getIsSelected(): boolean {\n return this.isSelected;\n }\n\n getNewData(): any {\n const values = Object.assign({}, this.data);\n this.getCells().forEach((cell) => values[cell.getColumn().id] = cell.newValue);\n return values;\n }\n\n setData<T=any>(data: T): void {\n this.data = data;\n this.process();\n }\n\n process(): void {\n this.cells = [];\n this._dataSet.getColumns().forEach((column: Column) => {\n const cell = this.createCell(column);\n this.cells.push(cell);\n });\n }\n\n createCell(column: Column): Cell {\n const defValue = (column as any).settings.defaultValue ? (column as any).settings.defaultValue : '';\n const value = typeof this.data[column.id] === 'undefined' ? defValue : this.data[column.id];\n return new Cell(value, this, column, this._dataSet);\n }\n}\n","/**\n * Extending object that entered in first argument.\n *\n * Returns extended object or false if have no target object or incorrect type.\n *\n * If you wish to clone source object (without modify it), just use empty new\n * object as first argument, like this:\n * deepExtend({}, yourObj_1, [yourObj_N]);\n */\nexport const deepExtend = function(...objects: Array<any>): any {\n if (arguments.length < 1 || typeof arguments[0] !== 'object') {\n return false;\n }\n\n if (arguments.length < 2) {\n return arguments[0];\n }\n\n const target = arguments[0];\n\n // convert arguments to array and cut off target object\n const args = Array.prototype.slice.call(arguments, 1);\n\n let val, src;\n\n args.forEach((obj: any) => {\n // skip argument if it is array or isn't object\n if (typeof obj !== 'object' || Array.isArray(obj)) {\n return;\n }\n\n Object.keys(obj).forEach(function (key) {\n src = target[key]; // source value\n val = obj[key]; // new value\n\n // recursion prevention\n if (val === target) {\n return;\n\n /**\n * if new value isn't object then just overwrite by new value\n * instead of extending.\n */\n } else if (typeof val !== 'object' || val === null) {\n target[key] = val;\n return;\n\n // just clone arrays (and recursive clone objects inside)\n } else if (Array.isArray(val)) {\n target[key] = [...val];\n return;\n\n // overwrite by new value if source isn't object or array\n } else if (typeof src !== 'object' || src === null || Array.isArray(src)) {\n target[key] = deepExtend({}, val);\n return;\n\n // source value and new value is objects both, extending...\n } else {\n target[key] = deepExtend(src, val);\n return;\n }\n });\n });\n\n return target;\n};\n\nexport class Deferred<T> {\n promise: Promise<T>;\n resolve!: (value?: T) => void;\n reject!: (reason?: string) => void;\n\n constructor() {\n this.promise = new Promise<T>((resolve, reject) => {\n this.resolve = resolve as any;\n this.reject = reject;\n });\n }\n}\n\n// getDeepFromObject({result: {data: 1}}, 'result.data', 2); // returns 1\nexport function getDeepFromObject(object = {}, name: string, defaultValue: any = null) {\n const keys = name.split('.');\n // clone the object\n let level = deepExtend({}, object);\n keys.forEach((k) => {\n if (level && typeof level[k] !== 'undefined') {\n level = level[k];\n }\n });\n return typeof level === 'undefined' ? defaultValue : level;\n}\n\nexport function getPageForRowIndex(index: number, perPage: number): number {\n // we need to add 1 to convert 0-based index to 1-based page number.\n return Math.floor(index / perPage) + 1;\n}\n","import { SmartTableEditorAndFilter } from '../interfaces/smart-table.models';\nimport { SmartTableColumnSettings, SmartTableColumnSettingsTypes, SmartTableSortDirection } from './../interfaces/smart-table.models';\nimport { DataSet } from './data-set';\n\nexport class Column {\n title: string = '';\n type: SmartTableColumnSettingsTypes = 'text';\n class: string = '';\n width: string = '';\n hide: boolean = false;\n isSortable: boolean = false;\n isEditable: boolean = true;\n isAddable: boolean = true;\n isFilterable: boolean = false;\n sortDirection: SmartTableSortDirection = 'asc';\n defaultSortDirection: SmartTableSortDirection | false = false;\n editor: SmartTableEditorAndFilter | false = false;\n filter: SmartTableEditorAndFilter | false = false;\n renderComponent: any;\n compareFunction: Function | undefined;\n valuePrepareFunction: Function | undefined;\n filterFunction: Function | undefined;\n\n constructor(public id: string, private settings: SmartTableColumnSettings, protected dataSet: DataSet) {\n this.process(this.settings);\n }\n\n getCompareFunction(): Function | undefined {\n return this.compareFunction;\n }\n\n getValuePrepareFunction(): Function | undefined {\n return this.valuePrepareFunction;\n }\n\n getFilterFunction(): Function | undefined {\n return this.filterFunction;\n }\n\n getConfig(): any {\n if (this.editor && (this.editor.type === 'checkbox' || this.editor.type === 'custom' || this.editor.type === 'list')) {\n return this.editor?.config\n }\n return false\n }\n\n getFilterType(): any {\n return this.filter && this.filter.type;\n }\n\n getFilterConfig(): any {\n if (this.filter && (this.filter.type === 'checkbox' || this.filter.type === 'custom' || this.filter.type === 'list')) {\n return this.filter?.config\n }\n return false;\n }\n\n protected process(settings: SmartTableColumnSettings) {\n this.title = settings.title;\n this.class = settings.class || '';\n this.width = settings.width || '';\n this.hide = !!settings.hide;\n this.type = settings.type;\n if (settings?.editor) {\n this.editor = settings.editor;\n }\n if (settings?.filter) {\n this.filter = settings.filter;\n }\n if (settings.type === 'custom' && settings.renderComponent) {\n this.renderComponent = settings.renderComponent;\n }\n this.isFilterable = typeof settings.filter === 'undefined' ? true : !!settings['filter'];\n this.defaultSortDirection = settings?.sortDirection || false;\n this.isSortable = typeof settings.sort === 'undefined' ? true : settings.sort;\n this.isEditable = typeof settings.editable === 'undefined' ? true : settings.editable;\n this.isAddable=typeof settings.addable === 'undefined' ? true : settings.addable;\n this.sortDirection = this.prepareSortDirection();\n\n this.compareFunction = settings.compareFunction;\n this.valuePrepareFunction = settings.valuePrepareFunction;\n this.filterFunction = settings.filterFunction;\n }\n\n prepareSortDirection(): SmartTableSortDirection {\n return this.defaultSortDirection === 'desc' ? 'desc' : 'asc';\n }\n}\n","import { Row } from './row';\nimport { Column } from './column';\nimport { SmartTableColumnSettings } from '../interfaces/smart-table.models';\n\nexport class DataSet {\n newRow!: Row;\n\n protected data: Array<any> = [];\n protected columns: Array<Column> = [];\n protected rows: Array<Row> = [];\n protected selectedRows = new Set<Row>();\n\n constructor(data: any[] = [], protected columnSettings: SmartTableColumnSettings[]) {\n this.createColumns(columnSettings);\n this.setData(data);\n\n this.createNewRow();\n }\n\n setData(data: Array<any>) {\n this.data = data;\n this.createRows();\n }\n\n getColumns(): Array<Column> {\n return this.columns;\n }\n\n getRows(): Array<Row> {\n return this.rows;\n }\n\n getFirstRow(): Row {\n return this.rows[0];\n }\n\n getLastRow(): Row {\n return this.rows[this.rows.length - 1];\n }\n\n findRowByData(data: any): Row | undefined {\n return this.rows.find((row: Row) => row.getData() === data);\n }\n\n setSelectAll(state: boolean): void {\n this.rows.forEach((row) => {\n row.isSelected = state;\n this.storeSelectedRow(row);\n });\n }\n\n deselectAll() {\n this.rows.forEach((row) => {\n row.isSelected = false;\n });\n // we need to clear selectedRow field because no one row selected\n this.selectedRows.clear();\n }\n\n selectRow(row: Row, state: boolean): void {\n row.isSelected = state;\n this.storeSelectedRow(row);\n }\n\n multipleSelectRow(row: Row): Row {\n row.isSelected = !row.isSelected;\n this.storeSelectedRow(row);\n\n return row;\n }\n\n getSelectedRowsData(): Array<any> {\n return [...this.selectedRows]\n }\n\n createNewRow() {\n this.newRow = new Row(-1, {}, this);\n this.newRow.isInEditing = true;\n }\n\n /**\n * Create columns by mapping from the settings\n * @param settings\n * @private\n */\n createColumns(settings: SmartTableColumnSettings[]) {\n settings.forEach((columnSettings) => {\n this.columns.push(new Column(columnSettings.key as string, columnSettings, this));\n })\n }\n\n /**\n * Create rows based on current data prepared in data source\n * @private\n */\n createRows() {\n this.rows = [];\n this.data.forEach((el, index) => {\n const row = new Row(index, el, this);\n row.isSelected = this.selectedRows.has(row.getData());\n this.rows.push(row);\n });\n }\n\n public get isAllSelected(): boolean {\n return this.rows.every((row) => row.isSelected)\n }\n\n private storeSelectedRow(row: Row): void {\n if(row.isSelected) {\n this.selectedRows.add(row.getData());\n } else {\n this.selectedRows.delete(row.getData());\n }\n }\n}\n","import { LocalDataSource } from \"./data-source/local/local.data-source\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { Observable } from \"rxjs\";\nimport { EventEmitter } from \"@angular/core\";\n\nimport { Deferred, getDeepFromObject } from \"./helpers\";\nimport { Column } from \"./data-set/column\";\nimport { Row } from \"./data-set/row\";\nimport { DataSet } from \"./data-set/data-set\";\nimport {\n SmartTableSettings,\n SmartTableColumnSettings,\n SmartTableSortItem,\n} from \"./interfaces/smart-table.models\";\n\nexport class Grid {\n createFormShown: boolean = false;\n\n source!: LocalDataSource;\n settings!: SmartTableSettings;\n dataSet!: DataSet;\n\n onSelectRowSource = new Subject<any>();\n onDeselectRowSource = new Subject<any>();\n\n private sourceOnChangedSubscription: Subscription | undefined;\n private sourceOnUpdatedSubscription: Subscription | undefined;\n\n constructor(source: LocalDataSource, settings: SmartTableSettings) {\n this.setSettings(settings);\n this.setSource(source);\n }\n\n detach(): void {\n if (this.sourceOnChangedSubscription) {\n this.sourceOnChangedSubscription.unsubscribe();\n }\n if (this.sourceOnUpdatedSubscription) {\n this.sourceOnUpdatedSubscription.unsubscribe();\n }\n }\n\n showActionColumn(position: string): boolean {\n return this.isCurrentActionsPosition(position) && this.isActionsVisible();\n }\n\n isCurrentActionsPosition(position: string): boolean {\n return position == this.getSetting(\"actions.position\");\n }\n\n isActionsVisible(): boolean {\n return (\n this.getSetting<boolean>(\"actions.add\", false) ||\n this.getSetting<boolean>(\"actions.edit\", false) ||\n this.getSetting<boolean>(\"actions.delete\", false) ||\n !!this.getSetting<[]>(\"actions.custom\", [])?.length\n );\n }\n\n isMultiSelectVisible(): boolean {\n return this.getSetting(\"selectMode\") === \"multi\";\n }\n\n getNewRow(): Row {\n return this.dataSet.newRow;\n }\n\n setSettings(settings: SmartTableSettings) {\n this.settings = settings;\n this.dataSet = new DataSet(\n [],\n this.getSetting<SmartTableColumnSettings[]>(\"columns\")\n );\n\n if (this.source) {\n this.source.refresh();\n }\n }\n\n getDataSet(): DataSet {\n return this.dataSet;\n }\n\n setSource(source: LocalDataSource) {\n this.source = this.prepareSource(source);\n this.detach();\n\n this.sourceOnChangedSubscription = this.source\n .onChanged()\n .subscribe((changes: any) => this.processDataChange(changes));\n\n this.sourceOnUpdatedSubscription = this.source\n .onUpdated()\n .subscribe((data: any) => {\n const changedRow = this.dataSet.findRowByData(data);\n if (changedRow) {\n changedRow.setData(data);\n }\n });\n }\n\n getSetting<T>(name: string, defaultValue?: any): T {\n return getDeepFromObject(this.settings, name, defaultValue);\n }\n\n getColumns(): Array<Column> {\n return this.dataSet.getColumns();\n }\n\n getRows(): Array<Row> {\n return this.dataSet.getRows();\n }\n\n selectRow(row: Row, state: boolean) {\n this.dataSet.selectRow(row, state);\n }\n\n multipleSelectRow(row: Row) {\n this.dataSet.multipleSelectRow(row);\n }\n\n onSelectRow(): Observable<any> {\n return this.onSelectRowSource.asObservable();\n }\n\n onDeselectRow(): Observable<any> {\n return this.onDeselectRowSource.asObservable();\n }\n\n edit(row: Row) {\n row.isInEditing = true;\n }\n\n create(row: Row, confirmEmitter: EventEmitter<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then((newData) => {\n row.pending = false;\n newData = newData ? newData : row.getNewData();\n this.source.prepend(newData).then(() => {\n this.createFormShown = false;\n this.dataSet.createNewRow();\n });\n })\n .catch((err) => {\n row.pending = false;\n });\n\n if (this.getSetting(\"add.confirmCreate\")) {\n confirmEmitter.emit({\n newData: row.getNewData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n }\n\n save(row: Row, confirmEmitter: EventEmitter<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then((newData) => {\n row.pending = false;\n newData = newData ? newData : row.getNewData();\n this.source.update(row.getData(), newData).then(() => {\n row.isInEditing = false;\n });\n })\n .catch((err) => {\n row.pending = false;\n });\n\n if (this.getSetting(\"edit.confirmSave\")) {\n confirmEmitter.emit({\n data: row.getData(),\n newData: row.getNewData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n }\n\n delete(row: Row, confirmEmitter: EventEmitter<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then(() => {\n row.pending = false;\n this.source.remove(row.getData());\n })\n .catch((err) => {\n row.pending = false;\n // doing nothing\n });\n if (this.getSetting(\"delete.confirmDelete\")) {\n confirmEmitter.emit({\n data: row.getData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n if (row.isSelected) {\n this.dataSet.selectRow(row, false);\n }\n }\n\n processDataChange(changes: any) {\n if (this.shouldProcessChange(changes)) {\n if (changes[\"action\"] === \"load\") {\n this.dataSet.deselectAll();\n }\n this.dataSet.setData(changes[\"elements\"]);\n }\n }\n\n shouldProcessChange(changes: any): boolean {\n if (\n [\"filter\", \"sort\", \"page\", \"remove\", \"refresh\", \"load\", \"paging\"].indexOf(\n changes[\"action\"]\n ) !== -1\n ) {\n return true;\n } else if (\n [\"prepend\", \"append\"].indexOf(changes[\"action\"]) !== -1 &&\n !this.getSetting(\"pager.display\")\n ) {\n return true;\n }\n return false;\n }\n\n prepareSource(source: LocalDataSource): LocalDataSource {\n const initialSort: SmartTableSortItem | false = this.getInitialSort();\n if (initialSort) {\n source.setSort([initialSort], false);\n }\n if (this.getSetting(\"pager.display\") === true) {\n source.setPaging(1, this.getSetting(\"pager.perPage\"), false);\n }\n\n source.refresh();\n return source;\n }\n\n getInitialSort(): SmartTableSortItem | false {\n const defaultSortColumn = this.getColumns().find(\n (column: Column) => column.isSortable && column.defaultSortDirection\n );\n if (!defaultSortColumn) {\n return false;\n }\n return {\n field: defaultSortColumn.id,\n direction: defaultSortColumn.defaultSortDirection || \"asc\",\n compare: defaultSortColumn.getCompareFunction(),\n };\n }\n\n getSelectedRowsData(): Array<any> {\n return this.dataSet.getRows();\n }\n\n selectAllRows(status: boolean) {\n this.dataSet.setSelectAll(status);\n }\n\n getFirstRow(): Row {\n return this.dataSet.getFirstRow();\n }\n\n getLastRow(): Row {\n return this.dataSet.getLastRow();\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n template: ''\n})\nexport class EditCellDefault {\n\n @Input() cell!: Cell;\n @Input() inputClass: string = '';\n\n @Output() edited = new EventEmitter<any>();\n\n onEdited(event: any): boolean {\n this.edited.next(event);\n return false;\n }\n\n onStopEditing(): boolean {\n this.cell.getRow().isInEditing = false;\n return false;\n }\n\n onClick(event: MouseEvent) {\n event.stopPropagation();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n SimpleChanges,\n OnChanges,\n OnDestroy,\n} from '@angular/core';\n\nimport { EditCellDefault } from './edit-cell-default';\nimport { SmartTableEditorAndFilter } from '../../../lib/interfaces/smart-table.models';\n\n@Component({\n selector: 'table-cell-custom-editor',\n template: `\n <ng-template #dynamicTarget></ng-template>\n `,\n})\nexport class CustomEditComponent extends EditCellDefault implements OnChanges, OnDestroy {\n\n customComponent: any;\n @ViewChild('dynamicTarget', { read: ViewContainerRef, static: true }) dynamicTarget: any;\n\n constructor(private resolver: ComponentFactoryResolver) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const editor: SmartTableEditorAndFilter | false = this.cell.getColumn().editor\n if (this.cell && !this.customComponent && editor && editor.type == 'custom') {\n const componentFactory = this.resolver.resolveComponentFactory(editor.component);\n this.customComponent = this.dynamicTarget.createComponent(componentFactory);\n\n // set @Inputs and @Outputs of custom component\n this.customComponent.instance.cell = this.cell;\n this.customComponent.instance.inputClass = this.inputClass;\n this.customComponent.instance.onStopEditing.subscribe(() => this.onStopEditing());\n this.customComponent.instance.onEdited.subscribe((event: any) => this.onEdited(event));\n this.customComponent.instance.onClick.subscribe((event: any) => this.onClick(event));\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n template: '',\n})\nexport class DefaultEditor implements Editor {\n @Input() cell!: Cell;\n @Input() inputClass: string = '';\n\n @Output() onStopEditing = new EventEmitter<any>();\n @Output() onEdited = new EventEmitter<any>();\n @Output() onClick = new EventEmitter<any>();\n}\n\nexport interface Editor {\n cell: Cell;\n inputClass: string;\n onStopEditing: EventEmitter<any>;\n onEdited: EventEmitter<any>;\n onClick: EventEmitter<any>;\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'checkbox-editor',\n styleUrls: ['./editor.component.scss'],\n template: `\n <input [ngClass]=\"inputClass\"\n type=\"checkbox\"\n class=\"form-control\"\n [name]=\"cell.getId()\"\n [disabled]=\"!cell.isEditable()\"\n [checked]=\"cell.getValue() === (cell.getColumn().getConfig()?.true || true)\"\n (click)=\"onClick.emit($event)\"\n (change)=\"onChange($event)\">\n `,\n})\nexport class CheckboxEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n\n onChange(event: any) {\n const config: any = this.cell.getColumn().getConfig();\n const trueVal = (config && config?.true) || true;\n const falseVal = (config && config?.false) || false;\n this.cell.newValue = event.target.checked ? trueVal : falseVal;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'input-editor',\n styleUrls: ['./editor.component.scss'],\n template: `\n <input [ngClass]=\"inputClass\"\n class=\"form-control\"\n [(ngModel)]=\"cell.newValue\"\n [name]=\"cell.getId()\"\n [placeholder]=\"cell.getTitle()\"\n [disabled]=\"!cell.isEditable()\"\n (click)=\"onClick.emit($event)\"\n (keydown.enter)=\"onEdited.emit($event)\"\n (keydown.esc)=\"onStopEditing.emit()\">\n `,\n})\nexport class InputEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'select-editor',\n template: `\n <select [ngClass]=\"inputClass\"\n class=\"form-control\"\n [(ngModel)]=\"cell.newValue\"\n [name]=\"cell.getId()\"\n [disabled]=\"!cell.isEditable()\"\n (click)=\"onClick.emit($event)\"\n (keydown.enter)=\"onEdited.emit($event)\"\n (keydown.esc)=\"onStopEditing.emit()\">\n\n <option *ngFor=\"let option of cell.getColumn().getConfig()?.list\" [value]=\"option.value\"\n [selected]=\"option.value === cell.getValue()\">{{ option.title }}\n </option>\n </select>\n `,\n})\nexport class SelectEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n}\n","import { Component } from '@angular/core';\n\nimport { DefaultEditor } from './default-editor';\n\n@Component({\n selector: 'textarea-editor',\n styleUrls: ['./editor.component.scss'],\n template: `\n <textarea [ngClass]=\"inputClass\"\n class=\"form-control\"\n [(ngModel)]=\"cell.newValue\"\n [name]=\"cell.getId()\"\n [disabled]=\"!cell.isEditable()\"\n [placeholder]=\"cell.getTitle()\"\n (click)=\"onClick.emit($event)\"\n (keydown.enter)=\"onEdited.emit($event)\"\n (keydown.esc)=\"onStopEditing.emit()\">\n </textarea>\n `,\n})\nexport class TextareaEditorComponent extends DefaultEditor {\n\n constructor() {\n super();\n }\n}\n","import { Component } from '@angular/core';\n\nimport { EditCellDefault } from './edit-cell-default';\nimport { SmartTableEditorAndFilterTypes } from '../../../lib/interfaces/smart-table.models';\n\n@Component({\n selector: 'table-cell-default-editor',\n templateUrl: './default-edit.component.html',\n})\nexport class DefaultEditComponent extends EditCellDefault {\n\n constructor() {\n super();\n }\n\n getEditorType(): SmartTableEditorAndFilterTypes {\n const editor = this.cell.getColumn().editor\n if (editor) {\n return editor.type\n }\n return 'text';\n }\n}\n","<div [ngSwitch]=\"getEditorType()\">\n <select-editor *ngSwitchCase=\"'list'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </select-editor>\n\n <textarea-editor *ngSwitchCase=\"'textarea'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </textarea-editor>\n\n <checkbox-editor *ngSwitchCase=\"'checkbox'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\">\n </checkbox-editor>\n\n <input-editor *ngSwitchDefault\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </input-editor>\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\nimport { SmartTableEditorAndFilterTypes } from '../../../lib/interfaces/smart-table.models';\n\n@Component({\n selector: 'table-cell-edit-mode',\n template: `\n <div [ngSwitch]=\"getEditorType()\">\n <table-cell-custom-editor *ngSwitchCase=\"'custom'\"\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (edited)=\"onEdited($event)\">\n </table-cell-custom-editor>\n <table-cell-default-editor *ngSwitchDefault\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (edited)=\"onEdited($event)\">\n </table-cell-default-editor>\n </div>\n `,\n})\nexport class EditCellComponent {\n\n @Input() cell!: Cell;\n @Input() inputClass: string = '';\n\n @Output() edited = new EventEmitter<any>();\n\n onEdited(event: any): boolean {\n this.edited.next(event);\n return false;\n }\n\n getEditorType(): SmartTableEditorAndFilterTypes {\n const editor = this.cell.getColumn().editor\n if (editor) {\n return editor.type\n }\n return 'text';\n }\n}\n","import {\n Component,\n Input,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n OnInit,\n OnDestroy,\n} from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\nimport { ViewCell } from './view-cell';\n\n@Component({\n selector: 'custom-view-component',\n template: `\n <ng-template #dynamicTarget></ng-template>\n `,\n})\nexport class CustomViewComponent implements OnInit, OnDestroy {\n\n customComponent: any;\n @Input() cell!: Cell;\n @ViewChild('dynamicTarget', { read: ViewContainerRef, static: true }) dynamicTarget: any;\n\n constructor(private resolver: ComponentFactoryResolver) {\n }\n\n ngOnInit() {\n if (this.cell && !this.customComponent) {\n this.createCustomComponent();\n this.patchInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n\n protected createCustomComponent() {\n const componentFactory = this.resolver.resolveComponentFactory(this.cell.getColumn().renderComponent);\n this.customComponent = this.dynamicTarget.createComponent(componentFactory);\n }\n\n protected patchInstance() {\n Object.assign(this.customComponent.instance, this.getPatch());\n }\n\n protected getPatch(): ViewCell {\n return {\n value: this.cell.getValue(),\n rowData: this.cell.getRow().getData()\n }\n }\n}\n","import {Component, Input, ChangeDetectionStrategy } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n selector: 'table-cell-view-mode',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [ngSwitch]=\"cell.getColumn().type\">\n <custom-view-component *ngSwitchCase=\"'custom'\" [cell]=\"cell\"></custom-view-component>\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"cell.getValue()\"></div>\n <div *ngSwitchDefault>{{ cell.getValue() }}</div>\n </div>\n `,\n})\nexport class ViewCellComponent {\n @Input() cell!: Cell;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { Cell } from '../../lib/data-set/cell';\nimport { Row } from '../../lib/data-set/row';\nimport { Grid } from '../../lib/grid';\n\n@Component({\n selector: 'ng2-smart-table-cell',\n template: `\n <table-cell-view-mode *ngIf=\"!isInEditing\" [cell]=\"cell\"></table-cell-view-mode>\n <table-cell-edit-mode *ngIf=\"isInEditing\" [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (edited)=\"onEdited($event)\">\n </table-cell-edit-mode>\n `,\n})\nexport class CellComponent {\n\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() editConfirm!: EventEmitter<any>;\n @Input() createConfirm!: EventEmitter<any>;\n @Input() isNew!: boolean;\n @Input() cell!: Cell;\n @Input() inputClass: string = '';\n @Input() mode: string = 'inline';\n @Input() isInEditing: boolean = false;\n\n @Output() edited = new EventEmitter<any>();\n\n onEdited(event: any) {\n if (this.isNew) {\n this.grid.create(this.grid.getNewRow(), this.createConfirm);\n } else {\n this.grid.save(this.row, this.editConfirm);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { CellComponent } from './cell.component';\nimport { CustomEditComponent } from './cell-edit-mode/custom-edit.component';\nimport { DefaultEditComponent } from './cell-edit-mode/default-edit.component';\nimport { EditCellComponent } from './cell-edit-mode/edit-cell.component';\nimport { CheckboxEditorComponent } from './cell-editors/checkbox-editor.component';\nimport { InputEditorComponent } from './cell-editors/input-editor.component';\nimport { SelectEditorComponent } from './cell-editors/select-editor.component';\nimport { TextareaEditorComponent } from './cell-editors/textarea-editor.component';\nimport { CustomViewComponent } from './cell-view-mode/custom-view.component';\nimport { ViewCellComponent } from './cell-view-mode/view-cell.component';\nimport { EditCellDefault } from './cell-edit-mode/edit-cell-default';\nimport { DefaultEditor } from './cell-editors/default-editor';\n\nconst CELL_COMPONENTS = [\n CellComponent,\n EditCellDefault,\n DefaultEditor,\n CustomEditComponent,\n DefaultEditComponent,\n EditCellComponent,\n CheckboxEditorComponent,\n InputEditorComponent,\n SelectEditorComponent,\n TextareaEditorComponent,\n CustomViewComponent,\n ViewCellComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n declarations: [\n ...CELL_COMPONENTS,\n ],\n exports: [\n ...CELL_COMPONENTS,\n ],\n})\nexport class CellModule { }\n","export function compareValues(direction: any, a: any, b: any) {\n if (a < b) {\n return -1 * direction;\n }\n if (a > b) {\n return direction;\n }\n return 0;\n}\n\nexport class LocalSorter {\n\n static sort(data: Array<any>, field: string, direction: string, customCompare?: Function): Array<any> {\n\n const dir: number = (direction === 'asc') ? 1 : -1;\n const compare: Function = customCompare ? customCompare : compareValues;\n\n return data.sort((a, b) => {\n return compare.call(null, dir, a[field], b[field]);\n });\n }\n}\n","export function filterValues(value: string, search: string) {\n return value.toString().toLowerCase().includes(search.toString().toLowerCase());\n}\n\nexport class LocalFilter {\n static filter(data: any[], field: string, search: string, customFilter?: Function): any[] {\n const filter: Function = customFilter ? customFilter : filterValues;\n\n return data.filter((el) => {\n const value = typeof el[field] === 'undefined' || el[field] === null ? '' : el[field];\n return filter.call(null, value, search);\n });\n }\n}\n","export class LocalPager {\n\n static paginate(data: Array<any>, page: number, perPage: number): Array<any> {\n return data.slice(perPage * (page - 1), perPage * page);\n }\n}\n","import { LocalDataSource } from \"../data-source/local/local.data-source\";\nimport { Deferred } from \"../helpers\";\n\nexport interface SelectOption {\n\ttitle: string;\n\tvalue: any;\n}\n\ninterface ObjectAny {\n\t[key: string]: any;\n}\n\nexport interface SmartTableSettings<T extends ObjectAny = any> {\n\tmode?: 'inline' | 'external' | 'click-to-edit';\n\tselectMode?: 'single' | 'multi';\n\tselectedRowIndex?: number; //if need deselect first item set value < 0;\n\tswitchPageToSelectedRowPage?: boolean;\n\thideHeader?: boolean;\n\thideSubHeader?: boolean;\n\tactions?: SmartTableAction | false;\n\tfilter?: {\n\t\tinputClass: string;\n\t};\n\tedit?:\n\t| {\n\t\tinputClass?: string;\n\t\teditButtonContent?: string;\n\t\tsaveButtonContent?: string;\n\t\tcancelButtonContent?: string;\n\t\tconfirmSave?: boolean;\n\t}\n\t| false;\n\tadd?:\n\t| {\n\t\tinputClass?: string;\n\t\taddButtonContent?: string;\n\t\tcreateButtonContent?: string;\n\t\tcancelButtonContent?: string;\n\t\tconfirmCreate?: boolean;\n\t}\n\t| false;\n\tdelete?:\n\t| {\n\t\tdeleteButtonContent?: string;\n\t\tconfirmDelete?: boolean;\n\t}\n\t| false;\n\tattr?: {\n\t\tid?: string;\n\t\tclass?: string;\n\t};\n\tnoDataMessage?: string;\n\tcolumns: SmartTableColumnSettings<T>[];\n\tpager?: SmartTablePagerSettings | false;\n\trowClassFunction?: (row: { data: T }) => string;\n}\n\nexport interface SmartTableAction {\n\tcolumnTitle?: string;\n\tadd?: boolean;\n\tedit?: boolean;\n\tdelete?: boolean;\n\tcustom?: SmartTableCustomAction[];\n\tposition?: 'left' | 'right';\n}\n\nexport interface SmartTableCustomAction {\n\tname: string;\n\ttitle: string; // insert html content to action button\n}\n\nexport type SmartTableColumnSettingsTypes = 'text' | 'html' | 'custom'\n\nexport type SmartTableColumnSettings<T=any> = SmartTableTextHtmlColumn<T> | SmartTableCustomColumn<T>;\n\ninterface SmartTableDefaultColumn<T> {\n\tkey: keyof T;\n\ttitle: string;\n\twidth?: string; //example: '20px', '20%'\n\tclass?: string;\n\teditable?: boolean;\n\thide?: boolean;\n\tsort?: boolean;\n\taddable?: boolean;\n\tsortDirection?: SmartTableSortDirection | false;\n\teditor?: SmartTableEditorAndFilter;\n\tfilter?: SmartTableEditorAndFilter | false;\n\tcompareFunction?: (itemA: T, itemB: T) => number;\n\tvaluePrepareFunction?: (columnData: any, rowData: T) => any;\n\tfilterFunction?: (columnData: any, search: string) => boolean;\n}\n\ninterface SmartTableTextHtmlColumn<T> extends SmartTableDefaultColumn<T> {\n\ttype: 'text' | 'html';\n}\n\ninterface SmartTableCustomColumn<T> extends SmartTableDefaultColumn<T> {\n\ttype: 'custom';\n\trenderComponent: any;\n}\n\nexport type SmartTableEditorAndFilterTypes = 'text' | 'textarea' | 'list' | 'custom' | 'checkbox';\n\nexport type SmartTableEditorAndFilter =\n\t| SmartTableTextEditor\n\t| SmartTableEditorList\n\t| SmartTableEditorCheckbox\n\t| SmartTableEditorCustom;\n\ninterface SmartTableTextEditor {\n\ttype: 'text' | 'textarea';\n\tconfig: any;\n}\n\ninterface SmartTableEditorList {\n\ttype: 'list';\n\tconfig: {\n\t\tselectText?: string;\n\t\tlist: SelectOption[];\n\t};\n}\n\n//deprecated\ninterface SmartTableEditorCompleter {\n\ttype: 'completer';\n\tconfig: {\n\t\tcompleter: {\n\t\t\tdata: any[];\n\t\t\tsearchFields: string;\n\t\t\ttitleField: string;\n\t\t\tdescriptionField?: string;\n\t\t};\n\t};\n}\n\ninterface SmartTableEditorCheckbox {\n\ttype: 'checkbox';\n\tconfig?: {\n\t\ttrue: any;\n\t\tfalse: any;\n\t\tresetText?: string;\n\t};\n}\n\ninterface SmartTableEditorCustom {\n\ttype: 'custom';\n\tcomponent: any;\n\tconfig?: any;\n}\n\ninterface SmartTablePagerSettings {\n\tdisplay: boolean;\n\tpage?: number;\n\tperPage: number;\n\tperPageSelect?: number[];\n}\n\nexport interface SmartTableFilterItem {\n\tfield: string;\n\tsearch: string;\n\tfilter?: any;\n}\n\nexport interface SmartTablePagingItem {\n\tpage: number;\n\tperPage: number;\n}\n\nexport type SmartTableSortDirection = 'asc' | 'desc';\n\nexport interface SmartTableSortItem {\n\tfield: string;\n\tdirection: SmartTableSortDirection;\n\tcompare?: any;\n}\n\ninterface SmartTableDefaultEvent<T> {\n\tconfirm: Deferred<T>;\n\tdata: T;\n\tsource: LocalDataSource;\n}\n\nexport type SmartTableConfirmDeleteEvent<T = any> = SmartTableDefaultEvent<T>;\n\nexport type SmartTableRowClickedEvent<T = any> = Omit<SmartTableDefaultEvent<T>, \"confirm\">\n\nexport interface SmartTableCustomEvent<T = any> extends Omit<SmartTableDefaultEvent<T>, \"confirm\"> {\n\taction: string;\n}\n\nexport interface SmartTableRowSelectEvent<T = any> extends Omit<SmartTableDefaultEvent<T>, \"confirm\"> {\n\tisSelected: boolean;\n\tselected: T[];\n}\n\nexport interface SmartTableConfirmEditEvent<T = any, N = T> extends SmartTableDefaultEvent<T> {\n\tnewData: N;\n}\n\nexport interface SmartTableCreateConfirm<T = any> extends Omit<SmartTableDefaultEvent<T>, \"data\"> {\n\tnewData: T;\n}\n\nexport interface ObjectStringString {\n\t[key: string]: string;\n}\n\nexport enum SmartTableOnChangedEventName {\n\t'load' = 'load',\n\t'paging' = 'paging',\n\t'update' = 'update',\n\t'page' = 'page',\n\t'filter' = 'filter',\n\t'empty' = 'empty',\n\t'sort' = 'sort',\n\t'add' = 'add',\n\t'remove' = 'remove',\n\t'append' = 'append',\n\t'prepend' = 'prepend',\n\t'refresh' = 'refresh',\n}\n\nexport type SmartTableOnChangedEventType = 'load' | 'prepend' | 'append' | 'update' | 'empty' | 'paging' | 'page' | 'filter' | 'sort' | 'add' | 'remove' | 'refresh';\n\nexport interface SmartTableOnChangedEvent<T extends ObjectAny = any> {\n\taction: SmartTableOnChangedEventType;\n\telements: T[];\n\tfilter: SmartTableFilterConf;\n\tpaging: SmartTablePagingItem | false;\n\tsort: SmartTableSortItem[];\n}\n\nexport interface SmartTableFilterConf { filters: SmartTableFilterItem[]; andOperator: boolean }","import { Subject } from 'rxjs';\nimport { Observable } from 'rxjs';\nimport { SmartTableFilterConf, SmartTableOnChangedEvent, SmartTableOnChangedEventName, SmartTableOnChangedEventType, SmartTablePagingItem, SmartTableSortItem } from '../interfaces/smart-table.models';\n\nexport abstract class DataSource<T=any> {\n\n protected onChangedSource = new Subject<SmartTableOnChangedEvent>();\n protected onAddedSource = new Subject<any>();\n protected onUpdatedSource = new Subject<any>();\n protected onRemovedSource = new Subject<any>();\n\n abstract getAll(): Promise<T[]>;\n abstract getElements(): Promise<T[]>;\n abstract getSort(): SmartTableSortItem[];\n abstract getFilter(): SmartTableFilterConf;\n abstract getPaging(): SmartTablePagingItem | false;\n abstract count(): number;\n\n refresh(): void {\n this.emitOnChanged(SmartTableOnChangedEventName.refresh);\n }\n\n loadEmit<T>(): Promise<true> {\n this.emitOnChanged(SmartTableOnChangedEventName.load);\n return Promise.resolve(true);\n }\n\n onChanged(): Observable<SmartTableOnChangedEvent> {\n return this.onChangedSource.asObservable();\n }\n\n onAdded(): Observable<any> {\n return this.onAddedSource.asObservable();\n }\n\n onUpdated(): Observable<any> {\n return this.onUpdatedSource.asObservable();\n }\n\n onRemoved(): Observable<any> {\n return this.onRemovedSource.asObservable();\n }\n\n prependEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.prepend);\n return Promise.resolve(true);\n }\n\n appendEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.append);\n return Promise.resolve(true);\n }\n\n addEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.add);\n return Promise.resolve(true);\n }\n\n removeEmit(element: T): Promise<true> {\n this.emitOnRemoved(element);\n this.emitOnChanged(SmartTableOnChangedEventName.remove);\n return Promise.resolve(true);\n }\n\n updateEmit(element: T): Promise<true> {\n this.emitOnUpdated(element);\n this.emitOnChanged(SmartTableOnChangedEventName.update);\n return Promise.resolve(true);\n }\n\n emptyEmit(): Promise<true> {\n this.emitOnChanged(SmartTableOnChangedEventName.empty);\n return Promise.resolve(true);\n }\n\n setSortEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.sort);\n }\n\n setFilterEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.filter);\n }\n\n addFilterEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.filter);\n }\n\n setPagingEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.paging);\n }\n\n setPageEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.page);\n }\n\n protected emitOnRemoved(element: T) {\n this.onRemovedSource.next(element);\n }\n\n protected emitOnUpdated(element: T) {\n this.onUpdatedSource.next(element);\n }\n\n protected emitOnAdded(element: T) {\n this.onAddedSource.next(element);\n }\n\n protected emitOnChanged(action: SmartTableOnChangedEventType) {\n this.getElements().then((elements) => this.onChangedSource.next({\n action: action,\n elements: elements,\n paging: this.getPaging(),\n filter: this.getFilter(),\n sort: this.getSort(),\n }));\n }\n}\n","import { LocalSorter } from './local.sorter';\nimport { LocalFilter } from './local.filter';\nimport { LocalPager } from './local.pager';\nimport { DataSource } from '../data-source';\nimport { deepExtend } from '../../helpers';\nimport { SmartTableFilterConf, SmartTableFilterItem, SmartTablePagingItem, SmartTableSortItem } from '../../interfaces/smart-table.models';\n\nexport class LocalDataSource<T = any> extends DataSource<T> {\n\n protected data: T[] = [];\n protected filteredAndSorted: T[] = [];\n protected sortConf: SmartTableSortItem[] = [];\n protected filterConf: SmartTableFilterConf = {\n filters: [],\n andOperator: true,\n };\n protected pagingConf: SmartTablePagingItem | false = false;\n\n constructor(data: T[] = []) {\n super();\n\n this.data = data;\n }\n\n load(data: any): Promise<true> {\n this.data = data;\n return super.loadEmit();\n }\n\n prepend(element: T): Promise<true> {\n this.reset(true);\n this.data.unshift(element);\n return super.prependEmit(element);\n }\n\n appendMany(elements: T[]): Promise<true> {\n this.reset(true);\n this.data = [...this.data, ...elements];\n return super.loadEmit();\n }\n\n append(element: T): Promise<true> {\n this.reset(true);\n\n this.data.push(element);\n return super.appendEmit(element);\n }\n\n add(element: T): Promise<true> {\n this.data.push(element);\n return super.addEmit(element);\n }\n\n remove(element: T): Promise<true> {\n this.data = this.data.filter(el => el !== element);\n return super.removeEmit(element);\n }\n\n update(element: T, values: T): Promise<true> {\n return new Promise((resolve, reject) => {\n this.find(element).then((found) => {\n found = deepExtend(found, values);\n super.updateEmit(found).then(resolve).catch(reject);\n }).catch(reject);\n });\n }\n\n find(element: T): Promise<T> {\n const found = this.data.find(el => el === element);\n if (found) {\n return Promise.resolve(found);\n }\n return Promise.reject(new Error('Element was not found in the dataset'));\n }\n\n getElements(): Promise<T[]> {\n const data = this.data.slice(0);\n return Promise.resolve(this.prepareData(data));\n }\n\n getFilteredAndSorted(): Promise<T[]> {\n let data = this.data.slice(0);\n this.prepareData(data);\n return Promise.resolve(this.filteredAndSorted);\n }\n\n getAll(): Promise<T[]> {\n const data = this.data.slice(0);\n return Promise.resolve(data);\n }\n\n reset(silent = false) {\n if (silent) {\n this.filterConf = {\n filters: [],\n andOperator: true,\n };\n this.sortConf = [];\n if (this.pagingConf) {\n this.pagingConf.page = 1;\n }\n } else {\n this.setFilter([], true, false);\n this.setSort([], false);\n if (this.pagingConf) {\n this.setPage(1);\n }\n }\n }\n\n empty(): Promise<true> {\n this.data = [];\n return super.emptyEmit();\n }\n\n count(): number {\n return this.filteredAndSorted.length;\n }\n\n /**\n *\n * Array of conf objects\n * [\n * {field: string, direction: asc|desc|null, compare: Function|null},\n * ]\n * @param conf\n * @param doEmit\n * @returns {LocalDataSource}\n */\n setSort(conf: SmartTableSortItem[], doEmit = true): LocalDataSource {\n if (conf !== null) {\n conf.forEach((fieldConf) => {\n if (!fieldConf.field || typeof fieldConf.direction === 'undefined') {\n throw new Error('Sort configuration object is not valid');\n }\n });\n this.sortConf = conf;\n }\n if (doEmit) {\n super.setSortEmit();\n }\n return this;\n }\n\n /**\n *\n * Array of conf objects\n * [\n * {field: string, search: string, filter: Function|null},\n * ]\n * @param conf\n * @param andOperator\n * @param doEmit\n * @returns {LocalDataSource}\n */\n setFilter(conf: SmartTableFilterItem[], andOperator = true, doEmit = true): LocalDataSource {\n if (conf && conf.length > 0) {\n conf.forEach((fieldConf) => {\n this.addFilter(fieldConf, andOperator, false);\n });\n } else {\n this.filterConf = {\n filters: [],\n andOperator: true,\n };\n }\n this.filterConf.andOperator = andOperator;\n if (this.pagingConf) {\n this.pagingConf.page = 1;\n }\n if (doEmit) {\n super.setFilterEmit();\n }\n return this;\n }\n\n addFilter(fieldConf: SmartTableFilterItem, andOperator = true, doEmit: boolean = true): LocalDataSource {\n if (!fieldConf.field || typeof fieldConf.search === 'undefined') {\n throw new Error('Filter configuration object is not valid');\n }\n\n let found = false;\n this.filterConf.filters.forEach((currentFieldConf: any, index: any) => {\n if (currentFieldConf.field === fieldConf.field) {\n this.filterConf.filters[index] = fieldConf;\n found = true;\n }\n });\n if (!found) {\n this.filterConf.filters.push(fieldConf);\n }\n this.filterConf.andOperator = andOperator;\n if (doEmit) {\n super.addFilterEmit();\n }\n return this;\n }\n\n setPaging(page: number = 1, perPage: number, doEmit: boolean = true): void {\n if (this.pagingConf) {\n this.pagingConf.page = page;\n this.pagingConf.perPage = perPage;\n } else {\n this.pagingConf = {\n page, perPage\n }\n }\n if (doEmit) {\n super.setPagingEmit();\n }\n return;\n }\n\n setPage(page: number, doEmit: boolean = true): void {\n if (!this.pagingConf) {\n return;\n }\n this.pagingConf.page = page;\n if(doEmit) {\n super.setPageEmit();\n }\n return;\n }\n\n getSort(): SmartTableSortItem[] {\n return this.sortConf;\n }\n\n getFilter(): SmartTableFilterConf {\n return this.filterConf;\n }\n\n getPaging(): SmartTablePagingItem | false {\n return this.pagingConf;\n }\n\n protected prepareData(data: T[]): T[] {\n data = this.filter(data);\n data = this.sort(data);\n this.filteredAndSorted = data.slice(0);\n if(this.pagingConf) {\n return this.paginate(data);\n } else return data\n }\n\n protected sort(data: T[]): T[] {\n if (this.sortConf) {\n this.sortConf.forEach((fieldConf) => {\n data = LocalSorter\n .sort(data, fieldConf.field, fieldConf.direction, fieldConf.compare);\n });\n }\n return data;\n }\n\n // TODO: refactor?\n protected filter(data: T[]): T[] {\n if (this.filterConf.filters) {\n if (this.filterConf.andOperator) {\n this.filterConf.filters.forEach((fieldConf: SmartTableFilterItem) => {\n if (fieldConf.search?.length > 0) {\n data = LocalFilter\n .filter(data, fieldConf.field, fieldConf.search, fieldConf.filter);\n }\n });\n } else {\n let mergedData: T[] = [];\n this.filterConf.filters.forEach((fieldConf: SmartTableFilterItem) => {\n if (fieldConf.search?.length > 0) {\n mergedData = mergedData.concat(LocalFilter\n .filter(data, fieldConf.field, fieldConf.search, fieldConf.filter));\n }\n });\n // remove non unique items\n data = mergedData.filter((elem: any, pos: any, arr: any) => {\n return arr.indexOf(elem) === pos;\n });\n }\n }\n return data;\n }\n\n protected paginate(data: T[]): T[] {\n if (this.pagingConf && this.pagingConf.page && this.pagingConf.perPage) {\n data = LocalPager.paginate(data, this.pagingConf.page, this.pagingConf.perPage);\n }\n return data;\n }\n}\n","import { Output, EventEmitter, Input, Component } from '@angular/core';\n\nimport { Column } from '../../lib/data-set/column';\nimport { LocalDataSource } from '../../lib/data-source/local/local.data-source';\n\n@Component({\n template: '',\n})\nexport class FilterDefault {\n\n @Input() column!: Column;\n @Input() source!: LocalDataSource;\n @Input() inputClass: string = '';\n @Input() query: string = '';\n\n @Output() filter = new EventEmitter<any>();\n\n onFilter(query: string) {\n this.source.addFilter({\n field: this.column.id,\n search: query,\n filter: this.column.getFilterFunction(),\n });\n }\n}\n","import { Input, Output, EventEmitter, OnDestroy, Component } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Column } from '../../../lib/data-set/column';\n\n@Component({\n template: '',\n})\nexport class DefaultFilter implements Filter, OnDestroy {\n\n delay: number = 300;\n changesSubscription?: Subscription;\n @Input() query: string = '';\n @Input() inputClass: string = '';\n @Input() column!: Column;\n @Output() filter = new EventEmitter<string>();\n\n ngOnDestroy() {\n if (this.changesSubscription) {\n this.changesSubscription.unsubscribe();\n }\n }\n\n setFilter() {\n this.filter.emit(this.query);\n }\n}\n\nexport interface Filter {\n\n delay?: number;\n changesSubscription?: Subscription;\n query: string;\n inputClass: string;\n column: Column;\n filter: EventEmitter<string>;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\n\nimport { DefaultFilter } from './default-filter';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'checkbox-filter',\n template: `\n <input type=\"checkbox\" [formControl]=\"inputControl\" [ngClass]=\"inputClass\" class=\"form-control\">\n <a href=\"#\" *ngIf=\"filterActive\"\n (click)=\"resetFilter($event)\">{{column.getFilterConfig()?.resetText || 'reset'}}</a>\n `,\n})\nexport class CheckboxFilterComponent extends DefaultFilter implements OnInit {\n\n filterActive: boolean = false;\n inputControl = new UntypedFormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.changesSubscription = this.inputControl.valueChanges\n .pipe(debounceTime(this.delay))\n .subscribe((checked: boolean) => {\n this.filterActive = true;\n const trueVal = (this.column.getFilterConfig() && this.column.getFilterConfig().true) || true;\n const falseVal = (this.column.getFilterConfig() && this.column.getFilterConfig().false) || false;\n this.query = checked ? trueVal : falseVal;\n this.setFilter();\n });\n }\n\n resetFilter(event: any) {\n event.preventDefault();\n this.query = '';\n this.inputControl.setValue(false, { emitEvent: false });\n this.filterActive = false;\n this.setFilter();\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\n\nimport { DefaultFilter } from './default-filter';\n\n@Component({\n selector: 'input-filter',\n template: `\n <input\n [ngClass]=\"inputClass\"\n [formControl]=\"inputControl\"\n class=\"form-control\"\n type=\"text\"\n placeholder=\"{{ column.title }}\"/>\n `,\n})\nexport class InputFilterComponent extends DefaultFilter implements OnInit, OnChanges {\n\n inputControl = new UntypedFormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.query) {\n this.inputControl.setValue(this.query);\n }\n this.inputControl.valueChanges\n .pipe(\n distinctUntilChanged(),\n debounceTime(this.delay),\n )\n .subscribe((value: string) => {\n this.query = this.inputControl.value;\n this.setFilter();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes?.['query']) {\n this.inputControl.setValue(this.query);\n }\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { distinctUntilChanged, debounceTime, skip } from 'rxjs/operators';\n\nimport { DefaultFilter } from './default-filter';\n\n@Component({\n selector: 'select-filter',\n template: `\n <select [ngClass]=\"inputClass\"\n class=\"form-control\"\n #inputControl\n [(ngModel)]=\"query\">\n\n <option value=\"\">{{ column.getFilterConfig().selectText }}</option>\n <option *ngFor=\"let option of column.getFilterConfig().list\" [value]=\"option.value\">\n {{ option.title }}\n </option>\n </select>\n `,\n})\nexport class SelectFilterComponent extends DefaultFilter implements OnInit {\n @ViewChild('inputControl', { read: NgControl, static: true }) inputControl!: NgControl;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.inputControl.valueChanges) {\n this.inputControl.valueChanges\n .pipe(\n skip(1),\n distinctUntilChanged(),\n debounceTime(this.delay)\n )\n .subscribe((value: string) => this.setFilter());\n }\n \n }\n}\n","import {Component, Input} from '@angular/core';\n\nimport {FilterDefault} from \"./filter-default\";\n\n@Component({\n selector: 'default-table-filter',\n template: `\n <ng-container [ngSwitch]=\"column.getFilterType()\">\n <select-filter *ngSwitchCase=\"'list'\"\n [query]=\"query\"\n [ngClass]=\"inputClass\"\n [column]=\"column\"\n (filter)=\"onFilter($event)\">\n </select-filter>\n <checkbox-filter *ngSwitchCase=\"'checkbox'\"\n [query]=\"query\"\n [ngClass]=\"inputClass\"\n [column]=\"column\"\n (filter)=\"onFilter($event)\">\n </checkbox-filter>\n <input-filter *ngSwitchDefault\n [query]=\"query\"\n [ngClass]=\"inputClass\"\n [column]=\"column\"\n (filter)=\"onFilter($event)\">\n </input-filter>\n </ng-container>\n `,\n})\nexport class DefaultFilterComponent extends FilterDefault { \n\n}\n","import {\n Component,\n ComponentFactoryResolver,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\n\nimport { FilterDefault } from './filter-default';\n\n@Component({\n selector: 'custom-table-filter',\n template: `<ng-template #dynamicTarget></ng-template>`,\n})\nexport class CustomFilterComponent extends FilterDefault implements OnChanges, OnDestroy {\n customComponent: any;\n @ViewChild('dynamicTarget', { read: ViewContainerRef, static: true }) dynamicTarget: any;\n\n constructor(private resolver: ComponentFactoryResolver) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.customComponent) {\n this.customComponent.instance.ngOnChanges(changes);\n return;\n }\n if (this.column.filter && this.column.filter.type === 'custom') {\n const componentFactory = this.resolver.resolveComponentFactory(this.column.filter?.component);\n this.customComponent = this.dynamicTarget.createComponent(componentFactory);\n }\n\n // set @Inputs and @Outputs of custom component\n this.customComponent.instance.query = this.query;\n this.customComponent.instance.column = this.column;\n this.customComponent.instance.source = this.source;\n this.customComponent.instance.inputClass = this.inputClass;\n this.customComponent.instance.filter.subscribe((event: any) => this.onFilter(event));\n\n\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n}\n","import { Component, OnChanges, SimpleChanges } from '@angular/core';\nimport { FilterDefault } from './filter-default';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'ng2-smart-table-filter',\n styleUrls: ['./filter.component.scss'],\n template: `\n <div class=\"ng2-smart-filter\" *ngIf=\"column.isFilterable\" [ngSwitch]=\"column.getFilterType()\">\n <custom-table-filter *ngSwitchCase=\"'custom'\"\n [query]=\"query\"\n [column]=\"column\"\n [source]=\"source\"\n [inputClass]=\"inputClass\"\n (filter)=\"onFilter($event)\">\n </custom-table-filter>\n <default-table-filter *ngSwitchDefault\n [query]=\"query\"\n [column]=\"column\"\n [source]=\"source\"\n [inputClass]=\"inputClass\"\n (filter)=\"onFilter($event)\">\n </default-table-filter>\n </div>\n `,\n})\nexport class FilterComponent extends FilterDefault implements OnChanges {\n protected dataChangedSub?: Subscription;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['source']) {\n if (!changes['source'].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n const filterConf = this.source.getFilter();\n if (filterConf && filterConf.filters && filterConf.filters.length === 0) {\n this.query = '';\n\n // add a check for existing filters an set the query if one exists for this column\n // this covers instances where the filter is set by user code while maintaining existing functionality\n } else if (filterConf && filterConf.filters && filterConf.filters.length > 0) {\n filterConf.filters.forEach((k: any, v: any) => {\n if (k.field == this.column.id) {\n this.query = k.search;\n }\n });\n }\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { FilterComponent } from './filter.component';\nimport { DefaultFilterComponent } from \"./default-filter.component\";\nimport { CustomFilterComponent } from \"./custom-filter.component\";\nimport { CheckboxFilterComponent } from './filter-types/checkbox-filter.component';\nimport { InputFilterComponent } from './filter-types/input-filter.component';\nimport { SelectFilterComponent } from './filter-types/select-filter.component';\nimport { DefaultFilter } from './filter-types/default-filter';\nimport { FilterDefault } from './filter-default';\n\nconst FILTER_COMPONENTS = [\n FilterDefault,\n DefaultFilter,\n FilterComponent,\n DefaultFilterComponent,\n CustomFilterComponent,\n CheckboxFilterComponent,\n InputFilterComponent,\n SelectFilterComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n declarations: [\n ...FILTER_COMPONENTS,\n ],\n exports: [\n ...FILTER_COMPONENTS,\n ],\n})\nexport class FilterModule { }\n","import { SmartTablePagingItem } from './../../lib/interfaces/smart-table.models';\nimport { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LocalDataSource } from '../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: 'ng2-smart-table-pager',\n styleUrls: ['./pager.component.scss'],\n template: `\n <nav *ngIf=\"shouldShow()\" class=\"ng2-smart-pagination-nav\">\n <ul class=\"ng2-smart-pagination pagination\">\n <li class=\"ng2-smart-page-item page-item\" [ngClass]=\"{disabled: getPage() == 1}\">\n <a class=\"ng2-smart-page-link page-link\" href=\"#\"\n (click)=\"getPage() == 1 ? false : paginate(1)\" aria-label=\"First\">\n <span aria-hidden=\"true\">«</span>\n <span class=\"sr-only\">First</span>\n </a>\n </li>\n <li class=\"ng2-smart-page-item page-item\" [ngClass]=\"{disabled: getPage() == 1}\">\n <a class=\"ng2-smart-page-link page-link page-link-prev\" href=\"#\"\n (click)=\"getPage() == 1 ? false : prev()\" aria-label=\"Prev\">\n <span aria-hidden=\"true\"><</span>\n <span class=\"sr-only\">Prev</span>\n </a>\n </li>\n <li class=\"ng2-smart-page-item page-item\"\n [ngClass]=\"{active: getPage() == page}\" *ngFor=\"let page of getPages()\">\n <span class=\"ng2-smart-page-link page-link\"\n *ngIf=\"getPage() == page\">{{ page }} <span class=\"sr-only\">(current)</span></span>\n <a class=\"ng2-smart-page-link page-link\" href=\"#\"\n (click)=\"paginate(page)\" *ngIf=\"getPage() != page\">{{ page }}</a>\n </li>\n\n <li class=\"ng2-smart-page-item page-item\"\n [ngClass]=\"{disabled: getPage() == getLast()}\">\n <a class=\"ng2-smart-page-link page-link page-link-next\" href=\"#\"\n (click)=\"getPage() == getLast() ? false : next()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">></span>\n <span class=\"sr-only\">Next</span>\n </a>\n </li>\n \n <li class=\"ng2-smart-page-item page-item\"\n [ngClass]=\"{disabled: getPage() == getLast()}\">\n <a class=\"ng2-smart-page-link page-link\" href=\"#\"\n (click)=\"getPage() == getLast() ? false : paginate(getLast())\" aria-label=\"Last\">\n <span aria-hidden=\"true\">»</span>\n <span class=\"sr-only\">Last</span>\n </a>\n </li>\n </ul>\n </nav>\n \n <nav *ngIf=\"perPageSelect && perPageSelect.length > 0\" class=\"ng2-smart-pagination-per-page\">\n <label for=\"per-page\">\n Per Page:\n </label>\n <select (change)=\"onChangePerPage()\" [(ngModel)]=\"currentPerPage\" id=\"per-page\">\n <option *ngFor=\"let item of perPageSelect\" [value]=\"item\">{{ item }}</option>\n </select>\n </nav>\n `,\n})\nexport class PagerComponent implements OnChanges {\n\n @Input() source!: LocalDataSource;\n @Input() perPageSelect: number[] = [];\n\n @Output() changePage = new EventEmitter<any>();\n\n currentPerPage: number = 0;\n\n protected pages: number[] = [];\n protected page: number = 1;\n protected count: number = 0;\n protected perPage: number = 0;\n\n protected dataChangedSub: Subscription | undefined;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['source']) {\n if (!changes['source'].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n const paging: SmartTablePagingItem | false = this.source.getPaging();\n if (paging) {\n this.page = paging.page;\n this.perPage = paging.perPage;\n }\n this.currentPerPage = this.perPage;\n this.count = this.source.count();\n if (this.isPageOutOfBounce()) {\n this.source.setPage(--this.page);\n }\n\n this.processPageChange(dataChanges);\n this.initPages();\n });\n }\n }\n\n /**\n * We change the page here depending on the action performed against data source\n * if a new element was added to the end of the table - then change the page to the last\n * if a new element was added to the beginning of the table - then to the first page\n * @param changes\n */\n processPageChange(changes: any) {\n if (changes['action'] === 'prepend') {\n this.source.setPage(1);\n }\n if (changes['action'] === 'append') {\n this.source.setPage(this.getLast());\n }\n }\n\n shouldShow(): boolean {\n return this.source.count() > this.perPage;\n }\n\n paginate(page: number): boolean {\n this.source.setPage(page);\n this.page = page;\n this.changePage.emit({ page });\n return false;\n }\n\n next(): boolean {\n return this.paginate(this.getPage() + 1);\n }\n\n prev(): boolean {\n return this.paginate(this.getPage() - 1);\n }\n\n getPage(): number {\n return this.page;\n }\n\n getPages(): number[] {\n return this.pages;\n }\n\n getLast(): number {\n return Math.ceil(this.count / this.perPage);\n }\n\n isPageOutOfBounce(): boolean {\n return (this.page * this.perPage) >= (this.count + this.perPage) && this.page > 1;\n }\n\n initPages() {\n const pagesCount = this.getLast();\n let showPagesCount = 4;\n showPagesCount = pagesCount < showPagesCount ? pagesCount : showPagesCount;\n this.pages = [];\n\n if (this.shouldShow()) {\n\n let middleOne = Math.ceil(showPagesCount / 2);\n middleOne = this.page >= middleOne ? this.page : middleOne;\n\n let lastOne = middleOne + Math.floor(showPagesCount / 2);\n lastOne = lastOne >= pagesCount ? pagesCount : lastOne;\n\n const firstOne = lastOne - showPagesCount + 1;\n\n for (let i = firstOne; i <= lastOne; i++) {\n this.pages.push(i);\n }\n }\n }\n\n onChangePerPage() {\n const paging: SmartTablePagingItem | false = this.source.getPaging(); \n if (paging) {\n paging.perPage = this.currentPerPage * 1;\n }\n this.source.refresh();\n this.initPages();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { PagerComponent } from './pager.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n declarations: [\n PagerComponent,\n ],\n exports: [\n PagerComponent,\n ],\n})\nexport class PagerModule { }\n","import { Component, EventEmitter, Input, OnChanges } from \"@angular/core\";\n\nimport { Row } from \"../../../lib/data-set/row\";\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"ng2-st-tbody-create-cancel\",\n template: `\n <ng-container *ngIf=\"!row.pending; else loader\">\n <a\n href=\"#\"\n [id]=\"'row-' + row.index + '_editing-confirm-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-save\"\n [innerHTML]=\"saveButtonContent\"\n (click)=\"onSave($event)\"\n ></a>\n <a\n href=\"#\"\n [id]=\"'row-' + row.index + '_editing-cancel-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-cancel\"\n [innerHTML]=\"cancelButtonContent\"\n (click)=\"onCancelEdit($event)\"\n ></a>\n </ng-container>\n <ng-template #loader>\n <div style=\"display: flex;\">\n <svg\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n <svg\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem; \"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n </div>\n </ng-template>\n `,\n})\nexport class TbodyCreateCancelComponent implements OnChanges {\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() editConfirm!: EventEmitter<any>;\n @Input() editCancel!: EventEmitter<any>;\n\n cancelButtonContent: string = \"\";\n saveButtonContent: string = \"\";\n\n onSave(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.grid.save(this.row, this.editConfirm);\n }\n\n onCancelEdit(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.editCancel.emit(true);\n this.row.isInEditing = false;\n }\n\n ngOnChanges() {\n this.saveButtonContent = this.grid.getSetting(\n \"edit.saveButtonContent\",\n \"save\"\n );\n this.cancelButtonContent = this.grid.getSetting(\n \"edit.cancelButtonContent\",\n \"cancel\"\n );\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output\n} from \"@angular/core\";\n\nimport { Row } from \"../../../lib/data-set/row\";\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"ng2-st-tbody-edit-delete\",\n template: `\n <ng-container *ngIf=\"!row.pending; else loader\">\n <a\n href=\"#\"\n *ngIf=\"isActionEdit\"\n [id]=\"'row-' + row.index + '_action-edit-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-edit\"\n [innerHTML]=\"editRowButtonContent\"\n (click)=\"onEdit($event)\"\n ></a>\n <a\n href=\"#\"\n *ngIf=\"isActionDelete\"\n [id]=\"'row-' + row.index + '_action-delete-button'\"\n class=\"ng2-smart-action ng2-smart-action-delete-delete\"\n [innerHTML]=\"deleteRowButtonContent\"\n (click)=\"onDelete($event)\"\n ></a>\n </ng-container>\n <ng-template #loader>\n <div style=\"display: flex;\">\n <svg\n *ngIf=\"isActionEdit\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n <svg\n *ngIf=\"isActionDelete\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n </div>\n </ng-template>\n `,\n})\nexport class TbodyEditDeleteComponent implements OnChanges {\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() source!: LocalDataSource;\n @Input() deleteConfirm!: EventEmitter<any>;\n @Input() editConfirm!: EventEmitter<any>;\n\n @Output() edit = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() editRowSelect = new EventEmitter<any>();\n\n isActionEdit: boolean = false;\n isActionDelete: boolean = false;\n editRowButtonContent: string = \"\";\n deleteRowButtonContent: string = \"\";\n\n onEdit(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n this.editRowSelect.emit(this.row);\n\n this.edit.emit({\n data: this.row.getData(),\n source: this.source,\n });\n if (this.grid.getSetting(\"mode\") !== \"external\") {\n this.grid.edit(this.row);\n }\n }\n\n onDelete(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.grid.getSetting(\"mode\") === \"external\") {\n this.delete.emit({\n data: this.row.getData(),\n source: this.source,\n });\n } else {\n this.grid.delete(this.row, this.deleteConfirm);\n }\n }\n\n ngOnChanges() {\n this.isActionEdit = this.grid.getSetting(\"actions.edit\");\n this.isActionDelete = this.grid.getSetting(\"actions.delete\");\n this.editRowButtonContent = this.grid.getSetting(\"edit.editButtonContent\");\n this.deleteRowButtonContent = this.grid.getSetting(\n \"delete.deleteButtonContent\"\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from \"@angular/core\";\nimport { Row } from \"../../../lib/data-set/row\";\nimport { LocalDataSource } from \"./../../../lib/data-source/local/local.data-source\";\n\nimport { Grid } from \"../../../lib/grid\";\nimport { SmartTableCustomAction } from \"../../../lib/interfaces/smart-table.models\";\n\n@Component({\n selector: \"ng2-st-tbody-custom\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <a\n *ngFor=\"let action of customActions()\"\n [id]=\"'row-' + row.index + '_action-' + action.name + '-button'\"\n href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-custom-custom\"\n [innerHTML]=\"action.title\"\n (click)=\"$event.stopPropagation(); $event.preventDefault(); onCustom(action)\"\n ></a>\n `,\n})\nexport class TbodyCustomComponent {\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() source!: LocalDataSource;\n @Output() custom = new EventEmitter<any>();\n\n onCustom(action: any) {\n this.custom.emit({\n action: action.name,\n data: this.row.getData(),\n source: this.source,\n });\n }\n\n customActions() {\n return this.grid.getSetting<SmartTableCustomAction[] | undefined>(\"actions.custom\");\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Grid } from '../../lib/grid';\nimport { Cell } from '../../lib/data-set/cell';\nimport { LocalDataSource } from '../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: '[ng2-st-tbody]',\n styleUrls: ['./tbody.component.scss'],\n templateUrl: './tbody.component.html',\n})\nexport class Ng2SmartTableTbodyComponent {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n @Input() deleteConfirm!: EventEmitter<any>;\n @Input() editConfirm!: EventEmitter<any>;\n @Input() rowClassFunction: Function = ()=>'';\n\n @Output() save = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() edit = new EventEmitter<any>();\n @Output() editCancel = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() custom = new EventEmitter<any>();\n @Output() edited = new EventEmitter<any>();\n @Output() userSelectRow = new EventEmitter<any>();\n @Output() userClickedRow = new EventEmitter<any>();\n @Output() editRowSelect = new EventEmitter<any>();\n @Output() multipleSelectRow = new EventEmitter<any>();\n\n isMultiSelectVisible: boolean = false;\n showActionColumnLeft: boolean = false;\n showActionColumnRight: boolean = false;\n mode: 'inline' | 'external' | 'click-to-edit' = 'inline';\n editInputClass: string = '';\n isActionAdd: boolean = false;\n isActionEdit: boolean = false;\n isActionDelete: boolean = false;\n noDataMessage: boolean = false;\n\n get tableColumnsCount() {\n const actionColumns = this.isActionAdd || this.isActionEdit || this.isActionDelete ? 1 : 0;\n return this.grid.getColumns().length + actionColumns;\n }\n\n ngOnChanges() {\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.mode = this.grid.getSetting('mode', 'inline');\n this.editInputClass = this.grid.getSetting('edit.inputClass', '');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n this.isActionAdd = this.grid.getSetting('actions.add', false);\n this.isActionEdit = this.grid.getSetting('actions.edit', false);\n this.isActionDelete = this.grid.getSetting('actions.delete', false);\n this.noDataMessage = this.grid.getSetting('noDataMessage');\n }\n\n getVisibleCells(cells: Cell[]): Cell[] {\n return (cells || []).filter((cell: Cell) => !cell.getColumn().hide);\n }\n\n protected trackByIdOrIndex(index: number, item: any): string | number { \n return item?.id || index;\n }\n}\n","<ng-container *ngIf=\"grid.getRows()?.length; noRows\">\n <tr\n *ngFor=\"let row of grid.getRows(); trackBy: trackByIdOrIndex\"\n (click)=\"userClickedRow.emit(row)\"\n class=\"ng2-smart-row\"\n [className]=\"rowClassFunction(row)\"\n [ngClass]=\"{ selected: row.isSelected }\"\n >\n <td\n *ngIf=\"isMultiSelectVisible\"\n class=\"ng2-smart-actions ng2-smart-action-multiple-select\"\n (click)=\"$event.stopPropagation(); multipleSelectRow.emit(row)\"\n >\n <input\n type=\"checkbox\"\n [id]=\"'row-' + row.index + '_select-checkbox'\"\n class=\"form-control\"\n [ngModel]=\"row.isSelected\"\n />\n </td>\n <td\n *ngIf=\"!row.isInEditing && showActionColumnLeft\"\n class=\"ng2-smart-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n <td\n *ngIf=\"row.isInEditing && showActionColumnLeft\"\n class=\"ng2-smart-actions\"\n >\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n [editCancel]=\"editCancel\"\n ></ng2-st-tbody-create-cancel>\n </td>\n <td\n *ngFor=\"let cell of getVisibleCells(row.cells)\"\n [ngClass]=\"cell.getColumnClass()\"\n >\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [grid]=\"grid\"\n [row]=\"row\"\n [isNew]=\"false\"\n [mode]=\"mode\"\n [editConfirm]=\"editConfirm\"\n [inputClass]=\"editInputClass\"\n [isInEditing]=\"row.isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n\n <td\n *ngIf=\"row.isInEditing && showActionColumnRight\"\n class=\"ng2-smart-actions\"\n >\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n ></ng2-st-tbody-create-cancel>\n </td>\n\n <td\n *ngIf=\"!row.isInEditing && showActionColumnRight\"\n class=\"ng2-smart-actions\"\n >\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [row]=\"row\"\n [source]=\"source\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n </tr>\n</ng-container>\n\n<ng-template #noRows>\n <tr>\n <td [attr.colspan]=\"tableColumnsCount\">\n {{ noDataMessage }}\n </td>\n </tr>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { CellModule } from '../cell/cell.module';\n\nimport { Ng2SmartTableTbodyComponent } from './tbody.component';\nimport { TbodyCreateCancelComponent } from './cells/create-cancel.component';\nimport { TbodyEditDeleteComponent } from './cells/edit-delete.component';\nimport { TbodyCustomComponent } from './cells/custom.component';\n\nconst TBODY_COMPONENTS = [\n TbodyCreateCancelComponent,\n TbodyEditDeleteComponent,\n TbodyCustomComponent,\n Ng2SmartTableTbodyComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n CellModule,\n ],\n declarations: [\n ...TBODY_COMPONENTS,\n ],\n exports: [\n ...TBODY_COMPONENTS,\n ],\n})\nexport class TBodyModule { }\n","import { Component, Input, Output, EventEmitter, AfterViewInit, ElementRef, OnChanges } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { LocalDataSource } from '../../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: '[ng2-st-add-button]',\n template: `\n <a *ngIf=\"isActionAdd\" href=\"#\" class=\"ng2-smart-action ng2-smart-action-add-add\"\n [innerHTML]=\"addNewButtonContent\" (click)=\"onAdd($event)\"></a>\n `,\n})\nexport class AddButtonComponent implements AfterViewInit, OnChanges {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n @Output() create = new EventEmitter<any>();\n\n isActionAdd: boolean = false;\n addNewButtonContent: string = '';\n\n constructor(private ref: ElementRef) {\n }\n\n ngAfterViewInit() {\n this.ref.nativeElement.classList.add('ng2-smart-actions-title', 'ng2-smart-actions-title-add');\n }\n\n ngOnChanges() {\n this.isActionAdd = this.grid.getSetting('actions.add');\n this.addNewButtonContent = this.grid.getSetting('add.addButtonContent');\n }\n\n onAdd(event: any) {\n event.preventDefault();\n event.stopPropagation();\n if (this.grid.getSetting('mode') === 'external') {\n this.create.emit({\n source: this.source,\n });\n } else {\n this.grid.createFormShown = true;\n }\n }\n}\n","import {Component, Input, Output, EventEmitter, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { Column } from \"../../../lib/data-set/column\";\nimport { LocalDataSource } from '../../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: '[ng2-st-thead-filters-row]',\n template: `\n <th *ngIf=\"isMultiSelectVisible\"></th>\n <th ng2-st-add-button *ngIf=\"showActionColumnLeft\"\n [grid]=\"grid\"\n (create)=\"create.emit($event)\">\n </th>\n <th *ngFor=\"let column of getVisibleColumns(grid.getColumns())\" class=\"ng2-smart-th {{ column.id }}\">\n <ng2-smart-table-filter [source]=\"source\"\n [column]=\"column\"\n [inputClass]=\"filterInputClass\"\n (filter)=\"filter.emit($event)\">\n </ng2-smart-table-filter>\n </th>\n <th ng2-st-add-button *ngIf=\"showActionColumnRight\"\n [grid]=\"grid\"\n [source]=\"source\"\n (create)=\"create.emit($event)\">\n </th>\n `,\n})\nexport class TheadFitlersRowComponent implements OnChanges {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n\n @Output() create = new EventEmitter<any>();\n @Output() filter = new EventEmitter<any>();\n\n isMultiSelectVisible: boolean = false;\n showActionColumnLeft: boolean = false;\n showActionColumnRight: boolean = false;\n filterInputClass: string = '';\n\n ngOnChanges() {\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n this.filterInputClass = this.grid.getSetting('filter.inputClass', '');\n }\n\n getVisibleColumns(columns: Array<Column>): Array<Column> {\n return (columns || []).filter((column: Column) => !column.hide);\n }\n}\n","import {Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\n\n@Component({\n selector: 'ng2-st-actions',\n template: `\n <a href=\"#\" class=\"ng2-smart-action ng2-smart-action-add-create\"\n [innerHTML]=\"createButtonContent\"\n (click)=\"$event.preventDefault();create.emit($event)\"></a>\n <a href=\"#\" class=\"ng2-smart-action ng2-smart-action-add-cancel\"\n [innerHTML]=\"cancelButtonContent\"\n (click)=\"$event.preventDefault();grid.createFormShown = false;\"></a>\n `,\n})\nexport class ActionsComponent implements OnChanges {\n\n @Input() grid!: Grid;\n @Output() create = new EventEmitter<any>();\n\n createButtonContent: string = '';\n cancelButtonContent: string = '';\n\n ngOnChanges() {\n this.createButtonContent = this.grid.getSetting('add.createButtonContent');\n this.cancelButtonContent = this.grid.getSetting('add.cancelButtonContent');\n }\n}\n","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { Row } from '../../../lib/data-set/row';\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({\n selector: '[ng2-st-thead-form-row]',\n template: `\n <td *ngIf=\"grid.isMultiSelectVisible\"></td>\n <td *ngIf=\"showActionColumnLeft\" class=\"ng2-smart-actions\">\n <ng2-st-actions [grid]=\"grid\" (create)=\"onCreate($event)\"></ng2-st-actions>\n </td>\n <td *ngFor=\"let cell of getVisibleCells(grid.getNewRow().getCells())\">\n <ng2-smart-table-cell [cell]=\"cell\"\n [grid]=\"grid\"\n [isNew]=\"true\"\n [createConfirm]=\"createConfirm\"\n [inputClass]=\"addInputClass\"\n [isInEditing]=\"grid.getNewRow().isInEditing\"\n (edited)=\"onCreate($event)\">\n </ng2-smart-table-cell>\n </td>\n <td *ngIf=\"showActionColumnRight\" class=\"ng2-smart-actions\">\n <ng2-st-actions [grid]=\"grid\" (create)=\"onCreate($event)\"></ng2-st-actions>\n </td>\n `,\n})\nexport class TheadFormRowComponent implements OnChanges {\n\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() createConfirm!: EventEmitter<any>;\n\n @Output() create = new EventEmitter<any>();\n\n isMultiSelectVisible: boolean = false;\n showActionColumnLeft: boolean = false;\n showActionColumnRight: boolean = false;\n addInputClass = '';\n\n onCreate(event: any) {\n event.stopPropagation();\n\n this.grid.create(this.grid.getNewRow(), this.createConfirm);\n }\n\n ngOnChanges(){\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n this.addInputClass = this.grid.getSetting('add.inputClass', '');\n }\n\n getVisibleCells(cells: Array<Cell>): Array<Cell> {\n return (cells || []).filter((cell: Cell) => !cell.getColumn().hide);\n }\n}\n","import {Component, Input, AfterViewInit, ElementRef, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\n\n@Component({\n selector: '[ng2-st-actions-title]',\n template: `\n <div class=\"ng2-smart-title\">{{ actionsColumnTitle }}</div>\n `,\n})\nexport class ActionsTitleComponent implements AfterViewInit, OnChanges {\n\n @Input() grid!: Grid;\n\n actionsColumnTitle: string = '';\n\n constructor(private ref: ElementRef) {\n }\n\n ngAfterViewInit() {\n this.ref.nativeElement.classList.add('ng2-smart-actions');\n }\n\n ngOnChanges() {\n this.actionsColumnTitle = this.grid.getSetting('actions.columnTitle');\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { LocalDataSource } from '../../../lib/data-source/local/local.data-source';\n@Component({\n selector: '[ng2-st-checkbox-select-all]',\n template: `\n <input type=\"checkbox\" [ngModel]=\"this.grid.dataSet.isAllSelected\">\n `,\n})\nexport class CheckboxSelectAllComponent {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n}\n","import { SmartTableSortDirection } from './../../../../lib/interfaces/smart-table.models';\nimport { LocalDataSource } from './../../../../lib/data-source/local/local.data-source';\nimport { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Column } from '../../../../lib/data-set/column';\n\n@Component({\n selector: 'ng2-smart-table-title',\n styleUrls: ['./title.component.scss'],\n template: `\n <a href=\"#\" *ngIf=\"column.isSortable\"\n (click)=\"_sort($event)\"\n class=\"ng2-smart-sort-link sort\"\n [ngClass]=\"currentDirection\">\n {{ column.title }}\n </a>\n <span class=\"ng2-smart-sort\" *ngIf=\"!column.isSortable\">{{ column.title }}</span>\n `,\n})\nexport class TitleComponent implements OnChanges {\n\n currentDirection: SmartTableSortDirection | '' = '';\n @Input() column!: Column;\n @Input() source!: LocalDataSource;\n @Output() sort = new EventEmitter<any>();\n\n protected dataChangedSub: Subscription | false = false;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['source']) {\n if (!changes['source'].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n const sortConf = this.source.getSort();\n\n if (sortConf.length > 0 && sortConf[0]['field'] === this.column.id) {\n this.currentDirection = sortConf[0]['direction'];\n } else {\n this.currentDirection = '';\n }\n });\n }\n }\n\n _sort(event: any) {\n event.preventDefault();\n this.changeSortDirection();\n this.source.setSort([\n {\n field: this.column.id,\n direction: this.currentDirection === 'desc' ? 'desc': 'asc',\n compare: this.column.getCompareFunction(),\n },\n ]);\n this.sort.emit(null);\n }\n\n changeSortDirection(): string {\n if (this.currentDirection) {\n const newDirection = this.currentDirection === 'asc' ? 'desc' : 'asc';\n this.currentDirection = newDirection;\n } else {\n this.currentDirection = this.column.sortDirection;\n }\n return this.currentDirection;\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Column } from '../../../lib/data-set/column';\nimport { LocalDataSource } from '../../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: 'ng2-st-column-title',\n template: `\n <div class=\"ng2-smart-title\">\n <ng2-smart-table-title [source]=\"source\" [column]=\"column\" (sort)=\"sort.emit($event)\"></ng2-smart-table-title>\n </div>\n `,\n})\nexport class ColumnTitleComponent {\n\n @Input() column!: Column;\n @Input() source!: LocalDataSource;\n\n @Output() sort = new EventEmitter<any>();\n\n}\n","import {Component, Input, Output, EventEmitter, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../../lib/grid';\nimport { Column } from \"../../../lib/data-set/column\";\nimport { LocalDataSource } from '../../../lib/data-source/local/local.data-source';\n\n@Component({\n selector: '[ng2-st-thead-titles-row]',\n template: `\n <th ng2-st-checkbox-select-all *ngIf=\"isMultiSelectVisible\"\n [grid]=\"grid\"\n [source]=\"source\"\n (click)=\"selectAllRows.emit($event)\">\n </th>\n <th ng2-st-actions-title *ngIf=\"showActionColumnLeft\" [grid]=\"grid\"></th>\n <th *ngFor=\"let column of getVisibleColumns(grid.getColumns())\"\n class=\"ng2-smart-th {{ column.id }}\"\n [ngClass]=\"column.class\"\n [style.width]=\"column.width\">\n <ng2-st-column-title [source]=\"source\" [column]=\"column\" (sort)=\"sort.emit($event)\"></ng2-st-column-title>\n </th>\n <th ng2-st-actions-title *ngIf=\"showActionColumnRight\" [grid]=\"grid\"></th>\n `,\n})\nexport class TheadTitlesRowComponent implements OnChanges {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n\n @Output() sort = new EventEmitter<any>();\n @Output() selectAllRows = new EventEmitter<any>();\n\n isMultiSelectVisible = false;\n showActionColumnLeft = false;\n showActionColumnRight = false;\n\n ngOnChanges() {\n this.isMultiSelectVisible = this.grid.isMultiSelectVisible();\n this.showActionColumnLeft = this.grid.showActionColumn('left');\n this.showActionColumnRight = this.grid.showActionColumn('right');\n }\n\n getVisibleColumns(columns: Array<Column>): Array<Column> {\n return (columns || []).filter((column: Column) => !column.hide);\n }\n}\n","import { LocalDataSource } from './../../lib/data-source/local/local.data-source';\nimport {Component, Input, Output, EventEmitter, OnChanges} from '@angular/core';\n\nimport { Grid } from '../../lib/grid';\n\n@Component({\n selector: '[ng2-st-thead]',\n templateUrl: './thead.component.html',\n})\nexport class Ng2SmartTableTheadComponent implements OnChanges {\n\n @Input() grid!: Grid;\n @Input() source!: LocalDataSource;\n @Input() createConfirm!: EventEmitter<any>;\n\n @Output() sort = new EventEmitter<any>();\n @Output() selectAllRows = new EventEmitter<any>();\n @Output() create = new EventEmitter<any>();\n @Output() filter = new EventEmitter<any>();\n\n isHideHeader: boolean = false;\n isHideSubHeader: boolean = false;\n\n ngOnChanges() {\n this.isHideHeader = this.grid.getSetting('hideHeader', false);\n this.isHideSubHeader = this.grid.getSetting('hideSubHeader', false);\n }\n}\n","<tr ng2-st-thead-titles-row *ngIf=\"!isHideHeader\"\n class=\"ng2-smart-titles\"\n [grid]=\"grid\"\n [source]=\"source\"\n (sort)=\"sort.emit($event)\"\n (selectAllRows)=\"selectAllRows.emit($event)\">\n</tr>\n\n<tr ng2-st-thead-filters-row *ngIf=\"!isHideSubHeader\"\n class=\"ng2-smart-filters\"\n [grid]=\"grid\"\n [source]=\"source\"\n (create)=\"create.emit($event)\"\n (filter)=\"filter.emit($event)\">\n</tr>\n\n<tr ng2-st-thead-form-row *ngIf=\"grid.createFormShown\"\n [grid]=\"grid\"\n [createConfirm]=\"createConfirm\">\n</tr>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { FilterModule } from '../filter/filter.module';\nimport { CellModule } from '../cell/cell.module';\n\nimport { Ng2SmartTableTheadComponent } from './thead.component';\nimport { ActionsComponent } from './cells/actions.component';\nimport { ActionsTitleComponent } from './cells/actions-title.component';\nimport { AddButtonComponent } from './cells/add-button.component';\nimport { CheckboxSelectAllComponent } from './cells/checkbox-select-all.component';\nimport { ColumnTitleComponent } from './cells/column-title.component';\nimport { TitleComponent } from './cells/title/title.component';\nimport { TheadFitlersRowComponent } from './rows/thead-filters-row.component';\nimport { TheadFormRowComponent } from './rows/thead-form-row.component';\nimport { TheadTitlesRowComponent } from './rows/thead-titles-row.component';\n\nconst THEAD_COMPONENTS = [\n ActionsComponent,\n ActionsTitleComponent,\n AddButtonComponent,\n CheckboxSelectAllComponent,\n ColumnTitleComponent,\n TitleComponent,\n TheadFitlersRowComponent,\n TheadFormRowComponent,\n TheadTitlesRowComponent,\n Ng2SmartTableTheadComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n FilterModule,\n CellModule,\n ],\n declarations: [\n ...THEAD_COMPONENTS,\n ],\n exports: [\n ...THEAD_COMPONENTS,\n ],\n})\nexport class THeadModule { }\n","import { Component, Input, Output, SimpleChange, EventEmitter, OnChanges } from '@angular/core';\n\nimport { Grid } from './lib/grid';\nimport { Row } from './lib/data-set/row';\nimport { deepExtend } from './lib/helpers';\nimport { LocalDataSource } from './lib/data-source/local/local.data-source';\nimport { SmartTableConfirmDeleteEvent, SmartTableConfirmEditEvent, SmartTableCreateConfirm, SmartTableCustomEvent, SmartTableRowClickedEvent, SmartTableRowSelectEvent, SmartTableSettings } from './lib/interfaces/smart-table.models';\n\n@Component({\n selector: 'ng2-smart-table',\n styleUrls: ['./ng2-smart-table.component.scss'],\n templateUrl: './ng2-smart-table.component.html',\n})\nexport class Ng2SmartTableComponent implements OnChanges {\n @Input() source!: LocalDataSource;\n @Input() settings!: SmartTableSettings;\n\n @Output() multiRowSelect = new EventEmitter<SmartTableRowSelectEvent>();\n @Output() rowClicked = new EventEmitter<SmartTableRowClickedEvent>();\n @Output() delete = new EventEmitter<any>();\n @Output() edit = new EventEmitter<any>();\n @Output() editCancel = new EventEmitter<any>();\n @Output() create = new EventEmitter<any>();\n @Output() custom = new EventEmitter<SmartTableCustomEvent>();\n @Output() deleteConfirm = new EventEmitter<SmartTableConfirmDeleteEvent>();\n @Output() editConfirm = new EventEmitter<SmartTableConfirmEditEvent>();\n @Output() createConfirm = new EventEmitter<SmartTableCreateConfirm>();\n @Output() rowHover: EventEmitter<any> = new EventEmitter<any>();\n\n tableClass: string = '';\n tableId: string = '';\n perPageSelect: number[] = [];\n isHideHeader = false;\n isHideSubHeader = false;\n isPagerDisplay = false;\n rowClassFunction: Function = ()=>'';\n\n grid!: Grid;\n defaultSettings: SmartTableSettings = {\n mode: 'inline', // inline|external|click-to-edit\n selectMode: 'single', // single|multi\n selectedRowIndex: -1,\n switchPageToSelectedRowPage: false,\n hideHeader: false,\n hideSubHeader: false,\n actions: {\n columnTitle: 'Actions',\n add: true,\n edit: true,\n delete: true,\n custom: [],\n position: 'left', // left|right\n },\n filter: {\n inputClass: '',\n },\n edit: {\n inputClass: '',\n editButtonContent: 'Edit',\n saveButtonContent: 'Update',\n cancelButtonContent: 'Cancel',\n confirmSave: false,\n },\n add: {\n inputClass: '',\n addButtonContent: 'Add New',\n createButtonContent: 'Create',\n cancelButtonContent: 'Cancel',\n confirmCreate: false,\n },\n delete: {\n deleteButtonContent: 'Delete',\n confirmDelete: false,\n },\n attr: {\n id: '',\n class: '',\n },\n noDataMessage: 'No data found',\n columns: [],\n pager: false,\n rowClassFunction: () => '',\n };\n\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\n if (this.grid) {\n if (changes['settings']) {\n this.grid.setSettings(this.prepareSettings());\n }\n if (changes['source']) {\n this.source = this.prepareSource();\n this.grid.setSource(this.source);\n }\n } else {\n this.initGrid();\n }\n this.tableId = this.grid.getSetting('attr.id');\n this.tableClass = this.grid.getSetting('attr.class');\n this.isHideHeader = this.grid.getSetting('hideHeader');\n this.isHideSubHeader = this.grid.getSetting('hideSubHeader');\n this.isPagerDisplay = this.grid.getSetting('pager.display', false);\n this.perPageSelect = this.grid.getSetting('pager.perPageSelect');\n this.rowClassFunction = this.grid.getSetting('rowClassFunction', () => '');\n }\n\n protected multipleSelectRow(row: Row): void {\n this.grid.multipleSelectRow(row);\n this.emitUserSelectRow(row);\n }\n\n protected onSelectAllRows(): void {\n this.grid.dataSet.isAllSelected;\n this.grid.selectAllRows(!this.grid.dataSet.isAllSelected);\n this.emitUserSelectRow(null);\n }\n\n protected onSelectRow(row: Row, state: boolean): void {\n this.grid.selectRow(row, state);\n }\n\n protected emitUserRowClicked(row: Row): void {\n this.rowClicked.emit({\n data: row ? row.getData() : null,\n source: this.source,\n });\n }\n\n private initGrid(): void {\n this.source = this.prepareSource();\n this.grid = new Grid(this.source, this.prepareSettings());\n }\n\n private prepareSource(): LocalDataSource {\n if (this.source instanceof LocalDataSource) {\n return this.source;\n }\n return new LocalDataSource();\n }\n\n private prepareSettings(): SmartTableSettings {\n return deepExtend({}, this.defaultSettings, this.settings);\n }\n\n private emitUserSelectRow(row: Row | null): void {\n this.multiRowSelect.emit({\n data: row ? row.getData() : null,\n isSelected: row ? row.getIsSelected() : false,\n source: this.source,\n selected: this.grid.dataSet.getSelectedRowsData(),\n });\n } \n}\n","<table [id]=\"tableId\" [ngClass]=\"tableClass\">\n\n <thead ng2-st-thead *ngIf=\"!isHideHeader || !isHideSubHeader\"\n [grid]=\"grid\"\n [source]=\"source\"\n [createConfirm]=\"createConfirm\"\n (create)=\"create.emit($event)\"\n (selectAllRows)=\"onSelectAllRows()\">\n </thead>\n\n <tbody ng2-st-tbody [grid]=\"grid\"\n [source]=\"source\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [rowClassFunction]=\"rowClassFunction\"\n (edit)=\"edit.emit($event)\"\n (editCancel)=\"editCancel.emit($event)\"\n (delete)=\"delete.emit($event)\"\n (custom)=\"custom.emit($event)\"\n (userClickedRow)=\"emitUserRowClicked($event)\"\n (multipleSelectRow)=\"multipleSelectRow($event)\">\n </tbody>\n\n</table>\n\n<ng2-smart-table-pager *ngIf=\"isPagerDisplay\"\n [source]=\"source\"\n [perPageSelect]=\"perPageSelect\">\n</ng2-smart-table-pager>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { CellModule } from './components/cell/cell.module';\nimport { FilterModule } from './components/filter/filter.module';\nimport { PagerModule } from './components/pager/pager.module';\nimport { TBodyModule } from './components/tbody/tbody.module';\nimport { THeadModule } from './components/thead/thead.module';\n\nimport { Ng2SmartTableComponent } from './ng2-smart-table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CellModule,\n FilterModule,\n PagerModule,\n TBodyModule,\n THeadModule,\n ],\n declarations: [\n Ng2SmartTableComponent,\n ],\n exports: [\n Ng2SmartTableComponent,\n ],\n})\nexport class Ng2SmartTableModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.CheckboxEditorComponent","i3.InputEditorComponent","i4.SelectEditorComponent","i5.TextareaEditorComponent","i2.CustomEditComponent","i3.DefaultEditComponent","i2.CustomViewComponent","i2.EditCellComponent","i3.ViewCellComponent","i2.CheckboxFilterComponent","i3.InputFilterComponent","i4.SelectFilterComponent","i2.DefaultFilterComponent","i3.CustomFilterComponent","i3.CellComponent","i4.TbodyCreateCancelComponent","i5.TbodyEditDeleteComponent","i6.TbodyCustomComponent","i2.FilterComponent","i3.AddButtonComponent","i2.CellComponent","i3.ActionsComponent","i1","i1.TitleComponent","i2.ActionsTitleComponent","i3.CheckboxSelectAllComponent","i4.ColumnTitleComponent","i2.TheadFitlersRowComponent","i3.TheadFormRowComponent","i4.TheadTitlesRowComponent","i2.PagerComponent","i3.Ng2SmartTableTbodyComponent","i4.Ng2SmartTableTheadComponent"],"mappings":"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"}
|