@esfaenza/extensions 15.2.43 → 15.2.45
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 +6 -2
- package/esm2020/lib/services/extensions.exports.service.mjs +17 -15
- package/esm2020/lib/services/extensions.utilities.service.mjs +3 -3
- package/fesm2015/esfaenza-extensions.mjs +23 -17
- package/fesm2015/esfaenza-extensions.mjs.map +1 -1
- package/fesm2020/esfaenza-extensions.mjs +23 -17
- package/fesm2020/esfaenza-extensions.mjs.map +1 -1
- package/lib/services/extensions.exports.service.d.ts +1 -1
- package/lib/services/extensions.utilities.service.d.ts +1 -1
- package/package.json +2 -2
|
@@ -1172,7 +1172,7 @@ class AppEmbeddingExtensions {
|
|
|
1172
1172
|
const wrapperPaddingLeft = parseInt(wrapperStyles.getPropertyValue("padding-left"));
|
|
1173
1173
|
const wrapperPaddingRight = parseInt(wrapperStyles.getPropertyValue("padding-right"));
|
|
1174
1174
|
console.log(`Window message - Modal Open -> Backdrop Height: ${event?.data?.backdropHeight}`);
|
|
1175
|
-
var topHeight =
|
|
1175
|
+
var topHeight = 80; // valore fisso, distanza fra il top e l'inizio dell'iframe, non sarà mai diverso
|
|
1176
1176
|
var rightSpace = wrapperPaddingRight; // valore fisso, distanza fra la fine dell'iframe e il lato sinistro dello schermo, non sarà mai diverso
|
|
1177
1177
|
var leftSpace = this.sidebarWidth + wrapperPaddingLeft;
|
|
1178
1178
|
let commonStyles = "position: absolute; z-index: 9999; background-color: #000; opacity: 0.5; ";
|
|
@@ -1189,6 +1189,10 @@ class AppEmbeddingExtensions {
|
|
|
1189
1189
|
right.className = "embedded-modal-right";
|
|
1190
1190
|
right.style.cssText = commonStyles + `height: calc(100% - ${topHeight}px); top: ${topHeight}px; right: 0; width: ${rightSpace}px;`;
|
|
1191
1191
|
right.id = "right";
|
|
1192
|
+
// const bottom = document.createElement("div");
|
|
1193
|
+
// bottom.className = "embedded-modal-bottom";
|
|
1194
|
+
// bottom.style.cssText = commonStyles + `height: ${topHeight}px; bottom: 0; width: calc(100% - ${leftSpace}px); left: ${leftSpace}px`;
|
|
1195
|
+
// bottom.id = "bottom";
|
|
1192
1196
|
document.body.appendChild(top);
|
|
1193
1197
|
document.body.appendChild(left);
|
|
1194
1198
|
document.body.appendChild(right);
|
|
@@ -1517,7 +1521,7 @@ class UtilityService {
|
|
|
1517
1521
|
*
|
|
1518
1522
|
* @return {any} Clone dell'oggetto passato
|
|
1519
1523
|
*/
|
|
1520
|
-
deepClone(source) {
|
|
1524
|
+
deepClone(source, type = null) {
|
|
1521
1525
|
// Valori semplici
|
|
1522
1526
|
if (source == null || typeof source !== 'object')
|
|
1523
1527
|
return source;
|
|
@@ -1534,7 +1538,7 @@ class UtilityService {
|
|
|
1534
1538
|
default: break;
|
|
1535
1539
|
}
|
|
1536
1540
|
// Oggetti Complessi
|
|
1537
|
-
return this.recursiveStep(source, Array.isArray(source) || source instanceof Array ? [] : Object.create(Object.getPrototypeOf(source)));
|
|
1541
|
+
return this.recursiveStep(source, Array.isArray(source) || source instanceof Array ? [] : (type == null ? Object.create(Object.getPrototypeOf(source)) : new type()));
|
|
1538
1542
|
}
|
|
1539
1543
|
/**
|
|
1540
1544
|
* @ignore
|
|
@@ -1660,10 +1664,13 @@ const Export = (order, header, format = null, tableid = null) => (target, proper
|
|
|
1660
1664
|
* @param {any} type Tipo da esportare
|
|
1661
1665
|
*/
|
|
1662
1666
|
const ExportAs = (order, type, prefix) => (target, propertyKey) => {
|
|
1667
|
+
var addedHere = {};
|
|
1663
1668
|
var t = new type();
|
|
1664
1669
|
var props = t[exportList];
|
|
1665
1670
|
for (let i = 0; i < props.length; i++) {
|
|
1666
1671
|
let prop = props[i].replace(csvVisPrefix, '');
|
|
1672
|
+
if (addedHere[prop])
|
|
1673
|
+
continue;
|
|
1667
1674
|
if (typeof t[prop + csvVisPrefix] !== "undefined") {
|
|
1668
1675
|
var toEmit = t[prop + csvVisPrefix];
|
|
1669
1676
|
var lbl = t[prop + csvHdrPrefix];
|
|
@@ -1671,16 +1678,18 @@ const ExportAs = (order, type, prefix) => (target, propertyKey) => {
|
|
|
1671
1678
|
var orderProp = t[prop + csvOrdPrefix];
|
|
1672
1679
|
if (format)
|
|
1673
1680
|
Object.defineProperty(target, propertyKey + prop + csvFormatPrefix, { value: format, writable: false });
|
|
1674
|
-
|
|
1675
|
-
Object.defineProperty(target,
|
|
1676
|
-
Object.defineProperty(target,
|
|
1677
|
-
Object.defineProperty(target,
|
|
1678
|
-
Object.defineProperty(target,
|
|
1679
|
-
Object.defineProperty(target,
|
|
1681
|
+
let ppp = propertyKey + "$_$" + prop;
|
|
1682
|
+
Object.defineProperty(target, ppp + csvOrdPrefix, { value: orderProp + order, writable: false });
|
|
1683
|
+
Object.defineProperty(target, ppp, { value: null, writable: true, enumerable: true });
|
|
1684
|
+
Object.defineProperty(target, ppp + csvValueNavigator, { value: propertyKey + "." + prop.replace(/\$_\$/g, '.'), writable: false });
|
|
1685
|
+
Object.defineProperty(target, ppp + csvVisPrefix, { value: toEmit, writable: false });
|
|
1686
|
+
Object.defineProperty(target, ppp + csvHdrPrefix, { value: (prefix ? prefix + ' ' : '') + lbl, writable: false });
|
|
1687
|
+
Object.defineProperty(target, ppp + csvValueType, { value: type, writable: false });
|
|
1680
1688
|
if (target[exportList])
|
|
1681
|
-
target[exportList].push(
|
|
1689
|
+
target[exportList].push(ppp + csvVisPrefix);
|
|
1682
1690
|
else
|
|
1683
|
-
target[exportList] = [
|
|
1691
|
+
target[exportList] = [ppp + csvVisPrefix];
|
|
1692
|
+
addedHere[ppp] = true;
|
|
1684
1693
|
}
|
|
1685
1694
|
}
|
|
1686
1695
|
};
|
|
@@ -2162,14 +2171,11 @@ class ExportService {
|
|
|
2162
2171
|
* @param {any[]} items Oggetti da esportare
|
|
2163
2172
|
*/
|
|
2164
2173
|
export(items, format, fileName, type, columnsFilter, genericHeaders) {
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
for (let property in t)
|
|
2168
|
-
tmp[property] = t[property];
|
|
2169
|
-
return tmp;
|
|
2170
|
-
});
|
|
2174
|
+
// Deepclone con assegnatura del tipo
|
|
2175
|
+
var createdItems = items.map(t => this.utiExts.deepClone(t, type));
|
|
2171
2176
|
let headers = genericHeaders ? this.setupForGenericExport(createdItems, genericHeaders) : this.setupForExport(createdItems, columnsFilter);
|
|
2172
2177
|
(format == "CSV" ? this.exportCSV : this.exportExcel).bind(this)(fileName, headers, createdItems);
|
|
2178
|
+
return headers;
|
|
2173
2179
|
}
|
|
2174
2180
|
}
|
|
2175
2181
|
ExportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ExportService, deps: [{ token: DateService }, { token: UtilityService }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
|