const listIndentation = (editor: Editor, lists: Element[], indentation: Indentation) => { const entrySets: EntrySet[] = parseLists(lists, getItemSelection(editor)); Arr.each(entrySets, (entrySet) => { indentSelectedEntries(entrySet.entries, indentation); const composedLists = composeEntries(editor, entrySet.entries); Arr.each(composedLists, (composedList) => { fireListEvent(editor, indentation === Indentation.Indent ? ListAction.IndentList : ListAction.OutdentList, composedList.dom()); }); InsertAll.before(entrySet.sourceList, composedLists); Remove.remove(entrySet.sourceList); }); }
const normalizeSegment = (segment: Segment, entry: Entry): void => { if (Node.name(segment.list) !== entry.listType) { segment.list = Replication.mutate(segment.list, entry.listType); } Attr.setAll(segment.list, entry.listAttributes); }
const outdentedComposer = (editor: Editor, entries: Entry[]): Element[] => { return Arr.map(entries, (entry) => { const content = Fragment.fromElements(entry.content); return Element.fromDom(createTextBlock(editor, content.dom())); }); }
const populateSegments = (segments: Segment[], entry: Entry): void => { for (let i = 0; i < segments.length - 1; i++) { Css.set(segments[i].item, 'list-style-type', 'none'); } Arr.last(segments).each((segment) => { Attr.setAll(segment.list, entry.listAttributes); Attr.setAll(segment.item, entry.itemAttributes); InsertAll.append(segment.item, entry.content); }); }
const indentDlItem = (item: Element): void => { if (Compare.is(item, 'dt')) { Replication.mutate(item, 'dd'); } }