@wizishop/img-manager 15.0.4 → 15.0.6
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/esm2020/lib/components/images-view/images-view.component.mjs +25 -22
- package/esm2020/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +3 -3
- package/esm2020/lib/services/img-manager.service.mjs +9 -2
- package/fesm2015/wizishop-img-manager.mjs +36 -27
- package/fesm2015/wizishop-img-manager.mjs.map +1 -1
- package/fesm2020/wizishop-img-manager.mjs +36 -27
- package/fesm2020/wizishop-img-manager.mjs.map +1 -1
- package/lib/components/images-view/images-view.component.d.ts +2 -2
- package/lib/services/img-manager.service.d.ts +4 -2
- package/package.json +1 -1
- package/wizishop-img-manager-15.0.6.tgz +0 -0
- package/wizishop-img-manager-15.0.4.tgz +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Component, ViewEncapsulation, Input, EventEmitter, Directive, Output, HostBinding, HostListener, ViewChild, Pipe, Inject, NgModule } from '@angular/core';
|
|
3
|
-
import { ReplaySubject, Observable, Subject, BehaviorSubject, forkJoin } from 'rxjs';
|
|
3
|
+
import { ReplaySubject, Observable, of, delay, tap, Subject, BehaviorSubject, forkJoin } from 'rxjs';
|
|
4
4
|
import * as i3 from '@angular/common/http';
|
|
5
5
|
import { HttpParams, HttpHeaders, HttpClientModule } from '@angular/common/http';
|
|
6
|
-
import { take, map, takeUntil, debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';
|
|
6
|
+
import { take, map, takeUntil, debounceTime, distinctUntilChanged, tap as tap$1 } from 'rxjs/operators';
|
|
7
7
|
import * as i1 from '@wizishop/ng-wizi-bulma';
|
|
8
8
|
import { NwbAllModule } from '@wizishop/ng-wizi-bulma';
|
|
9
9
|
import * as i7 from '@ngx-translate/core';
|
|
@@ -206,7 +206,13 @@ class ImgManagerService {
|
|
|
206
206
|
return header;
|
|
207
207
|
}
|
|
208
208
|
getShopImgList(params) {
|
|
209
|
-
|
|
209
|
+
if (params && this.previousParams && this.previousParams.limit === params.limit && this.previousParams.page === params.page && this.shopImgList) {
|
|
210
|
+
return of(this.shopImgList).pipe(delay(0));
|
|
211
|
+
}
|
|
212
|
+
return this.http.get(`${this.imgManagerRoute}/images`, this.getOptionsHeaders(params)).pipe(tap((shopImgList) => {
|
|
213
|
+
this.shopImgList = shopImgList;
|
|
214
|
+
this.previousParams = params;
|
|
215
|
+
}));
|
|
210
216
|
}
|
|
211
217
|
getShopTotalImgList(params) {
|
|
212
218
|
return this.http.get(`${this.imgManagerRoute}/total/image`, this.getOptionsHeaders(params));
|
|
@@ -911,7 +917,7 @@ class AbstractDebounceDirective {
|
|
|
911
917
|
}
|
|
912
918
|
ngOnInit() {
|
|
913
919
|
this.emitEvent$
|
|
914
|
-
.pipe(takeUntil(this.subscription$), debounceTime(this.debounceTime), distinctUntilChanged(), tap(value => this.emitChange(value)))
|
|
920
|
+
.pipe(takeUntil(this.subscription$), debounceTime(this.debounceTime), distinctUntilChanged(), tap$1(value => this.emitChange(value)))
|
|
915
921
|
.subscribe();
|
|
916
922
|
}
|
|
917
923
|
emitChange(value) {
|
|
@@ -2409,14 +2415,14 @@ class MosaicViewComponent extends ImagesActionHandler {
|
|
|
2409
2415
|
}
|
|
2410
2416
|
}
|
|
2411
2417
|
MosaicViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MosaicViewComponent, deps: [{ token: ImgManagerService }, { token: ImgSelectionService }, { token: i3.HttpClient }, { token: ImgCDNService }, { token: ImgEventService }, { token: AlertService }, { token: i7.TranslateService }, { token: ImgManagerConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2412
|
-
MosaicViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MosaicViewComponent, selector: "mosaic-view", inputs: { tabDisplayed: "tabDisplayed", fullSize: "fullSize", nbFakeImg: "nbFakeImg" }, outputs: { switchDisplayWindow: "switchDisplayWindow" }, usesInheritance: true, ngImport: i0, template: "<div class=\"mosaic\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small', 'mosaic--displayPexelsImg': displayPexelsResults}\">\n <!-- Search section -->\n <div\n class=\"mosaic__search\"\n [ngClass]=\"{'mosaic__search--small': stateDisplayed === 'small'}\"\n *ngIf=\"tabDisplayed !== 'img-upload'\">\n <wz-input-search\n [(ngModel)]=\"tableFilters.searchValue\"\n (changeDebounced)=\"onSearchChange($event)\"\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\n [smallPadding]=\"stateDisplayed === 'small'\"\n ></wz-input-search>\n </div>\n\n <!-- Cards section -->\n <div\n class=\"mosaic__container__cards\"\n [ngClass]=\"{'mosaic__container__cards--padding': stateDisplayed !== 'window'}\"\n [@listAnimation]=\"picturesList.length\"\n *ngIf=\"
|
|
2418
|
+
MosaicViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MosaicViewComponent, selector: "mosaic-view", inputs: { tabDisplayed: "tabDisplayed", fullSize: "fullSize", nbFakeImg: "nbFakeImg" }, outputs: { switchDisplayWindow: "switchDisplayWindow" }, usesInheritance: true, ngImport: i0, template: "<div class=\"mosaic\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small', 'mosaic--displayPexelsImg': displayPexelsResults}\">\n <!-- Search section -->\n <div\n class=\"mosaic__search\"\n [ngClass]=\"{'mosaic__search--small': stateDisplayed === 'small'}\"\n *ngIf=\"tabDisplayed !== 'img-upload'\">\n <wz-input-search\n [(ngModel)]=\"tableFilters.searchValue\"\n (changeDebounced)=\"onSearchChange($event)\"\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\n [smallPadding]=\"stateDisplayed === 'small'\"\n ></wz-input-search>\n </div>\n\n <!-- Cards section -->\n <div\n class=\"mosaic__container__cards\"\n [ngClass]=\"{'mosaic__container__cards--padding': stateDisplayed !== 'window'}\"\n [@listAnimation]=\"picturesList.length\"\n *ngIf=\"!isLoading && !displayPexelsResults\"\n >\n <img-card\n *ngFor=\"let picture of picturesList; let index = index;\"\n [picture]=\"picture\"\n [stateDisplayed]=\"stateDisplayed\"\n [tabDisplayed]=\"tabDisplayed\"\n [disable]=\"disable\"\n (toggleImgSelected)=\"onToggleSelectImg(index)\"\n (pictureNameChange)=\"onCardRenamePicture($event)\"\n (switchDisplayWindow)=\"switchDisplayWindowCard()\"\n [fullSize]=\"fullSize\"\n ></img-card>\n <div\n *ngFor=\"let fakeImg of nbFakeImg | numberToArray\"\n class=\"mosaic__container__cards__fakeImg\"\n [ngClass]=\"{'mosaic__container__cards__fakeImg--smallFakeImg': stateDisplayed === 'small' || tabDisplayed === 'img-upload'}\">\n </div>\n </div>\n <!-- Loader section -->\n <div class=\"mosaic__container__loader\" *ngIf=\"isLoading\">\n <wz-loader [small]=\"true\"></wz-loader>\n </div>\n\n <!-- Pagination section -->\n <div class=\"mosaic__pagination\" *ngIf=\"picturesList.length && tabDisplayed !== 'img-upload' && !displayPexelsResults\" >\n <wz-pagination\n [pagination]=\"tableFilters\"\n (pageChange)=\"onFiltersChange()\"\n >\n </wz-pagination>\n </div>\n\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ImgCardComponent, selector: "img-card", inputs: ["tabDisplayed", "fullSize", "picture", "index"], outputs: ["toggleImgSelected", "switchDisplayWindow"] }, { kind: "component", type: LoaderComponent, selector: "wz-loader", inputs: ["text", "small", "position"] }, { kind: "component", type: InputSearchComponent, selector: "wz-input-search", inputs: ["placeholder", "smallPadding", "id"], outputs: ["changeDebounced"] }, { kind: "component", type: PaginationComponent, selector: "wz-pagination", inputs: ["pagination"], outputs: ["pageChange"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: NumberToArray, name: "numberToArray" }], animations: [
|
|
2413
2419
|
listAnnimation
|
|
2414
2420
|
] });
|
|
2415
2421
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MosaicViewComponent, decorators: [{
|
|
2416
2422
|
type: Component,
|
|
2417
2423
|
args: [{ selector: 'mosaic-view', animations: [
|
|
2418
2424
|
listAnnimation
|
|
2419
|
-
], template: "<div class=\"mosaic\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small', 'mosaic--displayPexelsImg': displayPexelsResults}\">\n <!-- Search section -->\n <div\n class=\"mosaic__search\"\n [ngClass]=\"{'mosaic__search--small': stateDisplayed === 'small'}\"\n *ngIf=\"tabDisplayed !== 'img-upload'\">\n <wz-input-search\n [(ngModel)]=\"tableFilters.searchValue\"\n (changeDebounced)=\"onSearchChange($event)\"\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\n [smallPadding]=\"stateDisplayed === 'small'\"\n ></wz-input-search>\n </div>\n\n <!-- Cards section -->\n <div\n class=\"mosaic__container__cards\"\n [ngClass]=\"{'mosaic__container__cards--padding': stateDisplayed !== 'window'}\"\n [@listAnimation]=\"picturesList.length\"\n *ngIf=\"
|
|
2425
|
+
], template: "<div class=\"mosaic\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small', 'mosaic--displayPexelsImg': displayPexelsResults}\">\n <!-- Search section -->\n <div\n class=\"mosaic__search\"\n [ngClass]=\"{'mosaic__search--small': stateDisplayed === 'small'}\"\n *ngIf=\"tabDisplayed !== 'img-upload'\">\n <wz-input-search\n [(ngModel)]=\"tableFilters.searchValue\"\n (changeDebounced)=\"onSearchChange($event)\"\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\n [smallPadding]=\"stateDisplayed === 'small'\"\n ></wz-input-search>\n </div>\n\n <!-- Cards section -->\n <div\n class=\"mosaic__container__cards\"\n [ngClass]=\"{'mosaic__container__cards--padding': stateDisplayed !== 'window'}\"\n [@listAnimation]=\"picturesList.length\"\n *ngIf=\"!isLoading && !displayPexelsResults\"\n >\n <img-card\n *ngFor=\"let picture of picturesList; let index = index;\"\n [picture]=\"picture\"\n [stateDisplayed]=\"stateDisplayed\"\n [tabDisplayed]=\"tabDisplayed\"\n [disable]=\"disable\"\n (toggleImgSelected)=\"onToggleSelectImg(index)\"\n (pictureNameChange)=\"onCardRenamePicture($event)\"\n (switchDisplayWindow)=\"switchDisplayWindowCard()\"\n [fullSize]=\"fullSize\"\n ></img-card>\n <div\n *ngFor=\"let fakeImg of nbFakeImg | numberToArray\"\n class=\"mosaic__container__cards__fakeImg\"\n [ngClass]=\"{'mosaic__container__cards__fakeImg--smallFakeImg': stateDisplayed === 'small' || tabDisplayed === 'img-upload'}\">\n </div>\n </div>\n <!-- Loader section -->\n <div class=\"mosaic__container__loader\" *ngIf=\"isLoading\">\n <wz-loader [small]=\"true\"></wz-loader>\n </div>\n\n <!-- Pagination section -->\n <div class=\"mosaic__pagination\" *ngIf=\"picturesList.length && tabDisplayed !== 'img-upload' && !displayPexelsResults\" >\n <wz-pagination\n [pagination]=\"tableFilters\"\n (pageChange)=\"onFiltersChange()\"\n >\n </wz-pagination>\n </div>\n\n</div>\n" }]
|
|
2420
2426
|
}], ctorParameters: function () { return [{ type: ImgManagerService }, { type: ImgSelectionService }, { type: i3.HttpClient }, { type: ImgCDNService }, { type: ImgEventService }, { type: AlertService }, { type: i7.TranslateService }, { type: ImgManagerConfigService }]; }, propDecorators: { tabDisplayed: [{
|
|
2421
2427
|
type: Input
|
|
2422
2428
|
}], fullSize: [{
|
|
@@ -3133,7 +3139,7 @@ class ImagesViewComponent {
|
|
|
3133
3139
|
this.nbImgToDelSelected = 0;
|
|
3134
3140
|
this.disable = false; // Use to disable action during server request
|
|
3135
3141
|
this.isLoading = true;
|
|
3136
|
-
this.
|
|
3142
|
+
this.isTotalRetrieved = false;
|
|
3137
3143
|
this.delListImgLoader = false;
|
|
3138
3144
|
this.initComponent = true;
|
|
3139
3145
|
this.failLoaded = false;
|
|
@@ -3337,7 +3343,7 @@ class ImagesViewComponent {
|
|
|
3337
3343
|
* Set a img list in order to fill properly all the line of images displayed in mosaic.
|
|
3338
3344
|
* Otherwise, the space-between css will do a bad display
|
|
3339
3345
|
*/
|
|
3340
|
-
|
|
3346
|
+
calculateNbImgFake(nbImgDisplayed) {
|
|
3341
3347
|
const nbImgPerLine = this.stateDisplayed === 'small' || this.tabDisplayed === 'img-upload' ? this.nbMaxImgPerLine : this.nbMinImgPerLine;
|
|
3342
3348
|
if (nbImgDisplayed % nbImgPerLine !== 0) {
|
|
3343
3349
|
this.nbFakeImg = nbImgPerLine - nbImgDisplayed % nbImgPerLine;
|
|
@@ -3408,35 +3414,38 @@ class ImagesViewComponent {
|
|
|
3408
3414
|
this.displayPexelsResults = false;
|
|
3409
3415
|
this.setParams();
|
|
3410
3416
|
this.refreshTotalImgList();
|
|
3411
|
-
this.imgManager.getShopImgList(this.params).pipe(take(1)).subscribe(
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3417
|
+
this.imgManager.getShopImgList(this.params).pipe(take(1)).subscribe({
|
|
3418
|
+
next: (data) => {
|
|
3419
|
+
this.initVariables(true);
|
|
3420
|
+
const nbImgDisplayed = data.data.length;
|
|
3421
|
+
this.calculateNbImgFake(nbImgDisplayed);
|
|
3422
|
+
this.picturesList = data.data;
|
|
3423
|
+
this.renamePictureService.setPicturesList(this.picturesList);
|
|
3424
|
+
this.selectImgSelected();
|
|
3425
|
+
this.length = this.isTotalRetrieved ? this.length : data.totalRecords;
|
|
3426
|
+
this.tableFilters.totalItems = this.isTotalRetrieved ? this.tableFilters.totalItems : data.totalRecords;
|
|
3427
|
+
this.tableFilters.itemsPerPage = this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage : this.pageSize;
|
|
3428
|
+
// Display Pexels if no result
|
|
3429
|
+
if (data.totalRecords === 0) {
|
|
3430
|
+
this.displayPexelsLib();
|
|
3431
|
+
}
|
|
3432
|
+
},
|
|
3433
|
+
error: error => {
|
|
3434
|
+
this.alertService.openAlert(this.errorGetAllImg);
|
|
3435
|
+
this.initVariables(false);
|
|
3424
3436
|
}
|
|
3425
|
-
}, error => {
|
|
3426
|
-
this.alertService.openAlert(this.errorGetAllImg);
|
|
3427
|
-
this.initVariables(false);
|
|
3428
3437
|
});
|
|
3429
3438
|
}
|
|
3430
3439
|
refreshTotalImgList() {
|
|
3431
3440
|
const searchValue = this.tableFilters.searchValue;
|
|
3432
|
-
if (this.
|
|
3441
|
+
if (this.isTotalRetrieved && searchValue === this.previousSearchValue) {
|
|
3433
3442
|
// Keep current total result
|
|
3434
3443
|
return;
|
|
3435
3444
|
}
|
|
3436
|
-
this.
|
|
3445
|
+
this.isTotalRetrieved = false;
|
|
3437
3446
|
this.imgManager.getShopTotalImgList(this.params).pipe(take(1)).subscribe((data) => {
|
|
3438
3447
|
this.previousSearchValue = searchValue;
|
|
3439
|
-
this.
|
|
3448
|
+
this.isTotalRetrieved = true;
|
|
3440
3449
|
this.length = data.totalRecords;
|
|
3441
3450
|
this.tableFilters.totalItems = data.totalRecords;
|
|
3442
3451
|
}, error => {
|