using Beam.Abstractions;
using HtmlAgilityPack;

namespace Beam.Dynamic {
    public class ContentsArrayDataProvider : ContentsDataProvider, IComposableDataProvider<string[]> {
        public string[] ArrayDelimiters { get; set; } = [";"];

        string[] IDataProvider<string[]>.Get(HtmlDocument document) {
            var node = Select(document);
            return node is null ? [] : Get(node);       
        }

        public new string[] Get(HtmlNode node) {
            return node.InnerText?.Split(ArrayDelimiters, StringSplitOptions.RemoveEmptyEntries) ?? [];
        }
    }

}
