...
Codeblock | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
'use strict' import PrintElement from './print-element.js' import PrintContent from './print-content.js' import PrintSource from './print-source.js' import PrintResult from './print-result.js' export default class CustomElement extends PrintElement { /** * Diese Methode wird immer wieder aufgerufen, solange PrintResult::complete nicht "true" ist * Bei jedem Ergebnis was nicht PrintResult::complete === true entspricht wird zudem eine neue Seite erzeugt * * @param {Element} [parent] Das HTMLElement in welchem dieses Element platziert werden soll * @param {Element} [previous] Das HTMLElement welches zuvor im selben Elternelement platziert wurde * * @returns {Promise<PrintResult>} */ async place(parent, previous) { // Allgemeine Prüfmethode für Standardoptionen (bspw. vacant-before oder break-before) const result = await this._preflight(parent, previous) if (result instanceof PrintResult) { return result } // Kann das Originalelement nicht direkt platziert werden? if(false === await this._place(place)) { // Das Originalelement steht über this._element zur Verfügung const reference = this._element.cloneNode(false) // Ein Element im Elternelement platzieren const container = await PrintSource.get(parent) if(container instanceof PrintContent) { await container.append(reference) // Wurde der Seiteninhalt zu groß? if(await container.overflowing(parent)) { reference.remove() return new PrintResult(null, false) } return new PrintResult(reference, true) } } return new PrintResult(this._element, true) } } |
Die nachfolgenden Methoden können zusätzlich implementiert werden, wenn diese benötigt werden.
Methodendefinition | Beschreibung |
---|---|
PrintElement::height(reference, parent) | Diese Methode wird abgerufen um die Höhe des in reference übergebenen Elements zu ermitteln. |
PrintElement::update(reference, parent) | Diese Methode wird vor einer Höhenermittlung ausgeführt und kann genutzt werden um bspw. Inhalte des reference -Elements ein-/auszublenden. |
PrintCounter
Hier werden die Zählerdefinitionen verarbeitet und die Ergebnisse ausgegeben.
...