123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /*!
- * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
- * v1.0.0-beta.97
- */
- 'use strict';
- const componentToTransitionListeners = new WeakMap();
- function transitionStart(event) {
- if (event.propertyName === this.openTransitionProp && event.target === this.transitionEl) {
- this.open ? this.onBeforeOpen() : this.onBeforeClose();
- }
- }
- function transitionEnd(event) {
- if (event.propertyName === this.openTransitionProp && event.target === this.transitionEl) {
- this.open ? this.onOpen() : this.onClose();
- }
- }
- /**
- * Helper to keep track of transition listeners on setTransitionEl and connectedCallback on OpenCloseComponent components.
- *
- * @param component
- */
- function connectOpenCloseComponent(component) {
- disconnectOpenCloseComponent(component);
- if (component.transitionEl) {
- const boundOnTransitionStart = transitionStart.bind(component);
- const boundOnTransitionEnd = transitionEnd.bind(component);
- componentToTransitionListeners.set(component, [
- component.transitionEl,
- boundOnTransitionStart,
- boundOnTransitionEnd
- ]);
- component.transitionEl.addEventListener("transitionstart", boundOnTransitionStart);
- component.transitionEl.addEventListener("transitionend", boundOnTransitionEnd);
- }
- }
- /**
- * Helper to tear down transition listeners on disconnectedCallback on OpenCloseComponent components.
- *
- * @param component
- */
- function disconnectOpenCloseComponent(component) {
- if (!componentToTransitionListeners.has(component)) {
- return;
- }
- const [transitionEl, start, end] = componentToTransitionListeners.get(component);
- transitionEl.removeEventListener("transitionstart", start);
- transitionEl.removeEventListener("transitionend", end);
- componentToTransitionListeners.delete(component);
- }
- exports.connectOpenCloseComponent = connectOpenCloseComponent;
- exports.disconnectOpenCloseComponent = disconnectOpenCloseComponent;
|