Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Codeblock
languagejs
themeRDark
titleBasisimplementation für Elementskript
collapsetrue
'use strict'

import PrintElement from './plugin/remote/brandbox-styleguide/print-styleguide/javascript/print-element.js'
import PrintContentPrintContext from './plugin/remote/brandbox-styleguide/print-content.js'
import PrintSource from '.styleguide/javascript/print-sourcecontext.js'
import PrintResult from './plugin/remote/brandbox-styleguide/print-styleguide/javascript/print-result.js'

export default class CustomElement extends PrintElement {

	/**
	 * Diese Methode wird immer wieder aufgerufen, solange PrintResult::completecompleted nicht "true" ist
	 * Bei jedem Ergebnis was nicht PrintResult::completecompleted === true entspricht wird zudem eine neue Seite erzeugt
	 *
	 * @param {ElementPrintContext} [parentcontext]   DasDer HTMLElementKontext 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, previouscontext) {

		// Allgemeine Prüfmethode für Standardoptionen (bspw. vacant-before oder break-before)
        // Zudem wird versucht, das Quellelement direkt zu platzieren
		const result = await this._preflight(parent, previouscontext)

		if (result instanceof PrintResult) {
			return result
		}

		// Kann das Originalelement nicht direkt platziert werden?
		if(false
===
await this._place(place)) {

			// Das Originalelement steht über this._elementsource zur Verfügung
			const referenceelement = this._elementsource.cloneNode(false)

			// EinDas ElementErsatzelement im Elternelement platzieren
			const
container = await PrintSource.get(parent)

			if(container instanceof PrintContent) {
				await containercontext.append(referenceelement)

		  		// Wurde der Seiteninhalt zu groß? 
				if(await containercontext.overflowing(parent)) {

					reference.remove()

					return new PrintResult(null, false)
				}

				return new PrintResult(reference, true)
			}
		}

		return new PrintResult(this._element, true)
	}
}

...

MethodendefinitionBeschreibung
PrintElement::height(reference, parentelement)Diese Methode wird abgerufen um die Höhe des in reference element übergebenen Elements zu ermitteln.
PrintElement::update(reference, parentelement)Diese Methode wird vor einer Höhenermittlung ausgeführt und kann genutzt werden um bspw. Inhalte des reference element-Elements ein-/auszublenden.

...