Display the aspects and do not rely on removed data

This commit is contained in:
buzz-lightsnack-2007 2024-05-05 21:15:29 +08:00
parent 8fb4e3189d
commit ce0a50837d

View file

@ -52,22 +52,35 @@ class Page_Results extends Page {
let PROPERTY = ELEMENT.getAttribute(`data-active-result`).trim();
this.elements[PROPERTY] = ELEMENT;
// Copy the expected type of sub-elements, if any.
if (ELEMENT.getAttribute(`data-active-result-type`)) {
this.elements[PROPERTY][`target element type`] = ELEMENT.getAttribute(`data-active-result-type`).trim();
ELEMENT.removeAttribute(`data-active-result-type`);
};
// Remove the construction data active result.
ELEMENT.removeAttribute(`data-active-result`);
})
});
}
await this.update();
this.fill();
}
/*
Resize the window to fit the content.
*/
async resize() {
}
/*
Populate the contents.
*/
async fill() {
(this.elements)
? (Object.keys(this.elements)).forEach(async (SOURCE) => {
if (SOURCE.includes(`*`)) {
if (SOURCE.indexOf(`*`) < SOURCE.length - 1) {
let DATA = (nested.dictionary.get(this[`data`][`analysis`], SOURCE));
this.elements[SOURCE][(this.elements[SOURCE].nodeName.toLowerCase().includes(`input`) || this.elements[SOURCE].nodeName.toLowerCase().includes(`progress`)) ? `value` : `innerHTML`] = (DATA)
@ -75,13 +88,49 @@ class Page_Results extends Page {
? JSON.stringify(DATA)
: String(DATA))
: null;
} else {
} else if (SOURCE.indexOf(`*`) >= SOURCE.length - 1) {
let DATA = (nested.dictionary.get(this[`data`][`analysis`], SOURCE.split(`,`).slice(0, -1)));
(!Array.isArray(DATA) && (typeof DATA).includes(`obj`) && DATA != null)
let ELEMENT_TYPES = {
"container": "section",
"content": "article",
"title": "p",
"body": "p"
};
(Object.keys(DATA)).forEach((ITEM) => {
let ELEMENTS = {};
// Create the elements.
(Object.keys(ELEMENT_TYPES)).forEach((TYPE) => {
ELEMENTS[TYPE] = document.createElement(ELEMENT_TYPES[TYPE]);
(([`content`, `action`, `title`].includes(TYPE) || TYPE.includes(`container`)) && this.elements[SOURCE][`target element type`])
? ELEMENTS[TYPE].classList.add(this.elements[SOURCE][`target element type`].concat((!TYPE.includes(`container`))
? `-${TYPE}`
: ``))
: false;
});
ELEMENTS[`title`].innerText = String(ITEM).trim();
ELEMENTS[`title`].classList.add(`flow-text`);
ELEMENTS[`body`].innerText = String(DATA[ITEM]).trim();
// Inject the elements.
[`title`, `body`].forEach((CONTENT) => {
ELEMENTS[`content`].appendChild(ELEMENTS[CONTENT]);
});
ELEMENTS[`container`].appendChild(ELEMENTS[`content`]);
this.elements[SOURCE].appendChild(ELEMENTS[`container`]);
})
}
})
: false;
// Set the color.
(nested.dictionary.get(this[`data`][`analysis`], [`Rating`, `Trust`]) && document.querySelector(`summary`)) ? document.querySelector(`summary`).setAttribute(`result`, (nested.dictionary.get(this[`data`][`analysis`], [`Rating`, `Trust`]))) : false;
};
}