1 import crel from "crelt";
3 export const prefix = "ProseMirror-menu";
5 export function renderDropdownItems(items, view) {
6 let rendered = [], updates = []
7 for (let i = 0; i < items.length; i++) {
8 let {dom, update} = items[i].render(view)
9 rendered.push(crel("div", {class: prefix + "-dropdown-item"}, dom))
12 return {dom: rendered, update: combineUpdates(updates, rendered)}
15 export function renderItems(items, view) {
16 let rendered = [], updates = []
17 for (let i = 0; i < items.length; i++) {
18 let {dom, update} = items[i].render(view)
22 return {dom: rendered, update: combineUpdates(updates, rendered)}
25 export function combineUpdates(updates, nodes) {
28 for (let i = 0; i < updates.length; i++) {
29 let up = updates[i](state)
30 nodes[i].style.display = up ? "" : "none"
31 if (up) something = true
37 export function randHtmlId() {
38 return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 9);