(modifierGroup, isInitiallyOpen, removeBy)
| 84 | } |
| 85 | |
| 86 | function createModifierGroup(modifierGroup, isInitiallyOpen, removeBy) { |
| 87 | const title = modifierGroup.category |
| 88 | const modifiers = modifierGroup.modifiers |
| 89 | |
| 90 | const titleEl = document.createElement("h5") |
| 91 | titleEl.className = "collapsible" |
| 92 | titleEl.innerText = title |
| 93 | |
| 94 | const modifiersEl = document.createElement("div") |
| 95 | modifiersEl.classList.add("collapsible-content", "editor-modifiers-leaf") |
| 96 | |
| 97 | if (isInitiallyOpen === true) { |
| 98 | titleEl.classList.add("active") |
| 99 | } |
| 100 | |
| 101 | modifiers.forEach((modObj) => { |
| 102 | const modifierName = modObj.modifier |
| 103 | const modifierPreviews = modObj?.previews?.map( |
| 104 | (preview) => |
| 105 | `${IMAGE_REGEX.test(preview.image) ? preview.image : modifierThumbnailPath + "/" + preview.path}` |
| 106 | ) |
| 107 | |
| 108 | const modifierCard = createModifierCard(modifierName, modifierPreviews, removeBy) |
| 109 | |
| 110 | if (typeof modifierCard == "object") { |
| 111 | modifiersEl.appendChild(modifierCard) |
| 112 | const trimmedName = trimModifiers(modifierName) |
| 113 | |
| 114 | modifierCard.addEventListener("click", () => { |
| 115 | if (activeTags.map((x) => trimModifiers(x.name)).includes(trimmedName)) { |
| 116 | // remove modifier from active array |
| 117 | activeTags = activeTags.filter((x) => trimModifiers(x.name) != trimmedName) |
| 118 | toggleCardState(trimmedName, false) |
| 119 | } else { |
| 120 | // add modifier to active array |
| 121 | activeTags.push({ |
| 122 | name: modifierName, |
| 123 | element: modifierCard.cloneNode(true), |
| 124 | originElement: modifierCard, |
| 125 | previews: modifierPreviews, |
| 126 | }) |
| 127 | toggleCardState(trimmedName, true) |
| 128 | } |
| 129 | |
| 130 | refreshTagsList() |
| 131 | document.dispatchEvent(new Event("refreshImageModifiers")) |
| 132 | }) |
| 133 | } |
| 134 | }) |
| 135 | |
| 136 | let brk = document.createElement("br") |
| 137 | brk.style.clear = "both" |
| 138 | modifiersEl.appendChild(brk) |
| 139 | |
| 140 | let e = document.createElement("div") |
| 141 | e.className = "modifier-category" |
| 142 | e.appendChild(titleEl) |
| 143 | e.appendChild(modifiersEl) |
no test coverage detected