// 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; } }