@wizishop/img-manager 15.0.4 → 15.0.7
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 +11 -2
- package/fesm2015/wizishop-img-manager.mjs +38 -27
- package/fesm2015/wizishop-img-manager.mjs.map +1 -1
- package/fesm2020/wizishop-img-manager.mjs +38 -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.7.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,15 @@ class ImgManagerService {
|
|
|
206
206
|
return header;
|
|
207
207
|
}
|
|
208
208
|
getShopImgList(params) {
|
|
209
|
-
|
|
209
|
+
if (params && this.previousParams && this.previousParams.limit === params.limit
|
|
210
|
+
&& this.previousParams.page === params.page && this.shopImgList
|
|
211
|
+
&& this.previousParams["display_name:contains"] === params["display_name:contains"]) {
|
|
212
|
+
return of(this.shopImgList).pipe(delay(0));
|
|
213
|
+
}
|
|
214
|
+
return this.http.get(`${this.imgManagerRoute}/images`, this.getOptionsHeaders(params)).pipe(tap((shopImgList) => {
|
|
215
|
+
this.shopImgList = shopImgList;
|
|
216
|
+
this.previousParams = params;
|
|
217
|
+
}));
|
|
210
218
|
}
|
|
211
219
|
getShopTotalImgList(params) {
|
|
212
220
|
return this.http.get(`${this.imgManagerRoute}/total/image`, this.getOptionsHeaders(params));
|
|
@@ -911,7 +919,7 @@ class AbstractDebounceDirective {
|
|
|
911
919
|
}
|
|
912
920
|
ngOnInit() {
|
|
913
921
|
this.emitEvent$
|
|
914
|
-
.pipe(takeUntil(this.subscription$), debounceTime(this.debounceTime), distinctUntilChanged(), tap(value => this.emitChange(value)))
|
|
922
|
+
.pipe(takeUntil(this.subscription$), debounceTime(this.debounceTime), distinctUntilChanged(), tap$1(value => this.emitChange(value)))
|
|
915
923
|
.subscribe();
|
|
916
924
|
}
|
|
917
925
|
emitChange(value) {
|
|
@@ -2409,14 +2417,14 @@ class MosaicViewComponent extends ImagesActionHandler {
|
|
|
2409
2417
|
}
|
|
2410
2418
|
}
|
|
2411
2419
|
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=\"
|
|
2420
|
+
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
2421
|
listAnnimation
|
|
2414
2422
|
] });
|
|
2415
2423
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MosaicViewComponent, decorators: [{
|
|
2416
2424
|
type: Component,
|
|
2417
2425
|
args: [{ selector: 'mosaic-view', animations: [
|
|
2418
2426
|
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=\"
|
|
2427
|
+
], 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
2428
|
}], ctorParameters: function () { return [{ type: ImgManagerService }, { type: ImgSelectionService }, { type: i3.HttpClient }, { type: ImgCDNService }, { type: ImgEventService }, { type: AlertService }, { type: i7.TranslateService }, { type: ImgManagerConfigService }]; }, propDecorators: { tabDisplayed: [{
|
|
2421
2429
|
type: Input
|
|
2422
2430
|
}], fullSize: [{
|
|
@@ -3133,7 +3141,7 @@ class ImagesViewComponent {
|
|
|
3133
3141
|
this.nbImgToDelSelected = 0;
|
|
3134
3142
|
this.disable = false; // Use to disable action during server request
|
|
3135
3143
|
this.isLoading = true;
|
|
3136
|
-
this.
|
|
3144
|
+
this.isTotalRetrieved = false;
|
|
3137
3145
|
this.delListImgLoader = false;
|
|
3138
3146
|
this.initComponent = true;
|
|
3139
3147
|
this.failLoaded = false;
|
|
@@ -3337,7 +3345,7 @@ class ImagesViewComponent {
|
|
|
3337
3345
|
* Set a img list in order to fill properly all the line of images displayed in mosaic.
|
|
3338
3346
|
* Otherwise, the space-between css will do a bad display
|
|
3339
3347
|
*/
|
|
3340
|
-
|
|
3348
|
+
calculateNbImgFake(nbImgDisplayed) {
|
|
3341
3349
|
const nbImgPerLine = this.stateDisplayed === 'small' || this.tabDisplayed === 'img-upload' ? this.nbMaxImgPerLine : this.nbMinImgPerLine;
|
|
3342
3350
|
if (nbImgDisplayed % nbImgPerLine !== 0) {
|
|
3343
3351
|
this.nbFakeImg = nbImgPerLine - nbImgDisplayed % nbImgPerLine;
|
|
@@ -3408,35 +3416,38 @@ class ImagesViewComponent {
|
|
|
3408
3416
|
this.displayPexelsResults = false;
|
|
3409
3417
|
this.setParams();
|
|
3410
3418
|
this.refreshTotalImgList();
|
|
3411
|
-
this.imgManager.getShopImgList(this.params).pipe(take(1)).subscribe(
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3419
|
+
this.imgManager.getShopImgList(this.params).pipe(take(1)).subscribe({
|
|
3420
|
+
next: (data) => {
|
|
3421
|
+
this.initVariables(true);
|
|
3422
|
+
const nbImgDisplayed = data.data.length;
|
|
3423
|
+
this.calculateNbImgFake(nbImgDisplayed);
|
|
3424
|
+
this.picturesList = data.data;
|
|
3425
|
+
this.renamePictureService.setPicturesList(this.picturesList);
|
|
3426
|
+
this.selectImgSelected();
|
|
3427
|
+
this.length = this.isTotalRetrieved ? this.length : data.totalRecords;
|
|
3428
|
+
this.tableFilters.totalItems = this.isTotalRetrieved ? this.tableFilters.totalItems : data.totalRecords;
|
|
3429
|
+
this.tableFilters.itemsPerPage = this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage : this.pageSize;
|
|
3430
|
+
// Display Pexels if no result
|
|
3431
|
+
if (data.totalRecords === 0) {
|
|
3432
|
+
this.displayPexelsLib();
|
|
3433
|
+
}
|
|
3434
|
+
},
|
|
3435
|
+
error: error => {
|
|
3436
|
+
this.alertService.openAlert(this.errorGetAllImg);
|
|
3437
|
+
this.initVariables(false);
|
|
3424
3438
|
}
|
|
3425
|
-
}, error => {
|
|
3426
|
-
this.alertService.openAlert(this.errorGetAllImg);
|
|
3427
|
-
this.initVariables(false);
|
|
3428
3439
|
});
|
|
3429
3440
|
}
|
|
3430
3441
|
refreshTotalImgList() {
|
|
3431
3442
|
const searchValue = this.tableFilters.searchValue;
|
|
3432
|
-
if (this.
|
|
3443
|
+
if (this.isTotalRetrieved && searchValue === this.previousSearchValue) {
|
|
3433
3444
|
// Keep current total result
|
|
3434
3445
|
return;
|
|
3435
3446
|
}
|
|
3436
|
-
this.
|
|
3447
|
+
this.isTotalRetrieved = false;
|
|
3437
3448
|
this.imgManager.getShopTotalImgList(this.params).pipe(take(1)).subscribe((data) => {
|
|
3438
3449
|
this.previousSearchValue = searchValue;
|
|
3439
|
-
this.
|
|
3450
|
+
this.isTotalRetrieved = true;
|
|
3440
3451
|
this.length = data.totalRecords;
|
|
3441
3452
|
this.tableFilters.totalItems = data.totalRecords;
|
|
3442
3453
|
}, error => {
|