// Copyright (c) Umbraco.
// See LICENSE for more details.
using Umbraco.Cms.Core.Serialization;
namespace Umbraco.Cms.Core.Models.Blocks;
///
/// Data converter for the block grid property editor
///
public class BlockGridEditorDataConverter : BlockEditorDataConverter
{
public BlockGridEditorDataConverter(IJsonSerializer jsonSerializer)
: base(jsonSerializer)
{
}
protected override IEnumerable GetBlockReferences(IEnumerable layout)
{
IList ExtractContentAndSettingsReferences(BlockGridLayoutItem item)
{
var references = new List { new(item.ContentKey, item.SettingsKey) };
references.AddRange(item.Areas.SelectMany(area => area.Items.SelectMany(ExtractContentAndSettingsReferences)));
return references;
}
ContentAndSettingsReference[] result = layout.SelectMany(ExtractContentAndSettingsReferences).ToArray();
return result;
}
}