/*! * Copyright 2022, Staffbase GmbH and contributors. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ export interface BlockElement { /** * Static getter to determine which HTML attributes should trigger the function 'attributeChangedCallback'; */ /** * Invoked when the custom element is first connected to the DOM. */ connectedCallback: () => void; /** * Invoked when the custom element is disconnected from the DOM. */ disconnectedCallback: () => void; /** * Invoked when the custom element is moved to a new document. */ adoptedCallback: () => void; /** * Invoked when one of the attributes of the custom element is added, removed, or changed. * * Note that you have to statically register the observed values with the 'observedAttributes' static getter. * * @param attrName The changed attributes name * @param oldValue The old value * @param newValue The new value */ attributeChangedCallback: (attrName: string, oldValue: string | undefined, newValue: string | undefined) => void; /** * Method to unmount / revert any effects applied by rendering. * E.g. to be used in editor cases to remove any rendered content * and revert the block to its initial state. */ unmount: () => void; }