@wizishop/img-manager-webelement 15.2.52 → 18.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/{esm2020 → esm2022}/lib/environments/environment.mjs +1 -1
- package/esm2022/lib/img-manager-webelement.component.mjs +135 -0
- package/esm2022/lib/img-manager-webelement.module.mjs +50 -0
- package/{esm2020 → esm2022}/lib/services/auth-credentials.service.mjs +4 -4
- package/esm2022/lib/services/event.service.mjs +40 -0
- package/esm2022/lib/services/fiche_products.service.mjs +253 -0
- package/esm2022/lib/services/webelement-image-manager-api.config.mjs +89 -0
- package/{esm2020 → esm2022}/public-api.mjs +1 -1
- package/{fesm2020 → fesm2022}/wizishop-img-manager-webelement.mjs +104 -97
- package/fesm2022/wizishop-img-manager-webelement.mjs.map +1 -0
- package/img-manager-webelement.scss +1 -0
- package/lib/img-manager-webelement.component.d.ts +2 -2
- package/lib/img-manager-webelement.module.d.ts +0 -3
- package/package.json +20 -25
- package/esm2020/lib/img-manager-webelement.component.mjs +0 -122
- package/esm2020/lib/img-manager-webelement.module.mjs +0 -58
- package/esm2020/lib/services/event.service.mjs +0 -37
- package/esm2020/lib/services/fiche_products.service.mjs +0 -242
- package/esm2020/lib/services/icon-webelement.service.mjs +0 -17
- package/esm2020/lib/services/webelement-image-manager-api.config.mjs +0 -88
- package/fesm2015/wizishop-img-manager-webelement.mjs +0 -660
- package/fesm2015/wizishop-img-manager-webelement.mjs.map +0 -1
- package/fesm2020/wizishop-img-manager-webelement.mjs.map +0 -1
- package/img-manager-webelement.css +0 -1
- package/lib/services/icon-webelement.service.d.ts +0 -6
- /package/{esm2020 → esm2022}/wizishop-img-manager-webelement.mjs +0 -0
|
@@ -19,8 +19,8 @@ export declare class ImgManagerWebElementComponent {
|
|
|
19
19
|
loading: boolean;
|
|
20
20
|
imgExternalConfig: ImgManagerConfigDto;
|
|
21
21
|
imgManagerDisplayConfig: ImgManagerDisplayConfig;
|
|
22
|
-
pageFicheProductConfig:
|
|
23
|
-
pageEventConfig:
|
|
22
|
+
pageFicheProductConfig: any;
|
|
23
|
+
pageEventConfig: any;
|
|
24
24
|
isPhotosTab: boolean;
|
|
25
25
|
subscriptions: Subscription[];
|
|
26
26
|
constructor(translateService: TranslateService, canvaService: CanvaService, ficheProductService: FicheProductService, authCredentialsService: AuthCredentialsService, eventService: EventService, imgManagerService: ImgManagerService, imgSelectionService: ImgSelectionService);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { IconWebelementService } from './services/icon-webelement.service';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
import * as i1 from "./img-manager-webelement.component";
|
|
4
3
|
import * as i2 from "@angular/common";
|
|
@@ -6,8 +5,6 @@ import * as i3 from "@angular/common/http";
|
|
|
6
5
|
import * as i4 from "@wizishop/img-manager";
|
|
7
6
|
import * as i5 from "@ngx-translate/core";
|
|
8
7
|
export declare class ImgManagerWebElementModule {
|
|
9
|
-
private iconWebelementService;
|
|
10
|
-
constructor(iconWebelementService: IconWebelementService);
|
|
11
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<ImgManagerWebElementModule, never>;
|
|
12
9
|
static ɵmod: i0.ɵɵNgModuleDeclaration<ImgManagerWebElementModule, [typeof i1.ImgManagerWebElementComponent], [typeof i2.CommonModule, typeof i3.HttpClientModule, typeof i4.WzImgManagerModule, typeof i5.TranslateModule], [typeof i1.ImgManagerWebElementComponent]>;
|
|
13
10
|
static ɵinj: i0.ɵɵInjectorDeclaration<ImgManagerWebElementModule>;
|
package/package.json
CHANGED
|
@@ -1,39 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wizishop/img-manager-webelement",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "18.2.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/animations": "~
|
|
6
|
-
"@angular/cdk": "^
|
|
7
|
-
"@angular/common": "~
|
|
8
|
-
"@angular/core": "~
|
|
9
|
-
"@angular/forms": "~
|
|
10
|
-
"@angular/platform-browser": "~
|
|
11
|
-
"@angular/platform-browser-dynamic": "~
|
|
12
|
-
"@angular/router": "~
|
|
5
|
+
"@angular/animations": "~18.2.3",
|
|
6
|
+
"@angular/cdk": "^18.2.3",
|
|
7
|
+
"@angular/common": "~18.2.3",
|
|
8
|
+
"@angular/core": "~18.2.3",
|
|
9
|
+
"@angular/forms": "~18.2.3",
|
|
10
|
+
"@angular/platform-browser": "~18.2.3",
|
|
11
|
+
"@angular/platform-browser-dynamic": "~18.2.3",
|
|
12
|
+
"@angular/router": "~18.2.3",
|
|
13
13
|
"@ngx-translate/core": "^14.0.0",
|
|
14
14
|
"@ngx-translate/http-loader": "^7.0.0",
|
|
15
|
-
"@wizishop/img-manager": "^
|
|
16
|
-
"@wizishop/ng-wizi-bulma": "^15.0.3",
|
|
15
|
+
"@wizishop/img-manager": "^18.2.2-beta",
|
|
17
16
|
"@wizishop/ng-web-storages": "0.0.2",
|
|
17
|
+
"@wizishop/ng-wizi-bulma": "^17.0.0",
|
|
18
18
|
"bourbon": "^7.0.0",
|
|
19
19
|
"bulma": "^0.9.4",
|
|
20
20
|
"bulma-checkradio": "^2.1.3",
|
|
21
21
|
"bulma-extensions": "^6.2.7",
|
|
22
|
-
"bundle-scss": "^1.4
|
|
22
|
+
"bundle-scss": "^1.5.4",
|
|
23
23
|
"include-media": "^1.4.10",
|
|
24
24
|
"ngx-image-cropper": "^6.3.2",
|
|
25
|
-
"ngx-scrollbar": "^
|
|
25
|
+
"ngx-scrollbar": "^11.0.0",
|
|
26
|
+
"node-sass": "^9.0.0",
|
|
26
27
|
"nodemon": "^2.0.20",
|
|
27
28
|
"rxjs": "^7.8.0",
|
|
28
|
-
"sass": "^1.
|
|
29
|
+
"sass": "^1.79.4",
|
|
29
30
|
"sass-flex-mixin": "^1.0.3",
|
|
30
|
-
"zone.js": "^0.
|
|
31
|
+
"zone.js": "^0.14.10"
|
|
31
32
|
},
|
|
32
|
-
"module": "
|
|
33
|
-
"es2020": "fesm2020/wizishop-img-manager-webelement.mjs",
|
|
34
|
-
"esm2020": "esm2020/wizishop-img-manager-webelement.mjs",
|
|
35
|
-
"fesm2020": "fesm2020/wizishop-img-manager-webelement.mjs",
|
|
36
|
-
"fesm2015": "fesm2015/wizishop-img-manager-webelement.mjs",
|
|
33
|
+
"module": "fesm2022/wizishop-img-manager-webelement.mjs",
|
|
37
34
|
"typings": "index.d.ts",
|
|
38
35
|
"exports": {
|
|
39
36
|
"./package.json": {
|
|
@@ -41,11 +38,9 @@
|
|
|
41
38
|
},
|
|
42
39
|
".": {
|
|
43
40
|
"types": "./index.d.ts",
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"node": "./fesm2015/wizishop-img-manager-webelement.mjs",
|
|
48
|
-
"default": "./fesm2020/wizishop-img-manager-webelement.mjs"
|
|
41
|
+
"esm2022": "./esm2022/wizishop-img-manager-webelement.mjs",
|
|
42
|
+
"esm": "./esm2022/wizishop-img-manager-webelement.mjs",
|
|
43
|
+
"default": "./fesm2022/wizishop-img-manager-webelement.mjs"
|
|
49
44
|
}
|
|
50
45
|
},
|
|
51
46
|
"sideEffects": false,
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { environment } from './environments/environment';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@ngx-translate/core";
|
|
5
|
-
import * as i2 from "@wizishop/img-manager";
|
|
6
|
-
import * as i3 from "./services/fiche_products.service";
|
|
7
|
-
import * as i4 from "./services/auth-credentials.service";
|
|
8
|
-
import * as i5 from "./services/event.service";
|
|
9
|
-
import * as i6 from "@angular/common";
|
|
10
|
-
export class ImgManagerWebElementComponent {
|
|
11
|
-
constructor(translateService, canvaService, ficheProductService, authCredentialsService, eventService, imgManagerService, imgSelectionService) {
|
|
12
|
-
this.translateService = translateService;
|
|
13
|
-
this.canvaService = canvaService;
|
|
14
|
-
this.ficheProductService = ficheProductService;
|
|
15
|
-
this.authCredentialsService = authCredentialsService;
|
|
16
|
-
this.eventService = eventService;
|
|
17
|
-
this.imgManagerService = imgManagerService;
|
|
18
|
-
this.imgSelectionService = imgSelectionService;
|
|
19
|
-
// shop config
|
|
20
|
-
this.id_shop = this.authCredentialsService.getSync().data.shop_id;
|
|
21
|
-
this.token_shop = this.authCredentialsService.getSync().data.token;
|
|
22
|
-
// img manger config
|
|
23
|
-
this.openImgManager = false;
|
|
24
|
-
this.loading = true;
|
|
25
|
-
this.pageFicheProductConfig = this.imgManagerService.getImgManagerDisplayConfig("fiche-product");
|
|
26
|
-
this.pageEventConfig = this.imgManagerService.getImgManagerDisplayConfig("wizi-block");
|
|
27
|
-
// fiche product config
|
|
28
|
-
this.isPhotosTab = !!environment.isPhotosTab;
|
|
29
|
-
this.subscriptions = [];
|
|
30
|
-
}
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
this.loading = true;
|
|
33
|
-
this.setCurrentLanguage();
|
|
34
|
-
// Search on which page is display the img manger
|
|
35
|
-
this.setDisplayedPageConfig();
|
|
36
|
-
this.loading = false;
|
|
37
|
-
this.initVariables(this.authCredentialsService.getSync().data);
|
|
38
|
-
// Fiche product page
|
|
39
|
-
if (this.imgManagerDisplayConfig.pageficheProduct) {
|
|
40
|
-
this.setFicheProductPage();
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
this.setPageWithEvents();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
initVariables(authCredentials) {
|
|
47
|
-
if (!authCredentials) {
|
|
48
|
-
if (environment.isWizishopcom) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
// Run on local Server
|
|
52
|
-
this.imgManagerDisplayConfig = this.pageFicheProductConfig;
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
setFicheProductPage() {
|
|
57
|
-
this.ficheProductService.setApiConfig();
|
|
58
|
-
this.handleFicheProductTab(); // Display different img manager config according to the tab
|
|
59
|
-
this.closeImgManagerOnSwitchingTab();
|
|
60
|
-
this.subscribePageAskForImg(); // Use for images in variations tab
|
|
61
|
-
this.ficheProductService.updateImgSelectionOnChange();
|
|
62
|
-
}
|
|
63
|
-
setPageWithEvents() {
|
|
64
|
-
this.subscribePageAskForImg();
|
|
65
|
-
// Send img selected
|
|
66
|
-
const subImgSelection = this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {
|
|
67
|
-
if (imgSelectionList && imgSelectionList.length) {
|
|
68
|
-
this.eventService.sendImgSelectedToPage(imgSelectionList[0]);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
this.subscriptions.push(subImgSelection);
|
|
72
|
-
}
|
|
73
|
-
subscribePageAskForImg() {
|
|
74
|
-
// Listen to page editor ask for img event
|
|
75
|
-
const subAskForImg = this.eventService.pageAskForImg().subscribe(data => {
|
|
76
|
-
// Retrieve which img manager send the event
|
|
77
|
-
const emitter = data && data["detail"] ? data["detail"]["from"] : null;
|
|
78
|
-
this.eventService.setEmitter(emitter);
|
|
79
|
-
this.imgSelectionService.setImgSelection([]);
|
|
80
|
-
this.open();
|
|
81
|
-
});
|
|
82
|
-
this.subscriptions.push(subAskForImg);
|
|
83
|
-
}
|
|
84
|
-
open() {
|
|
85
|
-
this.openImgManager = true;
|
|
86
|
-
}
|
|
87
|
-
onImgManagerClosed() {
|
|
88
|
-
// Close img manager
|
|
89
|
-
this.openImgManager = false;
|
|
90
|
-
}
|
|
91
|
-
setCurrentLanguage() {
|
|
92
|
-
const matches = window.location.pathname.match(/^\/(\w+)\//);
|
|
93
|
-
this.translateService.use(matches && matches[1] ? matches[1] : 'fr');
|
|
94
|
-
}
|
|
95
|
-
setDisplayedPageConfig() {
|
|
96
|
-
const isFicheProductPage = /\/products\/(\d+\/edit|create)/.test(window.location.pathname);
|
|
97
|
-
this.imgManagerDisplayConfig = isFicheProductPage ? this.pageFicheProductConfig : this.pageEventConfig;
|
|
98
|
-
}
|
|
99
|
-
handleFicheProductTab() {
|
|
100
|
-
const tabsSub = this.ficheProductService.handleTabs().subscribe(isPhotosTab => {
|
|
101
|
-
this.imgManagerDisplayConfig = isPhotosTab ? this.pageFicheProductConfig : this.pageEventConfig;
|
|
102
|
-
this.isPhotosTab = isPhotosTab;
|
|
103
|
-
});
|
|
104
|
-
this.subscriptions.push(tabsSub);
|
|
105
|
-
}
|
|
106
|
-
closeImgManagerOnSwitchingTab() {
|
|
107
|
-
const tabsCloseSub = this.ficheProductService.switchTabs().subscribe(data => {
|
|
108
|
-
this.openImgManager = false;
|
|
109
|
-
});
|
|
110
|
-
this.subscriptions.push(tabsCloseSub);
|
|
111
|
-
}
|
|
112
|
-
ngOnDestroy() {
|
|
113
|
-
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
ImgManagerWebElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementComponent, deps: [{ token: i1.TranslateService }, { token: i2.CanvaService }, { token: i3.FicheProductService }, { token: i4.AuthCredentialsService }, { token: i5.EventService }, { token: i2.ImgManagerService }, { token: i2.ImgSelectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
117
|
-
ImgManagerWebElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ImgManagerWebElementComponent, selector: "img-manager-webelement", ngImport: i0, template: "<div class=\"info-bulle\">\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\n\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\n\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\n </p>\n\n <div class=\"imgManagerBox\">\n <wz-img-manager\n #wzImgManager\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\n (imgManagerClosed)=\"onImgManagerClosed()\">\n </wz-img-manager>\n </div>\n </ng-container>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.WzImgManagerComponent, selector: "wz-img-manager", inputs: ["stateDisplayed", "showSelection", "forceToOpenCanva", "multipleImgMode", "showImgManagerModule"], outputs: ["imgManagerClosed", "imgSelectionChange", "imageUploaded"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementComponent, decorators: [{
|
|
119
|
-
type: Component,
|
|
120
|
-
args: [{ selector: 'img-manager-webelement', template: "<div class=\"info-bulle\">\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\n\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\n\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\n </p>\n\n <div class=\"imgManagerBox\">\n <wz-img-manager\n #wzImgManager\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\n (imgManagerClosed)=\"onImgManagerClosed()\">\n </wz-img-manager>\n </div>\n </ng-container>\n</div>" }]
|
|
121
|
-
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.CanvaService }, { type: i3.FicheProductService }, { type: i4.AuthCredentialsService }, { type: i5.EventService }, { type: i2.ImgManagerService }, { type: i2.ImgSelectionService }]; } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFRekQsTUFBTSxPQUFPLDZCQUE2QjtJQWtCeEMsWUFDVSxnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLHNCQUE4QyxFQUM5QyxZQUEwQixFQUMxQixpQkFBb0MsRUFDcEMsbUJBQXdDO1FBTnhDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXhCbEQsY0FBYztRQUNkLFlBQU8sR0FBVyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyRSxlQUFVLEdBQVcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFdEUsb0JBQW9CO1FBQ3BCLG1CQUFj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TCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLE1BQU0sWUFBWSxHQUNoQixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OzBIQWxJVSw2QkFBNkI7OEdBQTdCLDZCQUE2Qiw4RENkMUMsaWxDQXdCTTsyRkRWTyw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0Usd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpY2hlUHJvZHVjdFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ZpY2hlX3Byb2R1Y3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aENyZWRlbnRpYWxzLCBBdXRoQ3JlZGVudGlhbHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hdXRoLWNyZWRlbnRpYWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSW1nU2VsZWN0aW9uU2VydmljZSwgSW1nTWFuYWdlckNvbmZpZ0R0bywgSW1nTWFuYWdlckRpc3BsYXlDb25maWcsIENhbnZhU2VydmljZSwgSW1nTWFuYWdlclNlcnZpY2UgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbWctbWFuYWdlci13ZWJlbGVtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbWctbWFuYWdlci13ZWJlbGVtZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEltZ01hbmFnZXJXZWJFbGVtZW50Q29tcG9uZW50IHtcbiAgLy8gc2hvcCBjb25maWdcbiAgaWRfc2hvcDogbnVtYmVyID0gdGhpcy5hdXRoQ3JlZGVudGlhbHNTZXJ2aWNlLmdldFN5bmMoKS5kYXRhLnNob3BfaWQ7XG4gIHRva2VuX3Nob3A6IHN0cmluZyA9IHRoaXMuYXV0aENyZWRlbnRpYWxzU2VydmljZS5nZXRTeW5jKCkuZGF0YS50b2tlbjtcblxuICAvLyBpbWcgbWFuZ2VyIGNvbmZpZ1xuICBvcGVuSW1nTWFuYWdlcjpib29sZWFuID0gZmFsc2U7XG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBpbWdFeHRlcm5hbENvbmZpZzogSW1nTWFuYWdlckNvbmZpZ0R0bztcbiAgaW1nTWFuYWdlckRpc3BsYXlDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnO1xuICBwYWdlRmljaGVQcm9kdWN0Q29uZmlnID0gdGhpcy5pbWdNYW5hZ2VyU2VydmljZS5nZXRJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyhcImZpY2hlLXByb2R1Y3RcIik7XG4gIHBhZ2VFdmVudENvbmZpZyA9IHRoaXMuaW1nTWFuYWdlclNlcnZpY2UuZ2V0SW1nTWFuYWdlckRpc3BsYXlDb25maWcoXCJ3aXppLWJsb2NrXCIpO1xuXG4gIC8vIGZpY2hlIHByb2R1Y3QgY29uZmlnXG4gIGlzUGhvdG9zVGFiOiBib29sZWFuID0gISFlbnZpcm9ubWVudC5pc1Bob3Rvc1RhYjtcblxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNhbnZhU2VydmljZTogQ2FudmFTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmljaGVQcm9kdWN0U2VydmljZTogRmljaGVQcm9kdWN0U2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhDcmVkZW50aWFsc1NlcnZpY2U6IEF1dGhDcmVkZW50aWFsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGltZ01hbmFnZXJTZXJ2aWNlOiBJbWdNYW5hZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2VcbiAgKXt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRoaXMuc2V0Q3VycmVudExhbmd1YWdlKCk7XG4gICAgLy8gU2VhcmNoIG9uIHdoaWNoIHBhZ2UgaXMgZGlzcGxheSB0aGUgaW1nIG1hbmdlclxuICAgIHRoaXMuc2V0RGlzcGxheWVkUGFnZUNvbmZpZygpO1xuXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pbml0VmFyaWFibGVzKHRoaXMuYXV0aENyZWRlbnRpYWxzU2VydmljZS5nZXRTeW5jKCkuZGF0YSk7XG4gICAgLy8gRmljaGUgcHJvZHVjdCBwYWdlXG4gICAgaWYgKHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcucGFnZWZpY2hlUHJvZHVjdCkge1xuICAgICAgdGhpcy5zZXRGaWNoZVByb2R1Y3RQYWdlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0UGFnZVdpdGhFdmVudHMoKTtcbiAgICB9XG4gIH1cblxuICBpbml0VmFyaWFibGVzKGF1dGhDcmVkZW50aWFsczogQXV0aENyZWRlbnRpYWxzIHwgbnVsbCkge1xuICAgIGlmICghYXV0aENyZWRlbnRpYWxzKSB7XG5cbiAgICAgIGlmIChlbnZpcm9ubWVudC5pc1dpemlzaG9wY29tKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIFJ1biBvbiBsb2NhbCBTZXJ2ZXJcbiAgICAgIHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgc2V0RmljaGVQcm9kdWN0UGFnZSgpIHtcbiAgICB0aGlzLmZpY2hlUHJvZHVjdFNlcnZpY2Uuc2V0QXBpQ29uZmlnKCk7XG4gICAgdGhpcy5oYW5kbGVGaWNoZVByb2R1Y3RUYWIoKTsgLy8gRGlzcGxheSBkaWZmZXJlbnQgaW1nIG1hbmFnZXIgY29uZmlnIGFjY29yZGluZyB0byB0aGUgdGFiXG4gICAgdGhpcy5jbG9zZUltZ01hbmFnZXJPblN3aXRjaGluZ1RhYigpO1xuICAgIHRoaXMuc3Vic2NyaWJlUGFnZUFza0ZvckltZygpOyAvLyBVc2UgZm9yIGltYWdlcyBpbiB2YXJpYXRpb25zIHRhYlxuICAgIHRoaXMuZmljaGVQcm9kdWN0U2VydmljZS51cGRhdGVJbWdTZWxlY3Rpb25PbkNoYW5nZSgpO1xuICB9XG5cbiAgc2V0UGFnZVdpdGhFdmVudHMoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmVQYWdlQXNrRm9ySW1nKCk7XG5cbiAgICAvLyBTZW5kIGltZyBzZWxlY3RlZFxuICAgIGNvbnN0IHN1YkltZ1NlbGVjdGlvbiA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3Rpb24kLnN1YnNjcmliZShpbWdTZWxlY3Rpb25MaXN0ID0+IHtcbiAgICAgIGlmIChpbWdTZWxlY3Rpb25MaXN0ICYmIGltZ1NlbGVjdGlvbkxpc3QubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNlbmRJbWdTZWxlY3RlZFRvUGFnZShpbWdTZWxlY3Rpb25MaXN0WzBdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJJbWdTZWxlY3Rpb24pO1xuICB9XG5cbiAgc3Vic2NyaWJlUGFnZUFza0ZvckltZygpIHtcbiAgICAvLyBMaXN0ZW4gdG8gcGFnZSBlZGl0b3IgYXNrIGZvciBpbWcgZXZlbnRcbiAgICBjb25zdCBzdWJBc2tGb3JJbWcgPSB0aGlzLmV2ZW50U2VydmljZS5wYWdlQXNrRm9ySW1nKCkuc3Vic2NyaWJlKCBkYXRhID0+IHtcbiAgICAgIC8vIFJldHJpZXZlIHdoaWNoIGltZyBtYW5hZ2VyIHNlbmQgdGhlIGV2ZW50XG4gICAgICBjb25zdCBlbWl0dGVyID0gZGF0YSAmJiBkYXRhW1wiZGV0YWlsXCJdID8gZGF0YVtcImRldGFpbFwiXVtcImZyb21cIl0gOiBudWxsO1xuICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2V0RW1pdHRlcihlbWl0dGVyKTtcblxuICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnNldEltZ1NlbGVjdGlvbihbXSk7XG5cbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YkFza0ZvckltZyk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMub3BlbkltZ01hbmFnZXIgPSB0cnVlO1xuICB9XG5cbiAgb25JbWdNYW5hZ2VyQ2xvc2VkKCkge1xuICAgIC8vIENsb3NlIGltZyBtYW5hZ2VyXG4gICAgdGhpcy5vcGVuSW1nTWFuYWdlciA9IGZhbHNlO1xuICB9XG5cbiAgc2V0Q3VycmVudExhbmd1YWdlKCkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goIC9eXFwvKFxcdyspXFwvLyk7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShtYXRjaGVzICYmIG1hdGNoZXNbMV0gPyBtYXRjaGVzWzFdIDogJ2ZyJyk7XG4gIH1cblxuICBzZXREaXNwbGF5ZWRQYWdlQ29uZmlnKCkge1xuICAgIGNvbnN0IGlzRmljaGVQcm9kdWN0UGFnZSA9IC9cXC9wcm9kdWN0c1xcLyhcXGQrXFwvZWRpdHxjcmVhdGUpLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgdGhpcy5pbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IGlzRmljaGVQcm9kdWN0UGFnZSA/IHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZyA6IHRoaXMucGFnZUV2ZW50Q29uZmlnO1xuICB9XG5cbiAgaGFuZGxlRmljaGVQcm9kdWN0VGFiKCkge1xuICAgIGNvbnN0IHRhYnNTdWIgPVxuICAgICAgdGhpcy5maWNoZVByb2R1Y3RTZXJ2aWNlLmhhbmRsZVRhYnMoKS5zdWJzY3JpYmUoaXNQaG90b3NUYWIgPT4ge1xuICAgICAgICB0aGlzLmltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0gaXNQaG90b3NUYWIgPyB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWcgOiB0aGlzLnBhZ2VFdmVudENvbmZpZztcbiAgICAgICAgdGhpcy5pc1Bob3Rvc1RhYiA9IGlzUGhvdG9zVGFiO1xuICAgICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGFic1N1Yik7XG4gIH1cblxuICBjbG9zZUltZ01hbmFnZXJPblN3aXRjaGluZ1RhYigpIHtcbiAgICBjb25zdCB0YWJzQ2xvc2VTdWIgPVxuICAgICAgdGhpcy5maWNoZVByb2R1Y3RTZXJ2aWNlLnN3aXRjaFRhYnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMub3BlbkltZ01hbmFnZXIgPSBmYWxzZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGFic0Nsb3NlU3ViKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbmZvLWJ1bGxlXCI+XG4gIDxwIGNsYXNzPVwiaW5mby1idWxsZS1jb250ZW50XCIgW2lubmVySFRNTF09XCInSW1nTWFuYWdlci53ZWJFbGVtZW50LmluZm9CdWxsZScgfCB0cmFuc2xhdGVcIj48L3A+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLnBhZ2VmaWNoZVByb2R1Y3QgJiYgaXNQaG90b3NUYWJcIj5cbiAgICA8aDMgY2xhc3M9XCJ3aXppY3NzLXNvdXMtdGl0cmVcIj57eydJbWdNYW5hZ2VyLndlYkVsZW1lbnQucGhvdG9zVGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nICYmIGlkX3Nob3AgJiYgaW1nTWFuYWdlckRpc3BsYXlDb25maWdcIj5cblxuICAgIDxwIGNsYXNzPVwiaW1nLW1hbmFnZXItb3BlblwiICpuZ0lmPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcuZGlzcGxheUJ0biAmJiBpc1Bob3Rvc1RhYlwiPlxuICAgICAgPGEgKGNsaWNrKT1cIm9wZW4oKVwiPnt7J0ltZ01hbmFnZXIud2ViRWxlbWVudC5PcGVuQnRuJyB8IHRyYW5zbGF0ZSB9fTwvYT5cbiAgICA8L3A+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaW1nTWFuYWdlckJveFwiPlxuICAgICAgPHd6LWltZy1tYW5hZ2VyXG4gICAgICAgICN3ekltZ01hbmFnZXJcbiAgICAgICAgW3N0YXRlRGlzcGxheWVkXT1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLnN0YXRlRGlzcGxheWVkXCJcbiAgICAgICAgW211bHRpcGxlSW1nTW9kZV09XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5tdWx0aXBsZUltZ01vZGVcIlxuICAgICAgICBbc2hvd0ltZ01hbmFnZXJNb2R1bGVdPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcuc2hvd0ltZ01hbmFnZXJNb2R1bGUgJiYgb3BlbkltZ01hbmFnZXJcIlxuICAgICAgICBbc2hvd1NlbGVjdGlvbl09XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5zaG93U2VsZWN0aW9uXCJcbiAgICAgICAgKGltZ01hbmFnZXJDbG9zZWQpPVwib25JbWdNYW5hZ2VyQ2xvc2VkKClcIj5cbiAgICAgIDwvd3otaW1nLW1hbmFnZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
5
|
-
import { ImgManagerWebElementComponent } from './img-manager-webelement.component';
|
|
6
|
-
import { provideAuthCredentialsService } from './services/auth-credentials.service';
|
|
7
|
-
import { EventService } from './services/event.service';
|
|
8
|
-
import { FicheProductService } from './services/fiche_products.service';
|
|
9
|
-
import { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';
|
|
10
|
-
import { WzImgManagerModule, ApiService } from '@wizishop/img-manager';
|
|
11
|
-
import { IconWebelementService } from './services/icon-webelement.service';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "./services/icon-webelement.service";
|
|
14
|
-
import * as i2 from "@wizishop/img-manager";
|
|
15
|
-
export class ImgManagerWebElementModule {
|
|
16
|
-
constructor(iconWebelementService) {
|
|
17
|
-
this.iconWebelementService = iconWebelementService;
|
|
18
|
-
this.iconWebelementService.loadIconLib();
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
ImgManagerWebElementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, deps: [{ token: i1.IconWebelementService }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
22
|
-
ImgManagerWebElementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, declarations: [ImgManagerWebElementComponent], imports: [CommonModule,
|
|
23
|
-
HttpClientModule, i2.WzImgManagerModule, TranslateModule], exports: [ImgManagerWebElementComponent] });
|
|
24
|
-
ImgManagerWebElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, providers: [
|
|
25
|
-
FicheProductService,
|
|
26
|
-
EventService,
|
|
27
|
-
provideAuthCredentialsService(),
|
|
28
|
-
IconWebelementService
|
|
29
|
-
], imports: [CommonModule,
|
|
30
|
-
HttpClientModule,
|
|
31
|
-
WzImgManagerModule.withConfig({
|
|
32
|
-
provide: ApiService,
|
|
33
|
-
useClass: WebelementImageManagerApiService,
|
|
34
|
-
}),
|
|
35
|
-
TranslateModule] });
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, decorators: [{
|
|
37
|
-
type: NgModule,
|
|
38
|
-
args: [{
|
|
39
|
-
declarations: [ImgManagerWebElementComponent],
|
|
40
|
-
imports: [
|
|
41
|
-
CommonModule,
|
|
42
|
-
HttpClientModule,
|
|
43
|
-
WzImgManagerModule.withConfig({
|
|
44
|
-
provide: ApiService,
|
|
45
|
-
useClass: WebelementImageManagerApiService,
|
|
46
|
-
}),
|
|
47
|
-
TranslateModule,
|
|
48
|
-
],
|
|
49
|
-
exports: [ImgManagerWebElementComponent],
|
|
50
|
-
providers: [
|
|
51
|
-
FicheProductService,
|
|
52
|
-
EventService,
|
|
53
|
-
provideAuthCredentialsService(),
|
|
54
|
-
IconWebelementService
|
|
55
|
-
]
|
|
56
|
-
}]
|
|
57
|
-
}], ctorParameters: function () { return [{ type: i1.IconWebelementService }]; } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXItd2ViZWxlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25GLE9BQU8sRUFBRyw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFxQjNFLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBb0IscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDOUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNDLENBQUM7O3VIQUhVLDBCQUEwQjt3SEFBMUIsMEJBQTBCLGlCQWxCdEIsNkJBQTZCLGFBRTFDLFlBQVk7UUFDWixnQkFBZ0IseUJBS2hCLGVBQWUsYUFFUCw2QkFBNkI7d0hBUTVCLDBCQUEwQixhQVAxQjtRQUNULG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osNkJBQTZCLEVBQUU7UUFDL0IscUJBQXFCO0tBQ3RCLFlBZEMsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixrQkFBa0IsQ0FBQyxVQUFVLENBQUM7WUFDNUIsT0FBTyxFQUFFLFVBQVU7WUFDbkIsUUFBUSxFQUFFLGdDQUFnQztTQUMzQyxDQUFDO1FBQ0YsZUFBZTsyRkFVTiwwQkFBMEI7a0JBbkJ0QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUM3QyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGtCQUFrQixDQUFDLFVBQVUsQ0FBQzs0QkFDNUIsT0FBTyxFQUFFLFVBQVU7NEJBQ25CLFFBQVEsRUFBRSxnQ0FBZ0M7eUJBQzNDLENBQUM7d0JBQ0YsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQ3hDLFNBQVMsRUFBRTt3QkFDVCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osNkJBQTZCLEVBQUU7d0JBQy9CLHFCQUFxQjtxQkFDdEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEltZ01hbmFnZXJXZWJFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9pbWctbWFuYWdlci13ZWJlbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyAgcHJvdmlkZUF1dGhDcmVkZW50aWFsc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2F1dGgtY3JlZGVudGlhbHMuc2VydmljZSc7XG5pbXBvcnQgeyBFdmVudFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmljaGVQcm9kdWN0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZmljaGVfcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBXZWJlbGVtZW50SW1hZ2VNYW5hZ2VyQXBpU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvd2ViZWxlbWVudC1pbWFnZS1tYW5hZ2VyLWFwaS5jb25maWcnO1xuaW1wb3J0IHsgV3pJbWdNYW5hZ2VyTW9kdWxlLCBBcGlTZXJ2aWNlIH0gZnJvbSAnQHdpemlzaG9wL2ltZy1tYW5hZ2VyJztcbmltcG9ydCB7IEljb25XZWJlbGVtZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaWNvbi13ZWJlbGVtZW50LnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtJbWdNYW5hZ2VyV2ViRWxlbWVudENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBXekltZ01hbmFnZXJNb2R1bGUud2l0aENvbmZpZyh7XG4gICAgICBwcm92aWRlOiBBcGlTZXJ2aWNlLFxuICAgICAgdXNlQ2xhc3M6IFdlYmVsZW1lbnRJbWFnZU1hbmFnZXJBcGlTZXJ2aWNlLFxuICAgIH0pLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0ltZ01hbmFnZXJXZWJFbGVtZW50Q29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRmljaGVQcm9kdWN0U2VydmljZSxcbiAgICBFdmVudFNlcnZpY2UsXG4gICAgcHJvdmlkZUF1dGhDcmVkZW50aWFsc1NlcnZpY2UoKSxcbiAgICBJY29uV2ViZWxlbWVudFNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbWdNYW5hZ2VyV2ViRWxlbWVudE1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaWNvbldlYmVsZW1lbnRTZXJ2aWNlOiBJY29uV2ViZWxlbWVudFNlcnZpY2UpIHtcbiAgICB0aGlzLmljb25XZWJlbGVtZW50U2VydmljZS5sb2FkSWNvbkxpYigpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { fromEvent } from 'rxjs';
|
|
3
|
-
import { environment } from '../environments/environment';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class EventService {
|
|
6
|
-
constructor() { }
|
|
7
|
-
sendImgSelectedToPage(file) {
|
|
8
|
-
const sendedFile = {
|
|
9
|
-
...file,
|
|
10
|
-
cdn_img_src: ''
|
|
11
|
-
};
|
|
12
|
-
if (sendedFile) {
|
|
13
|
-
sendedFile.cdn_img_src = `${environment.CDN_URL}${file.id_shop}/`;
|
|
14
|
-
}
|
|
15
|
-
const value = {
|
|
16
|
-
detail: {
|
|
17
|
-
"file": sendedFile,
|
|
18
|
-
"from": this.emitter
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
const event = new CustomEvent('imgSelected', value);
|
|
22
|
-
const imgManagerModule = document.getElementById('imgManagerModule');
|
|
23
|
-
imgManagerModule?.dispatchEvent(event);
|
|
24
|
-
}
|
|
25
|
-
pageAskForImg() {
|
|
26
|
-
return fromEvent(document.getElementById('imgManagerModule'), "openImgManager");
|
|
27
|
-
}
|
|
28
|
-
setEmitter(emitter) {
|
|
29
|
-
this.emitter = emitter;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
EventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
-
EventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EventService });
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EventService, decorators: [{
|
|
35
|
-
type: Injectable
|
|
36
|
-
}], ctorParameters: function () { return []; } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxZQUFZO0lBTXZCLGdCQUFnQixDQUFDO0lBRWpCLHFCQUFxQixDQUFDLElBQW9CO1FBQ3hDLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEdBQUcsSUFBSTtZQUNQLFdBQVcsRUFBRSxFQUFFO1NBQ2hCLENBQUM7UUFDRixJQUFJLFVBQVUsRUFBRTtZQUNkLFVBQVUsQ0FBQyxXQUFXLEdBQUcsR0FBRyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQztTQUNuRTtRQUVELE1BQU0sS0FBSyxHQUFHO1lBQ0UsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDckI7U0FDRixDQUFDO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxNQUFNLGdCQUFnQixHQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwRSxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLFNBQVMsQ0FBTSxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWU7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQzs7eUdBbENVLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nUGljdHVyZURUTyB9IGZyb20gJ0B3aXppc2hvcC9pbWctbWFuYWdlcic7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV2ZW50U2VydmljZSB7XG5cbiAgLy8gU29tZXRpbWVzLCB0aGVyZSBhcmUgbXVsdGlwbGUgaW1nIG1hbmFnZXIgdGhhdCBsaXN0ZW4gYXQgdGhlIHNhbWUgdGltZSBhdCBpbWdTZWxlY3RlZCBldmVudFxuICAvLyBJdCB1c2UgYnkgdGhlIGxpc3RlbmVyLCB0byBrbm93IGlmIHRoZSBldmVudCBpcyBmb3IgaGltXG4gIGVtaXR0ZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHNlbmRJbWdTZWxlY3RlZFRvUGFnZShmaWxlIDogSW1nUGljdHVyZURUTykge1xuICAgIGNvbnN0IHNlbmRlZEZpbGUgPSB7XG4gICAgICAuLi5maWxlLFxuICAgICAgY2RuX2ltZ19zcmM6ICcnXG4gICAgfTtcbiAgICBpZiAoc2VuZGVkRmlsZSkge1xuICAgICAgc2VuZGVkRmlsZS5jZG5faW1nX3NyYyA9IGAke2Vudmlyb25tZW50LkNETl9VUkx9JHtmaWxlLmlkX3Nob3B9L2A7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZVwiOiBzZW5kZWRGaWxlLFxuICAgICAgICAgICAgICAgICAgICAgIFwiZnJvbVwiOiB0aGlzLmVtaXR0ZXJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfTtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnaW1nU2VsZWN0ZWQnLCB2YWx1ZSk7XG4gICAgY29uc3QgaW1nTWFuYWdlck1vZHVsZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZ01hbmFnZXJNb2R1bGUnKTtcbiAgICBpbWdNYW5hZ2VyTW9kdWxlPy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxuXG4gIHBhZ2VBc2tGb3JJbWcoKSB7XG4gICAgcmV0dXJuIGZyb21FdmVudDxhbnk+KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWdNYW5hZ2VyTW9kdWxlJykgYXMgYW55LCBcIm9wZW5JbWdNYW5hZ2VyXCIpO1xuICB9XG5cbiAgc2V0RW1pdHRlcihlbWl0dGVyOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVtaXR0ZXIgPSBlbWl0dGVyO1xuICB9XG59Il19
|