@agility/cli
Version:
Agility CLI for working with your content. (Public Beta)
42 lines • 2.31 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.translateZoneNames = translateZoneNames;
function translateZoneNames(sourceZones, targetTemplate) {
if (!sourceZones || !(targetTemplate === null || targetTemplate === void 0 ? void 0 : targetTemplate.contentSectionDefinitions)) {
return sourceZones || {}; // No template or sections, return as-is
}
var translatedZones = {};
var sectionNames = targetTemplate.contentSectionDefinitions
.sort(function (a, b) { return (a.itemOrder || 0) - (b.itemOrder || 0); }) // Sort by item order
.map(function (def) { return def.pageItemTemplateReferenceName; });
// Map source zones to template section names in order
var sourceZoneEntries = Object.entries(sourceZones);
for (var i = 0; i < sourceZoneEntries.length && i < sectionNames.length; i++) {
var _a = sourceZoneEntries[i], sourceZoneName = _a[0], zoneContent = _a[1];
var targetZoneName = sectionNames[i];
translatedZones[targetZoneName] = zoneContent;
}
// CRITICAL FIX: Instead of dropping extra zones, combine them into the main zone
if (sourceZoneEntries.length > sectionNames.length && sectionNames.length > 0) {
var mainZoneName = sectionNames[0]; // Use first (main) zone as target
var mainZoneModules = Array.isArray(translatedZones[mainZoneName]) ? __spreadArray([], translatedZones[mainZoneName], true) : [];
for (var i = sectionNames.length; i < sourceZoneEntries.length; i++) {
var _b = sourceZoneEntries[i], sourceZoneName = _b[0], zoneContent = _b[1];
if (Array.isArray(zoneContent) && zoneContent.length > 0) {
mainZoneModules.push.apply(mainZoneModules, zoneContent);
}
}
translatedZones[mainZoneName] = mainZoneModules;
}
return translatedZones;
}
//# sourceMappingURL=translate-zone-names.js.map