{"version":3,"file":"pfe-collapse.min.js","sources":["../_temp/pfe-collapse.js"],"sourcesContent":["/*!\n * PatternFly Elements: PfeCollapse 1.12.3\n * @license\n * Copyright 2021 Red Hat, Inc.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * \n*/\n\nimport PFElement from \"../../pfelement/dist/pfelement.js\";\n\nfunction generateId() {\n return Math.random().toString(36).substr(2, 9);\n}\n\nclass PfeCollapseToggle extends PFElement {\n\n // Injected at build-time\n static get version() {\n return \"1.12.3\";\n }\n\n // Injected at build-time\n get html() {\n return `\n\n`;\n }\n\n // Injected at build-time\n static get slots() {\n return {\"default\":{\"title\":\"Default\",\"type\":\"array\",\"namedSlot\":false,\"items\":{\"oneOf\":[{\"$ref\":\"pfe-collapsibe-toggle\"},{\"$ref\":\"pfe-collapse-panel\"}]}}};\n }\n\n static get tag() {\n return \"pfe-collapse-toggle\";\n }\n\n get templateUrl() {\n return \"pfe-collapse-toggle.html\";\n }\n\n get styleUrl() {\n return \"pfe-collapse-toggle.scss\";\n }\n\n get expanded() {\n return this.getAttribute(\"aria-expanded\") === \"true\";\n }\n\n set expanded(val) {\n const value = Boolean(val);\n this.setAttribute(\"aria-expanded\", value);\n }\n\n static get properties() {\n return {\n ariaExpanded: {\n title: \"Aria expanded\",\n type: String,\n prefix: false,\n values: [\"true\", \"false\"],\n },\n ariaControls: {\n title: \"Aria controls\",\n type: String,\n prefix: false,\n observer: \"_ariaControlsChanged\",\n },\n };\n }\n\n constructor(pfeClass, { setTabIndex = true, addKeydownHandler = true } = {}) {\n super(pfeClass || PfeCollapseToggle);\n\n this.controlledPanel = false;\n this._setTabIndex = setTabIndex;\n this._addKeydownHandler = addKeydownHandler;\n\n this.addEventListener(\"click\", this._clickHandler);\n\n if (addKeydownHandler) {\n this.addEventListener(\"keydown\", this._keydownHandler);\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.expanded = false;\n\n this.id = this.id || `${PfeCollapseToggle.tag}-${generateId()}`;\n\n this.setAttribute(\"role\", \"button\");\n\n if (this._setTabIndex) {\n this.setAttribute(\"tabindex\", 0);\n }\n\n if (!this.controlledPanel) {\n this._connectPanel(this.getAttribute(\"aria-controls\"));\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.removeEventListener(\"click\", this._clickHandler);\n\n if (this._addKeydownHandler) {\n this.removeEventListener(\"keydown\", this._keydownHandler);\n }\n }\n\n _ariaControlsChanged(oldVal, newVal) {\n if (!newVal) {\n return;\n }\n\n this._connectPanel(newVal);\n }\n\n toggle() {\n if (this.hasAttribute(\"disabled\")) {\n return;\n }\n\n this.expanded = !this.expanded;\n\n // one last try to hook up a panel\n if (!this.controlledPanel) {\n this._connectPanel(this.getAttribute(\"aria-controls\"));\n }\n\n if (this.controlledPanel) {\n this.controlledPanel.expanded = this.expanded;\n\n this.emitEvent(PfeCollapse.events.change, {\n detail: {\n expanded: this.expanded,\n toggle: this,\n panel: this.controlledPanel,\n },\n });\n } else {\n this.warn(`This toggle doesn't have a panel associated with it`);\n }\n }\n\n _clickHandler() {\n this.toggle();\n }\n\n _keydownHandler(event) {\n const key = event.key;\n\n switch (key) {\n case \" \":\n case \"Spacebar\":\n case \"Enter\":\n this.toggle();\n break;\n }\n }\n\n _connectPanel(id) {\n // this can be an issue if the pfe-collapse is located within\n // a shadow root\n if (this.getRootNode) {\n this.controlledPanel = this.getRootNode().querySelector(`#${id}`);\n } else {\n this.controlledPanel = document.querySelector(`#${id}`);\n }\n }\n}\n\nclass PfeCollapsePanel extends PFElement {\n\n // Injected at build-time\n static get version() {\n return \"1.12.3\";\n }\n\n // Injected at build-time\n get html() {\n return `\n\n`;\n }\n\n // Injected at build-time\n static get slots() {\n return {\"default\":{\"title\":\"Default\",\"type\":\"array\",\"namedSlot\":false,\"items\":{\"oneOf\":[{\"$ref\":\"pfe-collapsibe-toggle\"},{\"$ref\":\"pfe-collapse-panel\"}]}}};\n }\n\n static get tag() {\n return \"pfe-collapse-panel\";\n }\n\n static get events() {\n return {\n animationStart: `${this.tag}:animation-start`,\n animationEnd: `${this.tag}:animation-end`,\n };\n }\n\n get templateUrl() {\n return \"pfe-collapse-panel.html\";\n }\n\n get styleUrl() {\n return \"pfe-collapse-panel.scss\";\n }\n\n get animates() {\n return this.animation === \"false\" ? false : true;\n }\n\n get expanded() {\n return this.hasAttribute(\"expanded\") || this.hasAttribute(\"pfe-expanded\"); // @TODO: Deprecated\n }\n\n set expanded(val) {\n const value = Boolean(val);\n\n if (value) {\n this.setAttribute(\"pfe-expanded\", \"\"); // @TODO: Deprecated\n this.setAttribute(\"expanded\", \"\");\n\n if (this.animates) {\n const height = this.getBoundingClientRect().height;\n this._fireAnimationEvent(\"opening\");\n this._animate(0, height);\n }\n } else {\n if (this.hasAttribute(\"expanded\") || this.hasAttribute(\"pfe-expanded\")) {\n // @TODO: Deprecated\n const height = this.getBoundingClientRect().height;\n this.removeAttribute(\"expanded\");\n this.removeAttribute(\"pfe-expanded\"); // @TODO: Deprecated\n\n if (this.animates) {\n this._fireAnimationEvent(\"closing\");\n this._animate(height, 0);\n }\n }\n }\n }\n\n static get properties() {\n return {\n animation: {\n title: \"Animation\",\n type: String,\n values: [\"false\"],\n },\n // @TODO: Deprecated\n oldAnimation: {\n alias: \"animation\",\n attr: \"pfe-animation\",\n },\n };\n }\n\n constructor(pfeClass) {\n super(pfeClass || PfeCollapsePanel);\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.expanded = false;\n\n this.id = this.id || `${PfeCollapsePanel.tag}-${generateId()}`;\n }\n\n _animate(start, end) {\n this.classList.add(\"animating\");\n this.style.height = `${start}px`;\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.style.height = `${end}px`;\n this.classList.add(\"animating\");\n this.addEventListener(\"transitionend\", this._transitionEndHandler);\n });\n });\n }\n\n _transitionEndHandler(event) {\n event.target.style.height = \"\";\n event.target.classList.remove(\"animating\");\n event.target.removeEventListener(\"transitionend\", this._transitionEndHandler);\n\n this.emitEvent(PfeCollapsePanel.events.animationEnd, {\n detail: {\n expanded: this.expanded,\n panel: this,\n },\n });\n }\n\n _fireAnimationEvent(state) {\n this.emitEvent(PfeCollapsePanel.events.animationStart, {\n detail: {\n state: state,\n panel: this,\n },\n });\n }\n}\n\nclass PfeCollapse extends PFElement {\n\n // Injected at build-time\n static get version() {\n return \"1.12.3\";\n }\n\n // Injected at build-time\n get html() {\n return `\n\n`;\n }\n\n // Injected at build-time\n static get slots() {\n return {\"default\":{\"title\":\"Default\",\"type\":\"array\",\"namedSlot\":false,\"items\":{\"oneOf\":[{\"$ref\":\"pfe-collapsibe-toggle\"},{\"$ref\":\"pfe-collapse-panel\"}]}}};\n }\n\n static get tag() {\n return \"pfe-collapse\";\n }\n\n get templateUrl() {\n return \"pfe-collapse.html\";\n }\n\n get styleUrl() {\n return \"pfe-collapse.scss\";\n }\n\n get schemaUrl() {\n return \"pfe-collapse.json\";\n }\n\n get animates() {\n return this.animation === \"false\" ? false : true;\n }\n\n static get events() {\n return {\n change: `${this.tag}:change`,\n };\n }\n\n static get properties() {\n return {\n animation: {\n title: \"Animation\",\n type: String,\n values: [\"false\"],\n observer: \"_animationChanged\",\n },\n // @TODO: Deprecated\n oldAnimation: {\n alias: \"animation\",\n attr: \"pfe-animation\",\n },\n };\n }\n\n constructor(pfeClass) {\n super(pfeClass || PfeCollapse);\n\n this._toggle = null;\n this._panel = null;\n this._linkControls = this._linkControls.bind(this);\n this._changeHandler = this._changeHandler.bind(this);\n this._observer = new MutationObserver(this._linkControls);\n\n this.addEventListener(PfeCollapse.events.change, this._changeHandler);\n this.addEventListener(PfeCollapse.events.animationStart, this._animationStartHandler);\n this.addEventListener(PfeCollapse.events.animationEnd, this._animationEndHandler);\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n Promise.all([\n customElements.whenDefined(PfeCollapsePanel.tag),\n customElements.whenDefined(PfeCollapseToggle.tag),\n ]).then(() => {\n if (this.hasLightDOM()) this._linkControls();\n\n this._observer.observe(this, { childList: true });\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.removeEventListener(PfeCollapse.events.change, this._changeHandler);\n this.removeEventListener(PfeCollapse.events.animationStart, this._animationStartHandler);\n this.removeEventListener(PfeCollapse.events.animationEnd, this._animationEndHandler);\n this._observer.disconnect();\n }\n\n _animationChanged(oldVal, newVal) {\n if (!newVal) {\n return;\n }\n\n if (newVal !== \"false\" && newVal !== \"true\") {\n return;\n }\n\n if (this._panel) {\n this._panel.animation = newVal;\n }\n }\n\n toggle() {\n this._toggle.toggle();\n }\n\n _linkControls() {\n this._toggle = this.querySelector(PfeCollapseToggle.tag);\n this._panel = this.querySelector(PfeCollapsePanel.tag);\n\n this._toggle.setAttribute(\"aria-controls\", this._panel.id);\n }\n\n _animationStartHandler() {\n this.classList.add(\"animating\");\n }\n\n _animationEndHandler() {\n this.classList.remove(\"animating\");\n }\n\n _changeHandler(event) {}\n}\n\nPFElement.create(PfeCollapse);\nPFElement.create(PfeCollapseToggle);\nPFElement.create(PfeCollapsePanel);\n\nexport { PfeCollapse, PfeCollapseToggle, PfeCollapsePanel };\n"],"names":["generateId","Math","random","toString","substr","PfeCollapseToggle","PFElement","version","html","slots","default","title","type","namedSlot","items","oneOf","$ref","tag","templateUrl","styleUrl","expanded","this","getAttribute","val","value","Boolean","setAttribute","properties","ariaExpanded","String","prefix","values","ariaControls","observer","[object Object]","pfeClass","setTabIndex","addKeydownHandler","super","controlledPanel","_setTabIndex","_addKeydownHandler","addEventListener","_clickHandler","_keydownHandler","connectedCallback","id","_connectPanel","disconnectedCallback","removeEventListener","oldVal","newVal","hasAttribute","emitEvent","PfeCollapse","events","change","detail","toggle","panel","warn","event","key","getRootNode","querySelector","document","PfeCollapsePanel","animationStart","animationEnd","animates","animation","height","getBoundingClientRect","_fireAnimationEvent","_animate","removeAttribute","oldAnimation","alias","attr","start","end","classList","add","style","requestAnimationFrame","_transitionEndHandler","target","remove","state","schemaUrl","_toggle","_panel","_linkControls","bind","_changeHandler","_observer","MutationObserver","_animationStartHandler","_animationEndHandler","Promise","all","customElements","whenDefined","then","hasLightDOM","observe","childList","disconnect","create"],"mappings":"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"}