public DeltaInsertOp(InsertData insert, OpAttributes attributes = null) { // if (typeof insertVal === 'string') { // insertVal = new InsertDataQuill(DataType.Text, insertVal + ''); // } Insert = insert; Attributes = attributes ?? new OpAttributes(); }
public static OpAttributes Sanitize(JToken dirtyAttrs) { var cleanAttrs = new OpAttributes(); if (dirtyAttrs == null || dirtyAttrs.Type != JTokenType.Object) { return(cleanAttrs); } var font = dirtyAttrs.GetStringValue("font"); if (!String.IsNullOrEmpty(font) && IsValidFontName(font)) { cleanAttrs.Font = font; } var size = dirtyAttrs.GetStringValue("size"); if (!String.IsNullOrEmpty(size) && IsValidSize(size)) { cleanAttrs.Size = size; } var link = dirtyAttrs.GetStringValue("link"); if (!String.IsNullOrEmpty(link)) { cleanAttrs.Link = UrlHelpers.Sanitize(link); } var target = dirtyAttrs.GetStringValue("target"); if (!String.IsNullOrEmpty(target) && IsValidTarget(target)) { cleanAttrs.Target = target; } cleanAttrs.Script = ScriptConverter.GetEnumValue( dirtyAttrs.GetStringValue("script")); cleanAttrs.List = ListConverter.GetEnumValue( dirtyAttrs.GetStringValue("list")); var header = dirtyAttrs.GetIntValue("header"); if (header.HasValue && header.Value > 0) { cleanAttrs.Header = Math.Min(header.Value, 6); } cleanAttrs.Align = AlignConverter.GetEnumValue( dirtyAttrs.GetStringValue("align")); cleanAttrs.Direction = DirectionConverter.GetEnumValue( dirtyAttrs.GetStringValue("direction")); var indent = dirtyAttrs.GetIntValue("indent"); if (indent.HasValue) { cleanAttrs.Indent = Math.Min((int)indent.Value, 30); } var width = dirtyAttrs.GetStringValue("width"); if (!String.IsNullOrEmpty(width) && IsValidWidth(width)) { cleanAttrs.Width = width; } cleanAttrs.Bold = dirtyAttrs.GetBoolValue("bold"); cleanAttrs.Italic = dirtyAttrs.GetBoolValue("italic"); cleanAttrs.Underline = dirtyAttrs.GetBoolValue("underline"); cleanAttrs.Strike = dirtyAttrs.GetBoolValue("strike"); cleanAttrs.Code = dirtyAttrs.GetBoolValue("code"); cleanAttrs.Blockquote = dirtyAttrs.GetBoolValue("blockquote"); cleanAttrs.CodeBlock = dirtyAttrs.GetBoolValue("code-block"); cleanAttrs.RenderAsBlock = dirtyAttrs.GetBoolValue("renderAsBlock"); cleanAttrs.Background = GetColour(dirtyAttrs.GetStringValue("background")); cleanAttrs.Color = GetColour(dirtyAttrs.GetStringValue("color")); var mentions = dirtyAttrs.GetBoolValue("mentions"); var mentionToken = dirtyAttrs["mention"]; if (mentionToken != null) { var mention = mentionToken.Value <JObject>(); if (mentions.HasValue && mentions.Value && mention != null) { var sanitizedMention = MentionSanitizer.Sanitize(mention); if (sanitizedMention.AnySet) { cleanAttrs.Mentions = true; cleanAttrs.Mention = sanitizedMention; } } } foreach (var kv in (JObject)dirtyAttrs) { if (s_sanitizedAttributes.Contains(kv.Key)) { continue; } if (cleanAttrs.CustomAttributes == null) { cleanAttrs.CustomAttributes = new Dictionary <string, JToken>(); } cleanAttrs.CustomAttributes.Add(kv.Key, kv.Value); } return(cleanAttrs); }
public DeltaInsertOp(string insert = null, OpAttributes attributes = null) : this(new InsertDataText(insert ?? ""), attributes) { }