slick-components 4.4.9 → 4.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/slick-components.umd.js +196 -120
- package/bundles/slick-components.umd.js.map +1 -1
- package/css/slick-components.css +3 -0
- package/css/slick-components.min.css +1 -1
- package/css/slick-components.scss +4 -1
- package/esm2015/slick-file-list/slick-file-list-item.component.js +21 -5
- package/esm2015/slick-file-list/slick-file-list.component.js +12 -6
- package/esm2015/slick-file-list/slick-file-list.module.js +3 -2
- package/esm2015/slick-grid/slick-grid-column.model.js +9 -1
- package/esm2015/slick-grid/slick-grid.component.js +139 -104
- package/esm2015/slick-grid/slick-grid.options.js +1 -1
- package/esm2015/utils/slick-init.service.js +2 -2
- package/fesm2015/slick-components.js +178 -114
- package/fesm2015/slick-components.js.map +1 -1
- package/package.json +1 -1
- package/slick-components.metadata.json +1 -1
- package/slick-file-list/slick-file-list-item.component.d.ts +4 -1
- package/slick-file-list/slick-file-list.component.d.ts +2 -1
- package/slick-grid/slick-grid-column.model.d.ts +8 -0
- package/slick-grid/slick-grid.component.d.ts +4 -0
- package/slick-grid/slick-grid.options.d.ts +2 -0
|
@@ -9,4 +9,4 @@ export class SlickGridOptions {
|
|
|
9
9
|
this.httpHeaders = new HttpHeaders();
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZ3JpZC5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZ3JpZC9zbGljay1ncmlkLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBc0JuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBZ0I1QjtRQU5PLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QixVQUFLLEdBQVksSUFBSSxDQUFDO1FBQ3RCLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUl6QyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IElTbGlja0dyaWRDb2x1bW5Nb2RlbCB9IGZyb20gXCIuL3NsaWNrLWdyaWQtY29sdW1uLm1vZGVsXCI7XHJcbmltcG9ydCB7IFNsaWNrR3JpZFJlcXVlc3RNb2RlbCB9IGZyb20gXCIuL3NsaWNrLWdyaWQtcmVxdWVzdC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBJU2xpY2tHcmlkRmF2b3JpdGVNb2RlbCB9IGZyb20gJy4vc2xpY2stZ3JpZC1mYXZvcml0ZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTbGlja0dyaWRPcHRpb25zIHtcclxuXHRncmlkS2V5OiBzdHJpbmc7XHJcblx0cm93SGVpZ2h0OiBudW1iZXJbXTtcclxuXHJcblx0Z2V0VXJsOiBzdHJpbmc7XHJcblx0aHR0cEhlYWRlcnM6IEh0dHBIZWFkZXJzO1xyXG5cdHJlcXVlc3RNb2RlbDogU2xpY2tHcmlkUmVxdWVzdE1vZGVsO1xyXG5cdGNvbHVtbnM6IElTbGlja0dyaWRDb2x1bW5Nb2RlbFtdO1xyXG5cdGZhdm9yaXRlczogSVNsaWNrR3JpZEZhdm9yaXRlTW9kZWxbXTtcclxuXHRvblJvd1NlbGVjdENhbGxiYWNrOiBGdW5jdGlvbjtcclxuXHRib3JkZXJlZDogYm9vbGVhbjtcclxuXHRzdHJpcGVkOiBib29sZWFuO1xyXG5cdGhvdmVyOiBib29sZWFuO1xyXG5cdGF1dG9TZWxlY3RGaXJzdFJvdzogYm9vbGVhbjtcclxuXHRkZWZhdWx0UmVjb3Jkc1BlclBhZ2U6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNsaWNrR3JpZE9wdGlvbnMgIGltcGxlbWVudHMgSVNsaWNrR3JpZE9wdGlvbnN7XHJcblx0cHVibGljIGdyaWRLZXk6IHN0cmluZztcclxuXHRwdWJsaWMgcm93SGVpZ2h0OiBudW1iZXJbXTtcclxuXHJcblx0cHVibGljIGdldFVybDogc3RyaW5nO1xyXG5cdHB1YmxpYyBodHRwSGVhZGVyczogSHR0cEhlYWRlcnM7XHJcblx0cHVibGljIHJlcXVlc3RNb2RlbDogU2xpY2tHcmlkUmVxdWVzdE1vZGVsO1xyXG5cdHB1YmxpYyBjb2x1bW5zOiBJU2xpY2tHcmlkQ29sdW1uTW9kZWxbXTtcclxuXHRwdWJsaWMgZmF2b3JpdGVzOiBJU2xpY2tHcmlkRmF2b3JpdGVNb2RlbFtdO1xyXG5cdHB1YmxpYyBvblJvd1NlbGVjdENhbGxiYWNrOiBGdW5jdGlvbjtcclxuXHRwdWJsaWMgYm9yZGVyZWQ6IGJvb2xlYW4gPSBudWxsO1xyXG5cdHB1YmxpYyBzdHJpcGVkOiBib29sZWFuID0gbnVsbDtcclxuXHRwdWJsaWMgaG92ZXI6IGJvb2xlYW4gPSBudWxsO1xyXG5cdHB1YmxpYyBhdXRvU2VsZWN0Rmlyc3RSb3c6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdHB1YmxpYyBkZWZhdWx0UmVjb3Jkc1BlclBhZ2U6IG51bWJlcjtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLmNvbHVtbnMgPSBbXTtcclxuXHRcdHRoaXMuaHR0cEhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuXHR9XHJcbn0iXX0=
|
|
@@ -39,10 +39,10 @@ export class SlickInitService {
|
|
|
39
39
|
SlickInitService.getParams().errorLog = errorLog;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
SlickInitService.version = "4.4.
|
|
42
|
+
SlickInitService.version = "4.4.13";
|
|
43
43
|
SlickInitService.decorators = [
|
|
44
44
|
{ type: Injectable }
|
|
45
45
|
];
|
|
46
46
|
/** @nocollapse */
|
|
47
47
|
SlickInitService.ctorParameters = () => [];
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2staW5pdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvdXRpbHMvc2xpY2staW5pdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsTUFBTSxPQUFPLGVBQWU7SUFBNUI7UUFHQyxhQUFRLEdBQVcsU0FBUyxDQUFDO0lBRzlCLENBQUM7Q0FBQTtBQUdELE1BQU0sT0FBTyxnQkFBZ0I7SUFHNUIsZ0JBQWdCLENBQUM7SUFHakIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUEyQjtRQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLDRCQUE0QixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLFVBQVUsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU8sQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUM7UUFFakQsT0FBYSxNQUFPLENBQUMscUJBQXFCLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTO1FBQ2YsSUFBSSxDQUFPLE1BQU8sQ0FBQyxxQkFBcUIsRUFBRTtZQUN6QyxNQUFNLGFBQWEsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzVDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1lBQzFCLE1BQU8sQ0FBQyxxQkFBcUIsR0FBRyxhQUFhLENBQUM7U0FDcEQ7UUFFRCxPQUE4QixNQUFPLENBQUMscUJBQXFCLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLGVBQXVCO1FBQ3pDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ2xDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ2xDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbEQsQ0FBQzs7QUE3Q00sd0JBQU8sR0FBRyxRQUFRLENBQUM7O1lBRjFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTbGlja0luaXRQYXJhbXMge1xyXG5cdGF0dGFjaFRvOiBzdHJpbmc7XHJcblx0cGxhdGZvcm06IHN0cmluZztcclxuXHRlcnJvckxvZzogc3RyaW5nID0gXCJtaW5pbWFsXCI7XHJcblx0dmVyc2lvbjogc3RyaW5nO1xyXG5cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2xpY2tJbml0U2VydmljZSB7XHRcclxuXHRzdGF0aWMgdmVyc2lvbiA9IFwiNC40LjEzXCI7XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cclxuXHRzdGF0aWMgaW5pdChpbml0UGFyYW1zOiBTbGlja0luaXRQYXJhbXMpOiBTbGlja0luaXRQYXJhbXMge1xyXG5cdFx0Y29uc29sZS5pbmZvKGBTbGljayBDb21wb25lbnRzIFZlcnNpb24gJHtTbGlja0luaXRTZXJ2aWNlLnZlcnNpb259YCk7XHJcblx0XHRpbml0UGFyYW1zLnZlcnNpb24gPSBTbGlja0luaXRTZXJ2aWNlLnZlcnNpb247XHJcblx0XHQoPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcyA9IGluaXRQYXJhbXM7XHJcblxyXG5cdFx0cmV0dXJuICg8YW55PndpbmRvdykuc2xpY2tDb21wb25lbnRzUGFyYW1zO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGdldFBhcmFtcygpOiBTbGlja0luaXRQYXJhbXMge1xyXG5cdFx0aWYgKCEoPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcykge1xyXG5cdFx0XHRjb25zdCBkZWZhdWx0UGFyYW1zID0gbmV3IFNsaWNrSW5pdFBhcmFtcygpO1xyXG5cdFx0XHRkZWZhdWx0UGFyYW1zLmF0dGFjaFRvID0gXCJib2R5XCI7XHJcblx0XHRcdCg8YW55PndpbmRvdykuc2xpY2tDb21wb25lbnRzUGFyYW1zID0gZGVmYXVsdFBhcmFtcztcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gPFNsaWNrSW5pdFBhcmFtcz4oPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcztcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBnZXRBdHRhY2hUbygpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkuYXR0YWNoVG87XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgc2V0QXR0YWNoVG8oYXR0YWNoVG9FbGVtZW50OiBzdHJpbmcpIHtcclxuXHRcdFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkuYXR0YWNoVG8gPSBhdHRhY2hUb0VsZW1lbnQ7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgZ2V0UGxhdGZvcm0oKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBTbGlja0luaXRTZXJ2aWNlLmdldFBhcmFtcygpLnBsYXRmb3JtO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHNldFBsYXRmb3JtKHBsYXRmb3JtOiBzdHJpbmcpIHtcclxuXHRcdFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkucGxhdGZvcm0gPSBwbGF0Zm9ybTtcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBnZXRFcnJvckxvZygpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkuZXJyb3JMb2c7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgc2V0RXJyb3JMb2coZXJyb3JMb2c6IHN0cmluZykge1xyXG5cdFx0U2xpY2tJbml0U2VydmljZS5nZXRQYXJhbXMoKS5lcnJvckxvZyA9IGVycm9yTG9nO1xyXG5cdH1cclxufVxyXG5cclxuIl19
|
|
@@ -48,7 +48,7 @@ class SlickInitService {
|
|
|
48
48
|
SlickInitService.getParams().errorLog = errorLog;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
SlickInitService.version = "4.4.
|
|
51
|
+
SlickInitService.version = "4.4.13";
|
|
52
52
|
SlickInitService.decorators = [
|
|
53
53
|
{ type: Injectable }
|
|
54
54
|
];
|
|
@@ -3598,6 +3598,7 @@ class SlickFileListComponent {
|
|
|
3598
3598
|
this.showPhotoGallery = false;
|
|
3599
3599
|
this.showCheckboxes = false;
|
|
3600
3600
|
this.thumbnailSize = 90;
|
|
3601
|
+
this.confirmDelete = true;
|
|
3601
3602
|
this.filesEmitter = new EventEmitter();
|
|
3602
3603
|
this.onFileDeleteEmitter = new EventEmitter();
|
|
3603
3604
|
this.onFileCheckChanged = new EventEmitter();
|
|
@@ -3615,6 +3616,8 @@ class SlickFileListComponent {
|
|
|
3615
3616
|
this.showPhotoGallery = (changes.showPhotoGallery.currentValue.toString().toLowerCase() !== 'false');
|
|
3616
3617
|
if (changes.showCheckboxes && changes.showCheckboxes.currentValue)
|
|
3617
3618
|
this.showCheckboxes = (changes.showCheckboxes.currentValue.toString().toLowerCase() !== 'false');
|
|
3619
|
+
if (changes.deleteConfirmation && changes.deleteConfirmation.currentValue)
|
|
3620
|
+
this.confirmDelete = (this.confirmDelete.toString() === 'true') ? true : false;
|
|
3618
3621
|
}
|
|
3619
3622
|
fileClicked(file, idx) {
|
|
3620
3623
|
if (this.showPhotoGallery === true) {
|
|
@@ -3628,10 +3631,12 @@ class SlickFileListComponent {
|
|
|
3628
3631
|
this.filesEmitter.emit(this.files);
|
|
3629
3632
|
}
|
|
3630
3633
|
onFileDelete(file, idx) {
|
|
3631
|
-
this
|
|
3632
|
-
|
|
3633
|
-
|
|
3634
|
-
this.onFileDeleteEmitter
|
|
3634
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3635
|
+
this.files.splice(idx, 1);
|
|
3636
|
+
this.filesEmitter.emit(this.files);
|
|
3637
|
+
if (this.onFileDeleteEmitter)
|
|
3638
|
+
this.onFileDeleteEmitter.emit(file);
|
|
3639
|
+
});
|
|
3635
3640
|
}
|
|
3636
3641
|
onCheckChanged(e, fileIdx) {
|
|
3637
3642
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -3677,7 +3682,7 @@ class SlickFileListComponent {
|
|
|
3677
3682
|
SlickFileListComponent.decorators = [
|
|
3678
3683
|
{ type: Component, args: [{
|
|
3679
3684
|
selector: 'slick-file-list',
|
|
3680
|
-
template: "<div #containerRef id=\"slick-file-list_{{uuid}}\" class=\"slick-file-list\">\r\n\t<slick-file-list-item *ngFor=\"let file of files; let idx = index\" [file]=\"file\" [allowDelete]=\"allowDelete\" [showPhotoGallery]=\"showPhotoGallery\" [showCheckbox]=\"showCheckboxes\" [thumbnailSize]=\"thumbnailSize\" (checkChanged)=\"onCheckChanged($event, idx)\" (fileClicked)=\"fileClicked($event, idx)\" (fileChanged)=\"onFileChange($event, idx)\" (fileDelete)=\"onFileDelete($event, idx)\"></slick-file-list-item>\r\n</div>\r\n\r\n<slick-photo-gallery #photoGalleryRef *ngIf=\"showPhotoGallery === true\" [files]=\"files\"></slick-photo-gallery
|
|
3685
|
+
template: "<div #containerRef id=\"slick-file-list_{{uuid}}\" class=\"slick-file-list\">\r\n\t<slick-file-list-item *ngFor=\"let file of files; let idx = index\" \r\n\t\t\t\t\t\t [file]=\"file\" \r\n\t\t\t\t\t\t [allowDelete]=\"allowDelete\" \r\n\t\t\t\t\t\t [showPhotoGallery]=\"showPhotoGallery\" \r\n\t\t\t\t\t\t [showCheckbox]=\"showCheckboxes\" \r\n\t\t\t\t\t\t [thumbnailSize]=\"thumbnailSize\" \r\n\t\t\t\t\t\t [confirmDelete]=\"confirmDelete\"\r\n\t\t\t\t\t\t (checkChanged)=\"onCheckChanged($event, idx)\" \r\n\t\t\t\t\t\t (fileClicked)=\"fileClicked($event, idx)\" \r\n\t\t\t\t\t\t (fileChanged)=\"onFileChange($event, idx)\" \r\n\t\t\t\t\t\t (fileDelete)=\"onFileDelete($event, idx)\"></slick-file-list-item>\r\n</div>\r\n\r\n<slick-photo-gallery #photoGalleryRef *ngIf=\"showPhotoGallery === true\" [files]=\"files\"></slick-photo-gallery>\r\n\r\n"
|
|
3681
3686
|
},] }
|
|
3682
3687
|
];
|
|
3683
3688
|
/** @nocollapse */
|
|
@@ -3688,6 +3693,7 @@ SlickFileListComponent.propDecorators = {
|
|
|
3688
3693
|
showPhotoGallery: [{ type: Input, args: ["showPhotoGallery",] }],
|
|
3689
3694
|
showCheckboxes: [{ type: Input, args: ["showCheckboxes",] }],
|
|
3690
3695
|
thumbnailSize: [{ type: Input, args: ["thumbnailSize",] }],
|
|
3696
|
+
confirmDelete: [{ type: Input, args: ["confirmDelete",] }],
|
|
3691
3697
|
filesEmitter: [{ type: Output, args: ["filesEmitter",] }],
|
|
3692
3698
|
onFileDeleteEmitter: [{ type: Output, args: ["onFileDelete",] }],
|
|
3693
3699
|
onFileCheckChanged: [{ type: Output, args: ["onFileCheckChanged",] }],
|
|
@@ -3704,6 +3710,7 @@ class SlickFileListItemComponent {
|
|
|
3704
3710
|
this.allowDelete = true;
|
|
3705
3711
|
this.showPhotoGallery = false;
|
|
3706
3712
|
this.showCheckbox = false;
|
|
3713
|
+
this.confirmDelete = true;
|
|
3707
3714
|
this.fileChangeEmitter = new EventEmitter();
|
|
3708
3715
|
this.fileDeleteEmitter = new EventEmitter();
|
|
3709
3716
|
this.fileClicked = new EventEmitter();
|
|
@@ -3727,6 +3734,7 @@ class SlickFileListItemComponent {
|
|
|
3727
3734
|
this.showPhotoGallery = (changes.showPhotoGallery.currentValue.toString().toLowerCase() !== 'false');
|
|
3728
3735
|
if (changes.showCheckbox && changes.showCheckbox.currentValue)
|
|
3729
3736
|
this.showCheckbox = (changes.showCheckbox.currentValue.toString().toLowerCase() !== 'false');
|
|
3737
|
+
this.confirmDelete = (this.confirmDelete.toString() === 'true') ? true : false;
|
|
3730
3738
|
if (this.file && this.file.name && !this.file.thumbnailBase64Image && !this.file.url) {
|
|
3731
3739
|
if (this.file.isChecked === null)
|
|
3732
3740
|
this.file.isChecked = false;
|
|
@@ -3756,8 +3764,19 @@ class SlickFileListItemComponent {
|
|
|
3756
3764
|
if (this.fileClicked)
|
|
3757
3765
|
this.fileClicked.emit(this.file);
|
|
3758
3766
|
}
|
|
3759
|
-
deleteFile() {
|
|
3760
|
-
this
|
|
3767
|
+
deleteFile(e) {
|
|
3768
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3769
|
+
e.stopPropagation();
|
|
3770
|
+
e.preventDefault();
|
|
3771
|
+
if (this.confirmDelete === false) {
|
|
3772
|
+
this.fileDeleteEmitter.emit(this.file);
|
|
3773
|
+
}
|
|
3774
|
+
else {
|
|
3775
|
+
const result = yield this.deleteConfirmRef.confirm();
|
|
3776
|
+
if (result === SlickConfirmDialogResults.Ok)
|
|
3777
|
+
this.fileDeleteEmitter.emit(this.file);
|
|
3778
|
+
}
|
|
3779
|
+
});
|
|
3761
3780
|
}
|
|
3762
3781
|
editTitle() {
|
|
3763
3782
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -3810,7 +3829,7 @@ class SlickFileListItemComponent {
|
|
|
3810
3829
|
SlickFileListItemComponent.decorators = [
|
|
3811
3830
|
{ type: Component, args: [{
|
|
3812
3831
|
selector: 'slick-file-list-item',
|
|
3813
|
-
template: "<div class=\"slick-file-list-item\" id=\"slick-file-list-item_{{uuid}}\">\r\n\t<div class=\"slick-file-list-item_img card\" (click)=\"onClick()\" [ngStyle]=\"{ 'cursor': (showPhotoGallery === true) ? 'pointer' : 'default' }\" [style.minHeight.px]=\"itemSize + 2\" [style.minWidth.px]=\"itemSize\">\r\n\t\t<img *ngIf=\"file.thumbnailBase64Image\" [src]=\"file.thumbnailBase64Image\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && file.base64Image\" [src]=\"file.base64Image\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && !file.base64Image && file.thumbnailUrl\" [src]=\"file.thumbnailUrl\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && !file.base64Image && !file.thumbnailUrl && file.url\" [src]=\"file.url\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<i *ngIf=\"allowDelete\" class=\"fas fa-times-circle bg-white text-danger\" (click)=\"deleteFile()\"></i>\r\n\t</div>\r\n\t<div class=\"slick-file-list-item_title\" *ngIf=\"fileDateFormatted\" [style.minWidth.px]=\"itemSize\" [style.maxWidth.px]=\"itemSize\">\r\n\t\t<div class=\"slick-file-list-item_date\" *ngIf=\"fileDateFormatted\" [style.minWidth.px]=\"itemSize\">{{fileDateFormatted}}</div>\r\n\t</div>\r\n\t<div class=\"slick-file-list-item_title\" [style.minWidth.px]=\"itemSize\" [style.maxWidth.px]=\"itemSize\">\r\n\t\t<div class=\"slick-file-list-item_display-title\" #titleDivRef style=\"cursor: pointer\" *ngIf=\"!isEditing\" (click)=\"editTitle()\">{{file.title}}</div>\r\n\t\t<div #editTitleDivRef class=\"slick-file-list-item_edit-title\" *ngIf=\"isEditing\"><input #editTitleInputRef type=\"text\" class=\"form-control\" [(ngModel)]=\"tempTitle\" (keydown)=\"onKeyDown($event)\" [style.width.px]=\"itemSize\" /></div>\r\n\t</div>\r\n\r\n\t<!-- We want the user to be able to click just a little outside of the checkbox and still have it check -->\r\n\t<div *ngIf=\"showCheckbox === true\" class=\"slick-file-checkbox\" (click)=\"onCheckboxClicked($event)\">\r\n\t\t<input type=\"checkbox\" [ngModel]=\"file.isChecked\" />\r\n\t</div>\r\n</div>\r\n"
|
|
3832
|
+
template: "<div class=\"slick-file-list-item\" id=\"slick-file-list-item_{{uuid}}\">\r\n\t<div class=\"slick-file-list-item_img card\" (click)=\"onClick()\" [ngStyle]=\"{ 'cursor': (showPhotoGallery === true) ? 'pointer' : 'default' }\" [style.minHeight.px]=\"itemSize + 2\" [style.minWidth.px]=\"itemSize\">\r\n\t\t<img *ngIf=\"file.thumbnailBase64Image\" [src]=\"file.thumbnailBase64Image\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && file.base64Image\" [src]=\"file.base64Image\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && !file.base64Image && file.thumbnailUrl\" [src]=\"file.thumbnailUrl\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && !file.base64Image && !file.thumbnailUrl && file.url\" [src]=\"file.url\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<i *ngIf=\"allowDelete\" class=\"fas fa-times-circle bg-white text-danger\" (click)=\"deleteFile($event)\"></i>\r\n\t</div>\r\n\t<div class=\"slick-file-list-item_title\" *ngIf=\"fileDateFormatted\" [style.minWidth.px]=\"itemSize\" [style.maxWidth.px]=\"itemSize\">\r\n\t\t<div class=\"slick-file-list-item_date\" *ngIf=\"fileDateFormatted\" [style.minWidth.px]=\"itemSize\">{{fileDateFormatted}}</div>\r\n\t</div>\r\n\t<div class=\"slick-file-list-item_title\" [style.minWidth.px]=\"itemSize\" [style.maxWidth.px]=\"itemSize\">\r\n\t\t<div class=\"slick-file-list-item_display-title\" #titleDivRef style=\"cursor: pointer\" *ngIf=\"!isEditing\" (click)=\"editTitle()\">{{file.title}}</div>\r\n\t\t<div #editTitleDivRef class=\"slick-file-list-item_edit-title\" *ngIf=\"isEditing\"><input #editTitleInputRef type=\"text\" class=\"form-control\" [(ngModel)]=\"tempTitle\" (keydown)=\"onKeyDown($event)\" [style.width.px]=\"itemSize\" /></div>\r\n\t</div>\r\n\r\n\t<!-- We want the user to be able to click just a little outside of the checkbox and still have it check -->\r\n\t<div *ngIf=\"showCheckbox === true\" class=\"slick-file-checkbox\" (click)=\"onCheckboxClicked($event)\">\r\n\t\t<input type=\"checkbox\" [ngModel]=\"file.isChecked\" />\r\n\t</div>\r\n</div>\r\n\r\n<slick-confirm-dialog #deleteConfirmRef>\r\n\t<h4 class=\"p-0 m-0 text-danger\">Are you sure you want to delete?</h4>\r\n</slick-confirm-dialog>"
|
|
3814
3833
|
},] }
|
|
3815
3834
|
];
|
|
3816
3835
|
/** @nocollapse */
|
|
@@ -3821,20 +3840,22 @@ SlickFileListItemComponent.propDecorators = {
|
|
|
3821
3840
|
showPhotoGallery: [{ type: Input, args: ["showPhotoGallery",] }],
|
|
3822
3841
|
showCheckbox: [{ type: Input, args: ["showCheckbox",] }],
|
|
3823
3842
|
thumbnailSize: [{ type: Input, args: ["thumbnailSize",] }],
|
|
3843
|
+
confirmDelete: [{ type: Input, args: ["confirmDelete",] }],
|
|
3824
3844
|
fileChangeEmitter: [{ type: Output, args: ["fileChange",] }],
|
|
3825
3845
|
fileDeleteEmitter: [{ type: Output, args: ["fileDelete",] }],
|
|
3826
3846
|
fileClicked: [{ type: Output, args: ["fileClicked",] }],
|
|
3827
3847
|
checkChanged: [{ type: Output, args: ["checkChanged",] }],
|
|
3828
3848
|
titleDivRef: [{ type: ViewChild, args: ["titleDivRef",] }],
|
|
3829
3849
|
editTitleDivRef: [{ type: ViewChild, args: ["editTitleDivRef",] }],
|
|
3830
|
-
editTitleInputRef: [{ type: ViewChild, args: ["editTitleInputRef",] }]
|
|
3850
|
+
editTitleInputRef: [{ type: ViewChild, args: ["editTitleInputRef",] }],
|
|
3851
|
+
deleteConfirmRef: [{ type: ViewChild, args: ["deleteConfirmRef",] }]
|
|
3831
3852
|
};
|
|
3832
3853
|
|
|
3833
3854
|
class SlickFileListModule {
|
|
3834
3855
|
}
|
|
3835
3856
|
SlickFileListModule.decorators = [
|
|
3836
3857
|
{ type: NgModule, args: [{
|
|
3837
|
-
imports: [CommonModule, FormsModule, SlickPhotoGalleryModule],
|
|
3858
|
+
imports: [CommonModule, FormsModule, SlickConfirmDialogModule, SlickPhotoGalleryModule],
|
|
3838
3859
|
declarations: [SlickFileListComponent, SlickFileListItemComponent],
|
|
3839
3860
|
exports: [CommonModule, FormsModule, SlickFileListComponent]
|
|
3840
3861
|
},] }
|
|
@@ -4484,6 +4505,11 @@ var SlickGridColumnSortDirection;
|
|
|
4484
4505
|
SlickGridColumnSortDirection[SlickGridColumnSortDirection["asc"] = 1] = "asc";
|
|
4485
4506
|
SlickGridColumnSortDirection[SlickGridColumnSortDirection["desc"] = 2] = "desc";
|
|
4486
4507
|
})(SlickGridColumnSortDirection || (SlickGridColumnSortDirection = {}));
|
|
4508
|
+
var SlickGridColumnTitleOrientation;
|
|
4509
|
+
(function (SlickGridColumnTitleOrientation) {
|
|
4510
|
+
SlickGridColumnTitleOrientation[SlickGridColumnTitleOrientation["Horizontal"] = 0] = "Horizontal";
|
|
4511
|
+
SlickGridColumnTitleOrientation[SlickGridColumnTitleOrientation["Vertical"] = 1] = "Vertical";
|
|
4512
|
+
})(SlickGridColumnTitleOrientation || (SlickGridColumnTitleOrientation = {}));
|
|
4487
4513
|
class SlickGridColumnModel {
|
|
4488
4514
|
constructor() {
|
|
4489
4515
|
this.sortable = true;
|
|
@@ -4500,6 +4526,9 @@ class SlickGridColumnModel {
|
|
|
4500
4526
|
gridColumn.columnKey = params.columnKey;
|
|
4501
4527
|
if (params.title)
|
|
4502
4528
|
gridColumn.title = params.title;
|
|
4529
|
+
gridColumn.titleOrientation = params.titleOrientation || SlickGridColumnTitleOrientation.Horizontal;
|
|
4530
|
+
if (params.titleHeight)
|
|
4531
|
+
gridColumn.titleHeight = params.titleHeight;
|
|
4503
4532
|
if (params.dataFieldName)
|
|
4504
4533
|
gridColumn.dataFieldName = params.dataFieldName;
|
|
4505
4534
|
if (params.displayOrder !== null && params.displayOrder !== undefined)
|
|
@@ -4639,6 +4668,7 @@ class SlickGridComponent {
|
|
|
4639
4668
|
this.bordered = true;
|
|
4640
4669
|
this.striped = true;
|
|
4641
4670
|
this.hover = true;
|
|
4671
|
+
this.showingAllRecords = false;
|
|
4642
4672
|
this.onRowSelected = new EventEmitter();
|
|
4643
4673
|
this.onRowDoubleClick = new EventEmitter();
|
|
4644
4674
|
this.onRowContextMenu = new EventEmitter();
|
|
@@ -4667,6 +4697,7 @@ class SlickGridComponent {
|
|
|
4667
4697
|
if (this.slickGridHeight !== this.slickGridRef.nativeElement.offsetHeight) {
|
|
4668
4698
|
clearTimeout(this.resizeTimeout);
|
|
4669
4699
|
this.resizeTimeout = setTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
4700
|
+
this.currentPage = 1;
|
|
4670
4701
|
this.requestModel.page = 1;
|
|
4671
4702
|
yield this.resizeGrid();
|
|
4672
4703
|
this.requestModel.recordsPerPage = this.recordsPerPage;
|
|
@@ -4677,79 +4708,7 @@ class SlickGridComponent {
|
|
|
4677
4708
|
}
|
|
4678
4709
|
ngOnInit() {
|
|
4679
4710
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4680
|
-
|
|
4681
|
-
if (this.gridOptions.favorites) {
|
|
4682
|
-
const favoriteNames = this.gridOptions.favorites.map(f => f.favoriteName);
|
|
4683
|
-
localStorage.setItem(`GRID_${this.gridOptions.gridKey}_FAVORITES`, JSON.stringify(favoriteNames));
|
|
4684
|
-
this.gridOptions.favorites.forEach(favorite => {
|
|
4685
|
-
// Make sure we haven't added a new column that needs to be saved
|
|
4686
|
-
this.gridOptions.columns.forEach(c => {
|
|
4687
|
-
const columnExists = favorite.columns.findIndex(x => x.dataFieldName === c.dataFieldName);
|
|
4688
|
-
if (columnExists < 0)
|
|
4689
|
-
favorite.columns.push(c);
|
|
4690
|
-
});
|
|
4691
|
-
let gridColumnsJSON = JSON.stringify(favorite.columns);
|
|
4692
|
-
if (this.gridOptions.gridKey) {
|
|
4693
|
-
const suffix = favorite.favoriteName === 'Default' ? '' : ('_' + favorite.favoriteName);
|
|
4694
|
-
localStorage.setItem(`GRID_${this.gridOptions.gridKey}_COLUMNS${suffix}`, gridColumnsJSON);
|
|
4695
|
-
}
|
|
4696
|
-
});
|
|
4697
|
-
if (favoriteNames.indexOf(this.selectedFavorite) < 0)
|
|
4698
|
-
this.selectedFavorite = "Default";
|
|
4699
|
-
}
|
|
4700
|
-
this.selectedFavorite = localStorage.getItem("GRID_" + this.gridOptions.gridKey + "_SELECTED_FAVORITE") || 'Default';
|
|
4701
|
-
// Check to make sure we don't have any duplicate column names
|
|
4702
|
-
this.gridOptions.columns.forEach(c1 => {
|
|
4703
|
-
const dataFieldCount = (this.gridOptions.columns.filter(x => x.dataFieldName === c1.dataFieldName) || []).length;
|
|
4704
|
-
if (dataFieldCount > 1)
|
|
4705
|
-
console.error(`Grid ${this.gridOptions.gridKey} column ${c1.dataFieldName} is defined ${dataFieldCount} times`);
|
|
4706
|
-
});
|
|
4707
|
-
const suffix = this.selectedFavorite === 'Default' ? '' : ('_' + this.selectedFavorite);
|
|
4708
|
-
let gridColumnsJson = localStorage.getItem(`GRID_${this.gridOptions.gridKey}_COLUMNS${suffix}`);
|
|
4709
|
-
if (gridColumnsJson) {
|
|
4710
|
-
let columns = JSON.parse(gridColumnsJson);
|
|
4711
|
-
let displayOrder = 0;
|
|
4712
|
-
columns.forEach(c => {
|
|
4713
|
-
let column = this.gridOptions.columns.find(gridColumn => gridColumn.dataFieldName === c.dataFieldName);
|
|
4714
|
-
if (column) {
|
|
4715
|
-
column.visible = c.visible;
|
|
4716
|
-
column.displayOrder = displayOrder;
|
|
4717
|
-
column.width = c.width;
|
|
4718
|
-
column.flexible = c.flexible;
|
|
4719
|
-
column.sortDirection = c.sortDirection;
|
|
4720
|
-
column.isLocked = c.isLocked;
|
|
4721
|
-
//column.filterType = c.filterType;
|
|
4722
|
-
if (column.isLocked && column.filterType !== SlickGridColumnFilterTypes.none) {
|
|
4723
|
-
column.isFiltering = true;
|
|
4724
|
-
if (column.filterType === SlickGridColumnFilterTypes.text)
|
|
4725
|
-
column.filterText = c.filterText;
|
|
4726
|
-
else if (column.filterType === SlickGridColumnFilterTypes.dropdown)
|
|
4727
|
-
column.filterDropdownValue = c.filterDropdownValue;
|
|
4728
|
-
if (!column.filterText && !column.filterDropdownValue) {
|
|
4729
|
-
column.isFiltering = false;
|
|
4730
|
-
column.isLocked = false;
|
|
4731
|
-
column.filterText = null;
|
|
4732
|
-
column.filterDropdownValue = null;
|
|
4733
|
-
}
|
|
4734
|
-
}
|
|
4735
|
-
}
|
|
4736
|
-
displayOrder++;
|
|
4737
|
-
});
|
|
4738
|
-
}
|
|
4739
|
-
this.recordsPerPageValue = localStorage.getItem("GRID_" + this.gridOptions.gridKey + "_RECORDS_PER_PAGE") || "Auto";
|
|
4740
|
-
const favoritesJson = localStorage.getItem("GRID_" + this.gridOptions.gridKey + "_FAVORITES") || `["Default"]`;
|
|
4741
|
-
this.favorites = JSON.parse(favoritesJson).map(favorite => {
|
|
4742
|
-
return new DropDownModel(favorite);
|
|
4743
|
-
});
|
|
4744
|
-
}
|
|
4745
|
-
this.visibleColumns = this.gridOptions.columns.filter(c => c.visible === true);
|
|
4746
|
-
this.visibleColumns = this.visibleColumns.sort((a, b) => (a.displayOrder > b.displayOrder) ? 1 : (a.displayOrder < b.displayOrder) ? -1 : 0);
|
|
4747
|
-
this.showSearchRow = this.visibleColumns.filter(c => c.filterType !== SlickGridColumnFilterTypes.none).length > 0;
|
|
4748
|
-
let sortColumn = this.visibleColumns.find(c => c.sortable === true && c.sortDirection > 0);
|
|
4749
|
-
if (this.visibleColumns.length > 0 && sortColumn) {
|
|
4750
|
-
this.requestModel.sortColumn = sortColumn.dataFieldName;
|
|
4751
|
-
this.requestModel.sortDirection = sortColumn.sortDirection;
|
|
4752
|
-
}
|
|
4711
|
+
this.setGridOptions(this.gridOptions);
|
|
4753
4712
|
});
|
|
4754
4713
|
}
|
|
4755
4714
|
ngAfterViewInit() {
|
|
@@ -4825,6 +4784,7 @@ class SlickGridComponent {
|
|
|
4825
4784
|
this.striped = this.gridOptions.striped;
|
|
4826
4785
|
if (this.gridOptions.hover !== null)
|
|
4827
4786
|
this.hover = this.gridOptions.hover;
|
|
4787
|
+
this.setGridOptions(this.gridOptions);
|
|
4828
4788
|
}
|
|
4829
4789
|
if (changes.data) {
|
|
4830
4790
|
// If we don't do this lock, the first change will have null data and crash. The second request will have the actual data
|
|
@@ -4932,6 +4892,7 @@ class SlickGridComponent {
|
|
|
4932
4892
|
}
|
|
4933
4893
|
onPageChange(pageNumber, selectRow = true) {
|
|
4934
4894
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4895
|
+
this.currentPage = pageNumber;
|
|
4935
4896
|
this.requestModel.page = pageNumber;
|
|
4936
4897
|
yield this.reload(this.requestModel);
|
|
4937
4898
|
this.selectedIndex = (this.gridOptions.autoSelectFirstRow === true) ? 0 : null;
|
|
@@ -4968,6 +4929,8 @@ class SlickGridComponent {
|
|
|
4968
4929
|
yield this.resizeGrid();
|
|
4969
4930
|
yield this.functionLockService.lock("GRID_" + this.uuid + "_RELOADGRIDWITHREQUESTMODEL");
|
|
4970
4931
|
this.requestModel = requestModel;
|
|
4932
|
+
this.currentPage = 1;
|
|
4933
|
+
this.requestModel.page = 1;
|
|
4971
4934
|
let responseModel = yield this.reload(this.requestModel);
|
|
4972
4935
|
this.functionLockService.release("GRID_" + this.uuid + "_RELOADGRIDWITHREQUESTMODEL");
|
|
4973
4936
|
return Promise.resolve(responseModel);
|
|
@@ -4982,35 +4945,7 @@ class SlickGridComponent {
|
|
|
4982
4945
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4983
4946
|
try {
|
|
4984
4947
|
yield this.functionLockService.lock("GRID_" + this.uuid + "_RELOAD");
|
|
4985
|
-
requestModel
|
|
4986
|
-
this.gridOptions.columns.forEach(c => {
|
|
4987
|
-
if (c.visible) {
|
|
4988
|
-
if (c.filterType === SlickGridColumnFilterTypes.text && c.filterText) {
|
|
4989
|
-
c.filterText = c.filterText;
|
|
4990
|
-
requestModel.columnSearchValues.push({
|
|
4991
|
-
columnName: c.dataFieldName,
|
|
4992
|
-
searchValueId: null,
|
|
4993
|
-
searchValueText: c.filterText
|
|
4994
|
-
});
|
|
4995
|
-
}
|
|
4996
|
-
else if (c.filterType === SlickGridColumnFilterTypes.dropdown && c.filterDropdownValue) {
|
|
4997
|
-
c.filterDropdownValue = c.filterDropdownValue;
|
|
4998
|
-
requestModel.columnSearchValues.push({
|
|
4999
|
-
columnName: c.dataFieldName,
|
|
5000
|
-
searchValueId: c.filterDropdownValue,
|
|
5001
|
-
searchValueText: null
|
|
5002
|
-
});
|
|
5003
|
-
}
|
|
5004
|
-
}
|
|
5005
|
-
});
|
|
5006
|
-
requestModel.sortColumn = null;
|
|
5007
|
-
const sortColumn = this.gridOptions.columns.find(x => x.sortDirection === SlickGridColumnSortDirection.asc || x.sortDirection === SlickGridColumnSortDirection.desc);
|
|
5008
|
-
if (sortColumn) {
|
|
5009
|
-
requestModel.sortColumn = (sortColumn.sortDirection === 0) ? null : sortColumn.dataFieldName;
|
|
5010
|
-
requestModel.sortDirection = sortColumn.sortDirection;
|
|
5011
|
-
}
|
|
5012
|
-
if (requestModel.recordsPerPage <= 0)
|
|
5013
|
-
requestModel.recordsPerPage = 20;
|
|
4948
|
+
requestModel = this.getRequestModel(this.requestModel);
|
|
5014
4949
|
let responseModel = null;
|
|
5015
4950
|
if (requestModel.url)
|
|
5016
4951
|
responseModel = yield this.gridService.getDataFromServer(requestModel);
|
|
@@ -5060,6 +4995,7 @@ class SlickGridComponent {
|
|
|
5060
4995
|
}
|
|
5061
4996
|
}
|
|
5062
4997
|
this.saveColumnsToLocalStorage();
|
|
4998
|
+
this.currentPage = 1;
|
|
5063
4999
|
this.requestModel.page = 1;
|
|
5064
5000
|
yield this.reload(this.requestModel);
|
|
5065
5001
|
if (this.visibleData && this.visibleData.length > 0 && this.gridOptions.autoSelectFirstRow === true)
|
|
@@ -5085,6 +5021,7 @@ class SlickGridComponent {
|
|
|
5085
5021
|
else {
|
|
5086
5022
|
column.isLocked = false;
|
|
5087
5023
|
}
|
|
5024
|
+
this.currentPage = 1;
|
|
5088
5025
|
this.requestModel.page = 1;
|
|
5089
5026
|
yield this.reload(this.requestModel);
|
|
5090
5027
|
if (this.visibleData && this.visibleData.length > 0 && this.gridOptions.autoSelectFirstRow === true)
|
|
@@ -5114,6 +5051,7 @@ class SlickGridComponent {
|
|
|
5114
5051
|
searchValueText: column.filterText
|
|
5115
5052
|
});
|
|
5116
5053
|
}
|
|
5054
|
+
this.currentPage = 1;
|
|
5117
5055
|
this.requestModel.page = 1;
|
|
5118
5056
|
yield this.reload(this.requestModel);
|
|
5119
5057
|
if (this.visibleData && this.visibleData.length > 0 && this.gridOptions.autoSelectFirstRow === true)
|
|
@@ -5134,6 +5072,7 @@ class SlickGridComponent {
|
|
|
5134
5072
|
column.filterDropdownValue = null;
|
|
5135
5073
|
this.requestModel.columnSearchValues = this.requestModel.columnSearchValues.filter(x => x.columnName !== column.dataFieldName);
|
|
5136
5074
|
this.saveColumnsToLocalStorage();
|
|
5075
|
+
this.currentPage = 1;
|
|
5137
5076
|
this.requestModel.page = 1;
|
|
5138
5077
|
yield this.reload(this.requestModel);
|
|
5139
5078
|
if (this.visibleData && this.visibleData.length > 0 && this.gridOptions.autoSelectFirstRow === true)
|
|
@@ -5263,6 +5202,8 @@ class SlickGridComponent {
|
|
|
5263
5202
|
let column = this.gridOptions.columns.find(gridColumn => gridColumn.dataFieldName === c.dataFieldName);
|
|
5264
5203
|
if (column) {
|
|
5265
5204
|
c.displayOrder = displayOrder;
|
|
5205
|
+
c.titleOrientation = column.titleOrientation;
|
|
5206
|
+
c.titleHeight = column.titleHeight;
|
|
5266
5207
|
c.width = column.width;
|
|
5267
5208
|
c.filterDropdownValue = column.filterDropdownValue;
|
|
5268
5209
|
c.filterText = column.filterText;
|
|
@@ -5331,11 +5272,133 @@ class SlickGridComponent {
|
|
|
5331
5272
|
}));
|
|
5332
5273
|
});
|
|
5333
5274
|
}
|
|
5275
|
+
addColumn(column, idx = null) {
|
|
5276
|
+
if (idx === null)
|
|
5277
|
+
this.gridOptions.columns.push(column);
|
|
5278
|
+
else
|
|
5279
|
+
this.gridOptions.columns.splice(idx, 0, column);
|
|
5280
|
+
this.setGridOptions(this.gridOptions);
|
|
5281
|
+
}
|
|
5282
|
+
getRequestModel(requestModel = null) {
|
|
5283
|
+
if (!requestModel)
|
|
5284
|
+
requestModel = this.requestModel;
|
|
5285
|
+
requestModel.columnSearchValues = [];
|
|
5286
|
+
this.gridOptions.columns.forEach(c => {
|
|
5287
|
+
if (c.visible) {
|
|
5288
|
+
if (c.filterType === SlickGridColumnFilterTypes.text && c.filterText) {
|
|
5289
|
+
c.filterText = c.filterText;
|
|
5290
|
+
requestModel.columnSearchValues.push({
|
|
5291
|
+
columnName: c.dataFieldName,
|
|
5292
|
+
searchValueId: null,
|
|
5293
|
+
searchValueText: c.filterText
|
|
5294
|
+
});
|
|
5295
|
+
}
|
|
5296
|
+
else if (c.filterType === SlickGridColumnFilterTypes.dropdown && c.filterDropdownValue) {
|
|
5297
|
+
c.filterDropdownValue = c.filterDropdownValue;
|
|
5298
|
+
requestModel.columnSearchValues.push({
|
|
5299
|
+
columnName: c.dataFieldName,
|
|
5300
|
+
searchValueId: c.filterDropdownValue,
|
|
5301
|
+
searchValueText: null
|
|
5302
|
+
});
|
|
5303
|
+
}
|
|
5304
|
+
}
|
|
5305
|
+
});
|
|
5306
|
+
requestModel.sortColumn = null;
|
|
5307
|
+
const sortColumn = this.gridOptions.columns.find(x => x.sortDirection === SlickGridColumnSortDirection.asc || x.sortDirection === SlickGridColumnSortDirection.desc);
|
|
5308
|
+
if (sortColumn) {
|
|
5309
|
+
requestModel.sortColumn = (sortColumn.sortDirection === 0) ? null : sortColumn.dataFieldName;
|
|
5310
|
+
requestModel.sortDirection = sortColumn.sortDirection;
|
|
5311
|
+
}
|
|
5312
|
+
if (requestModel.recordsPerPage <= 0)
|
|
5313
|
+
requestModel.recordsPerPage = 20;
|
|
5314
|
+
return this.requestModel;
|
|
5315
|
+
}
|
|
5316
|
+
setGridOptions(gridOptions) {
|
|
5317
|
+
this.gridOptions = gridOptions;
|
|
5318
|
+
if (this.gridOptions.gridKey) {
|
|
5319
|
+
if (this.gridOptions.favorites) {
|
|
5320
|
+
const favoriteNames = this.gridOptions.favorites.map(f => f.favoriteName);
|
|
5321
|
+
localStorage.setItem(`GRID_${this.gridOptions.gridKey}_FAVORITES`, JSON.stringify(favoriteNames));
|
|
5322
|
+
this.gridOptions.favorites.forEach(favorite => {
|
|
5323
|
+
// Make sure we haven't added a new column that needs to be saved
|
|
5324
|
+
this.gridOptions.columns.forEach(c => {
|
|
5325
|
+
const columnExists = favorite.columns.findIndex(x => x.dataFieldName === c.dataFieldName);
|
|
5326
|
+
if (columnExists < 0)
|
|
5327
|
+
favorite.columns.push(c);
|
|
5328
|
+
});
|
|
5329
|
+
let gridColumnsJSON = JSON.stringify(favorite.columns);
|
|
5330
|
+
if (this.gridOptions.gridKey) {
|
|
5331
|
+
const suffix = favorite.favoriteName === 'Default' ? '' : ('_' + favorite.favoriteName);
|
|
5332
|
+
localStorage.setItem(`GRID_${this.gridOptions.gridKey}_COLUMNS${suffix}`, gridColumnsJSON);
|
|
5333
|
+
}
|
|
5334
|
+
});
|
|
5335
|
+
if (favoriteNames.indexOf(this.selectedFavorite) < 0)
|
|
5336
|
+
this.selectedFavorite = "Default";
|
|
5337
|
+
}
|
|
5338
|
+
this.selectedFavorite = localStorage.getItem("GRID_" + this.gridOptions.gridKey + "_SELECTED_FAVORITE") || 'Default';
|
|
5339
|
+
// Check to make sure we don't have any duplicate column names
|
|
5340
|
+
this.gridOptions.columns.forEach(c1 => {
|
|
5341
|
+
const dataFieldCount = (this.gridOptions.columns.filter(x => x.dataFieldName === c1.dataFieldName) || []).length;
|
|
5342
|
+
if (dataFieldCount > 1)
|
|
5343
|
+
console.error(`Grid ${this.gridOptions.gridKey} column ${c1.dataFieldName} is defined ${dataFieldCount} times`);
|
|
5344
|
+
});
|
|
5345
|
+
const suffix = this.selectedFavorite === 'Default' ? '' : ('_' + this.selectedFavorite);
|
|
5346
|
+
let gridColumnsJson = localStorage.getItem(`GRID_${this.gridOptions.gridKey}_COLUMNS${suffix}`);
|
|
5347
|
+
if (gridColumnsJson) {
|
|
5348
|
+
let columns = JSON.parse(gridColumnsJson);
|
|
5349
|
+
let displayOrder = 0;
|
|
5350
|
+
columns.forEach(c => {
|
|
5351
|
+
let column = this.gridOptions.columns.find(gridColumn => gridColumn.dataFieldName === c.dataFieldName);
|
|
5352
|
+
if (column) {
|
|
5353
|
+
column.visible = c.visible;
|
|
5354
|
+
column.displayOrder = displayOrder;
|
|
5355
|
+
column.titleOrientation = c.titleOrientation;
|
|
5356
|
+
column.titleHeight = c.titleHeight;
|
|
5357
|
+
column.width = c.width;
|
|
5358
|
+
column.flexible = c.flexible;
|
|
5359
|
+
column.sortDirection = c.sortDirection;
|
|
5360
|
+
column.isLocked = c.isLocked;
|
|
5361
|
+
//column.filterType = c.filterType;
|
|
5362
|
+
if (column.isLocked && column.filterType !== SlickGridColumnFilterTypes.none) {
|
|
5363
|
+
column.isFiltering = true;
|
|
5364
|
+
if (column.filterType === SlickGridColumnFilterTypes.text)
|
|
5365
|
+
column.filterText = c.filterText;
|
|
5366
|
+
else if (column.filterType === SlickGridColumnFilterTypes.dropdown)
|
|
5367
|
+
column.filterDropdownValue = c.filterDropdownValue;
|
|
5368
|
+
if (!column.filterText && !column.filterDropdownValue) {
|
|
5369
|
+
column.isFiltering = false;
|
|
5370
|
+
column.isLocked = false;
|
|
5371
|
+
column.filterText = null;
|
|
5372
|
+
column.filterDropdownValue = null;
|
|
5373
|
+
}
|
|
5374
|
+
}
|
|
5375
|
+
}
|
|
5376
|
+
displayOrder++;
|
|
5377
|
+
});
|
|
5378
|
+
}
|
|
5379
|
+
if (this.gridOptions.defaultRecordsPerPage && !localStorage.getItem("GRID_" + this.gridOptions.gridKey + "_RECORDS_PER_PAGE"))
|
|
5380
|
+
this.recordsPerPageValue = this.gridOptions.defaultRecordsPerPage.toString();
|
|
5381
|
+
else
|
|
5382
|
+
this.recordsPerPageValue = localStorage.getItem("GRID_" + this.gridOptions.gridKey + "_RECORDS_PER_PAGE") || "Auto";
|
|
5383
|
+
const favoritesJson = localStorage.getItem("GRID_" + this.gridOptions.gridKey + "_FAVORITES") || `["Default"]`;
|
|
5384
|
+
this.favorites = JSON.parse(favoritesJson).map(favorite => {
|
|
5385
|
+
return new DropDownModel(favorite);
|
|
5386
|
+
});
|
|
5387
|
+
}
|
|
5388
|
+
this.visibleColumns = this.gridOptions.columns.filter(c => c.visible === true);
|
|
5389
|
+
this.visibleColumns = this.visibleColumns.sort((a, b) => (a.displayOrder > b.displayOrder) ? 1 : (a.displayOrder < b.displayOrder) ? -1 : 0);
|
|
5390
|
+
this.showSearchRow = this.visibleColumns.filter(c => c.filterType !== SlickGridColumnFilterTypes.none).length > 0;
|
|
5391
|
+
let sortColumn = this.visibleColumns.find(c => c.sortable === true && c.sortDirection > 0);
|
|
5392
|
+
if (this.visibleColumns.length > 0 && sortColumn) {
|
|
5393
|
+
this.requestModel.sortColumn = sortColumn.dataFieldName;
|
|
5394
|
+
this.requestModel.sortDirection = sortColumn.sortDirection;
|
|
5395
|
+
}
|
|
5396
|
+
}
|
|
5334
5397
|
}
|
|
5335
5398
|
SlickGridComponent.decorators = [
|
|
5336
5399
|
{ type: Component, args: [{
|
|
5337
5400
|
selector: 'slick-grid',
|
|
5338
|
-
template: "<div id=\"slick-grid_{{uuid}}\" class=\"slick-grid d-flex flex-column flex-fill\" style=\"position: absolute; left: 0; top: 0; right: 0; bottom: 0;\" #slickGrid>\r\n\t<div #tableContainer class=\"d-flex flex-fill\" style=\"overflow: auto\">\r\n\r\n\t\t<div>\r\n\t\t\t<table #tableRef class=\"table table-sm\" [class.table-bordered]=\"bordered\" [class.table-borderless]=\"!bordered\" [class.table-striped]=\"striped\" [class.table-hover]=\"hover\" [style.opacity]=\"gridOpacity\" style=\"margin: 0; padding: 0;\" (keydown)=\"tableKeydown($event)\" tabindex=\"0\">\r\n\t\t\t\t<thead>\r\n\t\t\t\t\t<tr #tableHeaderRow (mousemove)=\"onColResizeMousemove($event)\" [ngClass]=\"{ 'resizing': isResizing === true }\">\r\n\t\t\t\t\t\t<td *ngFor=\"let column of visibleColumns; let idx = index\" [style.width]=\"column.width\" [style.maxWidth]=\"column.width\">\r\n\t\t\t\t\t\t\t<div *ngIf=\"idx > 0 && idx < visibleColumns.length\" class=\"resize_column_left\" [class.table-bordered]=\"bordered\" (mousedown)=\"onColResizeMousedown($event, idx - 1)\" (dblclick)=\"onColResizeDoubleclick($event, idx - 1)\"></div>\r\n\t\t\t\t\t\t\t<span class=\"sortIcon\" *ngIf=\"column.sortable === true && column.sortDirection > 0\"><i class=\"far\" [ngClass]=\"{'fa-caret-up': column.sortDirection === 1, 'fa-caret-down': column.sortDirection === 2}\"></i> </span>\r\n\t\t\t\t\t\t\t<a href=\"javascript:void(0)\" *ngIf=\"column.sortable === true\" (click)=\"sortBy(column)\" draggable=\"false\">{{column.title}}</a>\r\n\t\t\t\t\t\t\t<div *ngIf=\"column.sortable === false\">{{column.title}}</div>\r\n\t\t\t\t\t\t\t<div class=\"resize_column_right\" (mousedown)=\"onColResizeMousedown($event, idx)\" (dblclick)=\"onColResizeDoubleclick($event, idx)\"></div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr #tableHeaderSearchRow *ngIf=\"showSearchRow === true\">\r\n\t\t\t\t\t\t<td *ngFor=\"let column of visibleColumns\">\r\n\t\t\t\t\t\t\t<div class=\"slick-grid_search-column\">\r\n\t\t\t\t\t\t\t\t<i *ngIf=\"column.isFiltering\" class=\"fas fa-times-circle bg-white text-danger mr-1\" (click)=\"resetFilter(column)\"></i>\r\n\t\t\t\t\t\t\t\t<i *ngIf=\"column.isFiltering && column.isLocked\" class=\"far fa-lock mr-1\" (click)=\"toggleLock(column)\"></i>\r\n\t\t\t\t\t\t\t\t<i *ngIf=\"column.isFiltering && !column.isLocked\" class=\"far fa-lock-open mr-1\" (click)=\"toggleLock(column)\"></i>\r\n\t\t\t\t\t\t\t\t<div *ngIf=\"column.filterType === 1\" class=\"slick-grid_text-search\">\r\n\t\t\t\t\t\t\t\t\t<input autocomplete=\"nope\" type=\"text\" class=\"form-control\" [(ngModel)]=\"column.filterText\" name=\"searchText\" placeholder=\"Search...\" (keydown)=\"onSearch(column)\" />\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<div *ngIf=\"column.filterType === 2\" class=\"input-group slick-grid_drop-down-search\">\r\n\t\t\t\t\t\t\t\t\t<slick-drop-down [items]=\"column.filterDropdownValues\" [(ngModel)]=\"column.filterDropdownValue\" listWidth=\"auto\" placeholder=\"Search...\" (onSelect)=\"onSearchSelect($event, column)\"></slick-drop-down>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</thead>\r\n\r\n\t\t\t\t<tbody>\r\n\t\t\t\t\t<tr *ngIf=\"loaded && visibleData.length === 0\"><td [colSpan]=\"visibleColumns.length\">No Data</td></tr>\r\n\t\t\t\t\t<tr *ngFor=\"let rowData of visibleData; let idx = index\" #tableBodyRows (click)=\"onRowClicked(rowData, idx)\" (dblclick)=\"onRowDoubleClicked(rowData, idx)\" (contextmenu)=\"onRowContextMenuClicked($event, rowData, idx)\" [class.table-success]=\"selectedIndex === idx\">\r\n\t\t\t\t\t\t<td *ngFor=\"let column of visibleColumns\">\r\n\t\t\t\t\t\t\t<div *ngIf=\"!column.columnKey\" class=\"slick-grid_column-content\" [style.width]=\"column.width\" [style.maxWidth]=\"column.width\" [innerHTML]=\"getColumnHTML(rowData, column.dataFieldName) | slickGridSanitizeHtml\"></div>\r\n\t\t\t\t\t\t\t<div *ngIf=\"column.columnKey\" class=\"slick-grid_column-content\" [style.width]=\"column.width\" [style.maxWidth]=\"column.width\">\r\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"templateRefs[column.columnKey], context: { $implicit: rowData }\">\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t</table>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\r\n\t<div class=\"slick-grid-footer mt-2 d-flex\">\r\n\t\t<div>\r\n\t\t\t<button type=\"button\" (click)=\"openColumnSelectDialog()\" class=\"btn btn-outline-primary\"><i class=\"far fa-columns\"></i></button>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"favorites?.length > 1\">\r\n\t\t\t<button #favoriteSelectRef type=\"button\" class=\"btn btn-outline-primary ml-1\"><i class=\"far fa-star\"></i> {{this.selectedFavorite}}</button>\r\n\t\t\t<slick-popover [element]=\"favoriteSelectRef\" position=\"top\" showArrow=\"false\" [topOffsetPx]=\"0\" [leftOffsetPx]=\"0\" [showByClick]=\"true\">\r\n\t\t\t\t<table class=\"table-borderless table-sm table-hover\" style=\"min-width: 250px; cursor: default\">\r\n\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t<tr *ngFor=\"let favorite of favorites\" (click)=\"setFavorite(favorite.text)\">\r\n\t\t\t\t\t\t\t<td><i *ngIf=\"favorite.text === selectedFavorite\" class=\"far fa-star mr-1\"></i>{{favorite.text}}</td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</tbody>\r\n\t\t\t\t</table>\r\n\t\t\t</slick-popover>\r\n\t\t</div>\r\n\t\t<div>\r\n\t\t\t<slick-paging [(pageNumber)]=\"currentPage\" [totalRecords]=\"totalRecords\" [recordsPerPage]=\"recordsPerPage\" (onPageChange)=\"onPageChange($event)\"></slick-paging>\r\n\t\t</div>\r\n\t\t<div class=\"ml-1\">\r\n\t\t\t<button #recordsPerPageRef type=\"button\" class=\"btn btn-outline-primary\">{{recordsPerPageValue}} <i style=\"font-size: 12px\" class=\"far fa-chevron-down\"></i></button>\r\n\r\n\t\t\t<slick-popover [element]=\"recordsPerPageRef\" position=\"top\" showArrow=\"false\" [topOffsetPx]=\"0\" [leftOffsetPx]=\"0\" [showByClick]=\"true\">\r\n\t\t\t\t<table class=\"table-borderless table-sm table-hover\" style=\"min-width: 150px;\">\r\n\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t<tr (click)=\"onRecordsPerPageSelected('Auto')\"><td>Auto</td></tr>\r\n\t\t\t\t\t\t<tr (click)=\"onRecordsPerPageSelected('25')\"><td>25</td></tr>\r\n\t\t\t\t\t\t<tr (click)=\"onRecordsPerPageSelected('50')\"><td>50</td></tr>\r\n\t\t\t\t\t\t<tr (click)=\"onRecordsPerPageSelected('100')\"><td>100</td></tr>\r\n\t\t\t\t\t</tbody>\r\n\t\t\t\t</table>\r\n\t\t\t</slick-popover>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<slick-dialog #columnSelectDialogRef header=\"Select Columns\">\r\n\t<div style=\"text-align: center; width: 475px;\" class=\"mx-5\">\r\n\t\t<div class=\"d-flex\">\r\n\t\t\t<div class=\"flex-fill\">\r\n\t\t\t\t<slick-drop-down [items]=\"favorites\"\r\n\t\t\t\t\t\t\t\t [ngModel]=\"selectedFavorite\"\r\n\t\t\t\t\t\t\t\t (onSelect)=\"loadFavorite($event)\"></slick-drop-down>\r\n\t\t\t</div>\r\n\t\t\t<div><button class=\"btn btn-outline-primary ml-1\" (click)=\"addNewFavorite()\"><i class=\"far fa-plus\"></i></button></div>\r\n\t\t</div>\r\n\t\t<div class=\"d-flex flex-column mt-1\" slick-drop-list (onSlickDropListReorder)=\"onColumnReorder($event)\">\r\n\t\t\t<div *ngFor=\"let column of columnSelectDialogColumns\" class=\"d-flex\" slick-drop-list-item>\r\n\t\t\t\t<div style=\"width: 20px\"><input type=\"checkbox\" style=\"position: relative; top: 2px;\" [(ngModel)]=\"column.visible\" /></div>\r\n\t\t\t\t<div class=\"py-0 flex-fill\" style=\"text-align: left; cursor: ns-resize\" slick-drop-list-grab>{{column.title}}</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<slick-dialog-footer>\r\n\t\t<div style=\"margin-top: 10px;\" class=\"col-12 text-center mb-2 mt-1\">\r\n\t\t\t<button type=\"button\" (click)=\"onSaveColumns()\" class=\"btn btn-outline-primary mr-1\"><i class=\"far fa-save\"></i> Save</button> \r\n\t\t\t<button type=\"button\" class=\"btn btn-outline-danger\" (click)=\"onCancelColumns()\">Cancel</button>\r\n\t\t</div>\r\n\t</slick-dialog-footer>\r\n</slick-dialog>\r\n\r\n\r\n<slick-confirm-dialog #addNewFavoriteDialogRef width=\"300\">\r\n\t<label>Enter new favorite name</label>\r\n\t<input type=\"text\" class=\"form-control mx-3\" style=\"width: 250px\" [(ngModel)]=\"newFavoriteText\" />\r\n</slick-confirm-dialog>",
|
|
5401
|
+
template: "<div id=\"slick-grid_{{uuid}}\" class=\"slick-grid d-flex flex-column flex-fill\" style=\"position: absolute; left: 0; top: 0; right: 0; bottom: 0;\" #slickGrid>\r\n\t<div #tableContainer class=\"d-flex flex-fill\" style=\"overflow: auto\">\r\n\r\n\t\t<div>\r\n\t\t\t<table #tableRef class=\"table table-sm\" [class.table-bordered]=\"bordered\" [class.table-borderless]=\"!bordered\" [class.table-striped]=\"striped\" [class.table-hover]=\"hover\" [style.opacity]=\"gridOpacity\" style=\"margin: 0; padding: 0;\" (keydown)=\"tableKeydown($event)\" tabindex=\"0\">\r\n\t\t\t\t<thead>\r\n\t\t\t\t\t<tr #tableHeaderRow (mousemove)=\"onColResizeMousemove($event)\" [ngClass]=\"{ 'resizing': isResizing === true }\">\r\n\t\t\t\t\t\t<td *ngFor=\"let column of visibleColumns; let idx = index\" [style.width]=\"column.width\" [style.maxWidth]=\"column.width\" [style.height]=\"column.titleHeight\">\r\n\t\t\t\t\t\t\t<div [ngClass]=\"{ 'slick-grid_title-vertical' : column.titleOrientation === 1 }\">\r\n\t\t\t\t\t\t\t\t<div *ngIf=\"idx > 0 && idx < visibleColumns.length\" class=\"resize_column_left\" [class.table-bordered]=\"bordered\" (mousedown)=\"onColResizeMousedown($event, idx - 1)\" (dblclick)=\"onColResizeDoubleclick($event, idx - 1)\"></div>\r\n\t\t\t\t\t\t\t\t<span class=\"sortIcon\" *ngIf=\"column.sortable === true && column.sortDirection > 0\"><i class=\"far\" [ngClass]=\"{'fa-caret-up': column.sortDirection === 1, 'fa-caret-down': column.sortDirection === 2}\"></i> </span>\r\n\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\" *ngIf=\"column.sortable === true\" (click)=\"sortBy(column)\" draggable=\"false\" title=\"{{column.title}}\">{{column.title}}</a>\r\n\t\t\t\t\t\t\t\t<div *ngIf=\"column.sortable === false\" title=\"{{column.title}}\">{{column.title}}</div>\r\n\t\t\t\t\t\t\t\t<div class=\"resize_column_right\" (mousedown)=\"onColResizeMousedown($event, idx)\" (dblclick)=\"onColResizeDoubleclick($event, idx)\"></div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr #tableHeaderSearchRow *ngIf=\"showSearchRow === true\">\r\n\t\t\t\t\t\t<td *ngFor=\"let column of visibleColumns\">\r\n\t\t\t\t\t\t\t<div class=\"slick-grid_search-column\">\r\n\t\t\t\t\t\t\t\t<i *ngIf=\"column.isFiltering\" class=\"fas fa-times-circle bg-white text-danger mr-1\" (click)=\"resetFilter(column)\"></i>\r\n\t\t\t\t\t\t\t\t<i *ngIf=\"column.isFiltering && column.isLocked\" class=\"far fa-lock mr-1\" (click)=\"toggleLock(column)\"></i>\r\n\t\t\t\t\t\t\t\t<i *ngIf=\"column.isFiltering && !column.isLocked\" class=\"far fa-lock-open mr-1\" (click)=\"toggleLock(column)\"></i>\r\n\t\t\t\t\t\t\t\t<div *ngIf=\"column.filterType === 1\" class=\"slick-grid_text-search\">\r\n\t\t\t\t\t\t\t\t\t<input autocomplete=\"nope\" type=\"text\" class=\"form-control\" [(ngModel)]=\"column.filterText\" name=\"searchText\" placeholder=\"Search...\" (keydown)=\"onSearch(column)\" />\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<div *ngIf=\"column.filterType === 2\" class=\"input-group slick-grid_drop-down-search\">\r\n\t\t\t\t\t\t\t\t\t<slick-drop-down [items]=\"column.filterDropdownValues\" [(ngModel)]=\"column.filterDropdownValue\" listWidth=\"auto\" placeholder=\"Search...\" (onSelect)=\"onSearchSelect($event, column)\"></slick-drop-down>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</thead>\r\n\r\n\t\t\t\t<tbody>\r\n\t\t\t\t\t<tr *ngIf=\"loaded && visibleData.length === 0\"><td [colSpan]=\"visibleColumns.length\">No Data</td></tr>\r\n\t\t\t\t\t<tr *ngFor=\"let rowData of visibleData; let idx = index\" #tableBodyRows (click)=\"onRowClicked(rowData, idx)\" (dblclick)=\"onRowDoubleClicked(rowData, idx)\" (contextmenu)=\"onRowContextMenuClicked($event, rowData, idx)\" [class.table-success]=\"selectedIndex === idx\">\r\n\t\t\t\t\t\t<td *ngFor=\"let column of visibleColumns\">\r\n\t\t\t\t\t\t\t<div *ngIf=\"!column.columnKey\" class=\"slick-grid_column-content\" [style.width]=\"column.width\" [style.maxWidth]=\"column.width\" [innerHTML]=\"getColumnHTML(rowData, column.dataFieldName) | slickGridSanitizeHtml\"></div>\r\n\t\t\t\t\t\t\t<div *ngIf=\"column.columnKey\" class=\"slick-grid_column-content\" [style.width]=\"column.width\" [style.maxWidth]=\"column.width\">\r\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"templateRefs[column.columnKey], context: { $implicit: rowData }\">\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t</table>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\r\n\t<div class=\"slick-grid-footer mt-2 d-flex\">\r\n\t\t<div>\r\n\t\t\t<button type=\"button\" (click)=\"openColumnSelectDialog()\" class=\"btn btn-outline-primary\"><i class=\"far fa-columns\"></i></button>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"favorites?.length > 1\">\r\n\t\t\t<button #favoriteSelectRef type=\"button\" class=\"btn btn-outline-primary ml-1\"><i class=\"far fa-star\"></i> {{this.selectedFavorite}}</button>\r\n\t\t\t<slick-popover [element]=\"favoriteSelectRef\" position=\"top\" showArrow=\"false\" [topOffsetPx]=\"0\" [leftOffsetPx]=\"0\" [showByClick]=\"true\">\r\n\t\t\t\t<table class=\"table-borderless table-sm table-hover\" style=\"min-width: 250px; cursor: default\">\r\n\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t<tr *ngFor=\"let favorite of favorites\" (click)=\"setFavorite(favorite.text)\">\r\n\t\t\t\t\t\t\t<td><i *ngIf=\"favorite.text === selectedFavorite\" class=\"far fa-star mr-1\"></i>{{favorite.text}}</td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</tbody>\r\n\t\t\t\t</table>\r\n\t\t\t</slick-popover>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"showingAllRecords == false\">\r\n\t\t\t<slick-paging [(pageNumber)]=\"currentPage\" [totalRecords]=\"totalRecords\" [recordsPerPage]=\"recordsPerPage\" (onPageChange)=\"onPageChange($event)\"></slick-paging>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"showingAllRecords == false\" class=\"ml-1\">\r\n\t\t\t<button #recordsPerPageRef type=\"button\" class=\"btn btn-outline-primary\">{{recordsPerPageValue}} <i style=\"font-size: 12px\" class=\"far fa-chevron-down\"></i></button>\r\n\r\n\t\t\t<slick-popover [element]=\"recordsPerPageRef\" position=\"top\" showArrow=\"false\" [topOffsetPx]=\"0\" [leftOffsetPx]=\"0\" [showByClick]=\"true\">\r\n\t\t\t\t<table class=\"table-borderless table-sm table-hover\" style=\"min-width: 150px;\">\r\n\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t<tr (click)=\"onRecordsPerPageSelected('Auto')\"><td>Auto</td></tr>\r\n\t\t\t\t\t\t<tr (click)=\"onRecordsPerPageSelected('25')\"><td>25</td></tr>\r\n\t\t\t\t\t\t<tr (click)=\"onRecordsPerPageSelected('50')\"><td>50</td></tr>\r\n\t\t\t\t\t\t<tr (click)=\"onRecordsPerPageSelected('100')\"><td>100</td></tr>\r\n\t\t\t\t\t</tbody>\r\n\t\t\t\t</table>\r\n\t\t\t</slick-popover>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<slick-dialog #columnSelectDialogRef header=\"Select Columns\">\r\n\t<div style=\"text-align: center; width: 475px;\" class=\"mx-5\">\r\n\t\t<div class=\"d-flex\">\r\n\t\t\t<div class=\"flex-fill\">\r\n\t\t\t\t<slick-drop-down [items]=\"favorites\"\r\n\t\t\t\t\t\t\t\t [ngModel]=\"selectedFavorite\"\r\n\t\t\t\t\t\t\t\t (onSelect)=\"loadFavorite($event)\"></slick-drop-down>\r\n\t\t\t</div>\r\n\t\t\t<div><button class=\"btn btn-outline-primary ml-1\" (click)=\"addNewFavorite()\"><i class=\"far fa-plus\"></i></button></div>\r\n\t\t</div>\r\n\t\t<div class=\"d-flex flex-column mt-1\" slick-drop-list (onSlickDropListReorder)=\"onColumnReorder($event)\">\r\n\t\t\t<div *ngFor=\"let column of columnSelectDialogColumns\" class=\"d-flex\" slick-drop-list-item>\r\n\t\t\t\t<div style=\"width: 20px\"><input type=\"checkbox\" style=\"position: relative; top: 2px;\" [(ngModel)]=\"column.visible\" /></div>\r\n\t\t\t\t<div class=\"py-0 flex-fill\" style=\"text-align: left; cursor: ns-resize\" slick-drop-list-grab>{{column.title}}</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<slick-dialog-footer>\r\n\t\t<div style=\"margin-top: 10px;\" class=\"col-12 text-center mb-2 mt-1\">\r\n\t\t\t<button type=\"button\" (click)=\"onSaveColumns()\" class=\"btn btn-outline-primary mr-1\"><i class=\"far fa-save\"></i> Save</button> \r\n\t\t\t<button type=\"button\" class=\"btn btn-outline-danger\" (click)=\"onCancelColumns()\">Cancel</button>\r\n\t\t</div>\r\n\t</slick-dialog-footer>\r\n</slick-dialog>\r\n\r\n\r\n<slick-confirm-dialog #addNewFavoriteDialogRef width=\"300\">\r\n\t<label>Enter new favorite name</label>\r\n\t<input type=\"text\" class=\"form-control mx-3\" style=\"width: 250px\" [(ngModel)]=\"newFavoriteText\" />\r\n</slick-confirm-dialog>",
|
|
5339
5402
|
providers: [SlickGridService]
|
|
5340
5403
|
},] }
|
|
5341
5404
|
];
|
|
@@ -5351,6 +5414,7 @@ SlickGridComponent.propDecorators = {
|
|
|
5351
5414
|
bordered: [{ type: Input }],
|
|
5352
5415
|
striped: [{ type: Input }],
|
|
5353
5416
|
hover: [{ type: Input }],
|
|
5417
|
+
showingAllRecords: [{ type: Input }],
|
|
5354
5418
|
data: [{ type: Input }],
|
|
5355
5419
|
onRowSelected: [{ type: Output }],
|
|
5356
5420
|
onRowDoubleClick: [{ type: Output }],
|