diff options
Diffstat (limited to 'docusaurus/static/ajax/libs/wolfree/23.7.8/js/Placeholder.js')
-rw-r--r-- | docusaurus/static/ajax/libs/wolfree/23.7.8/js/Placeholder.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Placeholder.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Placeholder.js new file mode 100644 index 0000000..d5b45a6 --- /dev/null +++ b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Placeholder.js @@ -0,0 +1,69 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * This file is part of Wolfree. + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + */ + +// @ts-check + +export default class Placeholder { + className = "wolfree-placeholder"; + + placeholderHTML = ` + <div class="${this.className}"> + <div> + <div> + <div><div></div></div> + <div><div></div></div> + <div><div></div></div> + </div> + </div> + </div> + `; + + insert = ({ + container = document.querySelector( + "html > body > #__next > div > main > main > div:nth-of-type(1)" + ), + } = {}) => { + try { + return ( + container instanceof HTMLDivElement + ? container.insertAdjacentHTML("afterend", this.placeholderHTML) + : console.error({ container }), + { container } + ); + } catch (error) { + return ( + console.error( + { error }, + "Fail to insert the skeleton placeholder components." + ), + { error } + ); + } + }; + + remove = ({ + allPlaceholders = document.querySelectorAll( + `html > body > #__next > div > main > main > div.${this.className}` + ), + } = {}) => { + try { + return ( + console.assert(allPlaceholders.length === 1), + allPlaceholders.forEach((placeholder) => placeholder.remove()), + { allPlaceholders } + ); + } catch (error) { + return ( + console.error( + { error }, + "Fail to remove the skeleton placeholder components." + ), + { error } + ); + } + }; +} |