change <a> to <article> back and add parameters to create a node
This commit is contained in:
parent
7859ed2977
commit
7bb1772164
53
graph.js
53
graph.js
|
@ -1,6 +1,6 @@
|
||||||
import Victor from "https://cdn.skypack.dev/victor@1.1.0";
|
import Victor from "https://cdn.skypack.dev/victor@1.1.0";
|
||||||
|
|
||||||
'use strict';
|
("use strict");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
|
@ -95,27 +95,52 @@ class graph {
|
||||||
|
|
||||||
constructor(operator, data) {
|
constructor(operator, data) {
|
||||||
// Инициализация HTML-элемента узла
|
// Инициализация HTML-элемента узла
|
||||||
const a = document.createElement("a");
|
const article = document.createElement("article");
|
||||||
a.id = operator.nodes.size;
|
article.id = operator.nodes.size;
|
||||||
a.classList.add("node", "unselectable");
|
article.classList.add("node", "unselectable");
|
||||||
if (typeof data.href === "string") a.href = data.href;
|
if (typeof data.href === "string") {
|
||||||
|
article.href = data.href;
|
||||||
|
}
|
||||||
|
|
||||||
if (typeof data.title === "string") {
|
// Инициализация заголовка-ссылки
|
||||||
// Найден заголовок узла
|
const title = document.createElement("a");
|
||||||
|
title.innerText = data.title ?? data.link ?? "Неизвестно";
|
||||||
// Инициализация заголовка
|
if (typeof data.link === "string") title.href = data.link;
|
||||||
const title = document.createElement("h4");
|
|
||||||
title.innerText = data.title;
|
|
||||||
|
|
||||||
// Запись в оболочку
|
// Запись в оболочку
|
||||||
a.appendChild(title);
|
article.appendChild(title);
|
||||||
|
|
||||||
|
if (typeof data.description === "string") {
|
||||||
|
// Найдено описание узла
|
||||||
|
|
||||||
|
// Инициализация заголовка
|
||||||
|
const description = document.createElement("p");
|
||||||
|
description.innerText = data.description;
|
||||||
|
description.style.display = "none";
|
||||||
|
article.setAttribute(
|
||||||
|
"onclick",
|
||||||
|
"const description = this.getElementsByTagName('p')[0]; description.style.display === 'none' ? description.style.display = null : description.style.display = 'none'"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Запись в оболочку
|
||||||
|
article.appendChild(description);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
typeof data.append === "HTMLCollection" ||
|
||||||
|
typeof data.append === "HTMLElement"
|
||||||
|
) {
|
||||||
|
// Найдены другие HTML-элементы узла
|
||||||
|
|
||||||
|
// Запись в оболочку
|
||||||
|
article.appendChild(data.append);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Запись в документ
|
// Запись в документ
|
||||||
operator.shell.appendChild(a);
|
operator.shell.appendChild(article);
|
||||||
|
|
||||||
// Запись в свойство
|
// Запись в свойство
|
||||||
this.#element = a;
|
this.#element = article;
|
||||||
|
|
||||||
// Запись в свойство
|
// Запись в свойство
|
||||||
this.#operator = operator;
|
this.#operator = operator;
|
||||||
|
|
Loading…
Reference in New Issue