@esfaenza/extensions 15.2.32 → 15.2.34
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/services/extensions.embedding.service.mjs +28 -5
- package/fesm2015/esfaenza-extensions.mjs +49 -26
- package/fesm2015/esfaenza-extensions.mjs.map +1 -1
- package/fesm2020/esfaenza-extensions.mjs +27 -4
- package/fesm2020/esfaenza-extensions.mjs.map +1 -1
- package/lib/services/extensions.embedding.service.d.ts +7 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { of, Subject } from 'rxjs';
|
|
|
7
7
|
import { ToastrService } from 'ngx-toastr';
|
|
8
8
|
import swal from 'sweetalert2';
|
|
9
9
|
import * as i2 from '@angular/router';
|
|
10
|
+
import * as i3 from '@angular/common';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Token che indica il prefisso delle searchView che serve per storicizzarle evitando di tirarsi in memoria anche tutti gli oggetti. Se vuoto viene supposto 'Hot'
|
|
@@ -1037,23 +1038,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
1037
1038
|
// Angular
|
|
1038
1039
|
/* Classe che contiene tutte le informazioni sull'embedding in un unico contenitore per semplicità */
|
|
1039
1040
|
class AppEmbeddingExtensions {
|
|
1040
|
-
constructor(msgService, router) {
|
|
1041
|
+
constructor(msgService, router, location) {
|
|
1041
1042
|
this.msgService = msgService;
|
|
1042
1043
|
this.router = router;
|
|
1044
|
+
this.location = location;
|
|
1043
1045
|
this.sidebarWidth = 230;
|
|
1044
1046
|
this.Embedded = false;
|
|
1045
1047
|
this.EmbeddingLevel = 0;
|
|
1046
1048
|
this.MessageObserver = new Subject();
|
|
1049
|
+
this._reloadAllowed = true;
|
|
1047
1050
|
this.MainWindow = window;
|
|
1048
1051
|
while (this.MainWindow.parent != this.MainWindow) {
|
|
1049
1052
|
this.MainWindow = this.MainWindow.parent;
|
|
1050
1053
|
this.EmbeddingLevel++;
|
|
1051
1054
|
this.Embedded = true;
|
|
1055
|
+
this.EmbeddedModule = this.location.path().match(/module=([a-zA-Z_]+)/)[1];
|
|
1052
1056
|
}
|
|
1053
1057
|
this.configureEmbeddability();
|
|
1054
1058
|
if (this.Embedded)
|
|
1055
1059
|
this.msgService.configureEmbeddability(this.MainWindow, this.MessageObserver);
|
|
1056
1060
|
}
|
|
1061
|
+
IsReloadAllowed() {
|
|
1062
|
+
let ret = this._reloadAllowed;
|
|
1063
|
+
this._reloadAllowed = true;
|
|
1064
|
+
return ret;
|
|
1065
|
+
}
|
|
1057
1066
|
configureEmbeddability() {
|
|
1058
1067
|
window.onmessage = (event) => {
|
|
1059
1068
|
// Ignoro i miei messaggi dato che mi interessano solo quelli degli altri iframe
|
|
@@ -1077,6 +1086,9 @@ class AppEmbeddingExtensions {
|
|
|
1077
1086
|
break;
|
|
1078
1087
|
}
|
|
1079
1088
|
}
|
|
1089
|
+
else if (event?.data?.type == "replace-state") {
|
|
1090
|
+
this.location.replaceState(event?.data?.url);
|
|
1091
|
+
}
|
|
1080
1092
|
else if (event?.data?.type == "confirm") {
|
|
1081
1093
|
console.log(`Window message - confirm -> Level: ${event?.data?.level}, Message: ${event?.data?.text}, Title: ${event?.data?.title}, ID: ${event?.data?.guid}`);
|
|
1082
1094
|
var sourceWindow = event.source;
|
|
@@ -1116,8 +1128,10 @@ class AppEmbeddingExtensions {
|
|
|
1116
1128
|
}
|
|
1117
1129
|
else if (event?.data?.type == "navigate-back") {
|
|
1118
1130
|
console.log(`Window message - navigate-back -> ${event?.data?.url}`);
|
|
1119
|
-
if (history.state._pushed)
|
|
1131
|
+
if (history.state._pushed) {
|
|
1132
|
+
this._reloadAllowed = false;
|
|
1120
1133
|
history.back();
|
|
1134
|
+
}
|
|
1121
1135
|
}
|
|
1122
1136
|
else if (event?.data?.type == "redirect") {
|
|
1123
1137
|
console.log(`Window message - redirect -> ${event?.data?.url}`);
|
|
@@ -1172,6 +1186,15 @@ class AppEmbeddingExtensions {
|
|
|
1172
1186
|
if (this.Embedded)
|
|
1173
1187
|
document.body.style.setProperty("overflow-y", "auto", "important");
|
|
1174
1188
|
}
|
|
1189
|
+
replaceState(basePath, url) {
|
|
1190
|
+
// Esempio basePath: pages
|
|
1191
|
+
// Esempio url: parties/leads_search
|
|
1192
|
+
// Normalizzazione senza slash prima o dopo
|
|
1193
|
+
basePath = basePath.endsWith("/") ? basePath.substring(0, basePath.length - 2) : basePath;
|
|
1194
|
+
url = url.startsWith("/") ? url.substring(1) : url;
|
|
1195
|
+
this.location.replaceState(`${basePath}/${url}`);
|
|
1196
|
+
this.MainWindow.postMessage({ type: "replace-state", url: `pages/embed/${this.EmbeddedModule}/${url}` }, "*");
|
|
1197
|
+
}
|
|
1175
1198
|
refreshBoundariesOnMenuCollapse() {
|
|
1176
1199
|
const wrapper = document.body.getElementsByClassName("main-wrapper")[0];
|
|
1177
1200
|
let wrapperStyles = window.getComputedStyle(wrapper);
|
|
@@ -1187,12 +1210,12 @@ class AppEmbeddingExtensions {
|
|
|
1187
1210
|
left.style.setProperty("width", leftSpace + "px");
|
|
1188
1211
|
}
|
|
1189
1212
|
}
|
|
1190
|
-
AppEmbeddingExtensions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppEmbeddingExtensions, deps: [{ token: MessageService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1213
|
+
AppEmbeddingExtensions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppEmbeddingExtensions, deps: [{ token: MessageService }, { token: i2.Router }, { token: i3.Location }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1191
1214
|
AppEmbeddingExtensions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppEmbeddingExtensions, providedIn: "root" });
|
|
1192
1215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppEmbeddingExtensions, decorators: [{
|
|
1193
1216
|
type: Injectable,
|
|
1194
1217
|
args: [{ providedIn: "root" }]
|
|
1195
|
-
}], ctorParameters: function () { return [{ type: MessageService }, { type: i2.Router }]; } });
|
|
1218
|
+
}], ctorParameters: function () { return [{ type: MessageService }, { type: i2.Router }, { type: i3.Location }]; } });
|
|
1196
1219
|
|
|
1197
1220
|
// Angular
|
|
1198
1221
|
/**
|