{"version":3,"names":["mutationObserver","observerOptions","childList","connectConditionalSlotComponent","component","createObserver","processMutations","observe","el","disconnectConditionalSlotComponent","unobserve","mutations","forEach","target","forceUpdate"],"sources":["src/utils/conditionalSlot.ts"],"sourcesContent":["import { forceUpdate } from \"@stencil/core\";\nimport { createObserver, ExtendedMutationObserver } from \"./observers\";\n\n/**\n * Defines interface for components with a dynamically changing slot.\n *\n * @deprecated Use `onSlotchange` event with `slotChangeHasAssignedElement` DOM utility instead.\n *\n * ```\n * this.mySlotHasElement = slotChangeHasAssignedElement(event)} />}\n * ```\n */\nexport interface ConditionalSlotComponent {\n /**\n * The host element.\n */\n readonly el: HTMLElement;\n}\n\nlet mutationObserver: ExtendedMutationObserver;\nconst observerOptions: Pick[1], \"childList\"> = { childList: true };\n\n/**\n * Helper to set up a conditional slot component on connectedCallback.\n *\n * @param component\n * @deprecated Use `onSlotchange` event with `slotChangeHasAssignedElement` DOM utility instead.\n *\n * ```\n * this.mySlotHasElement = slotChangeHasAssignedElement(event)} />}\n * ```\n */\nexport function connectConditionalSlotComponent(component: ConditionalSlotComponent): void {\n if (!mutationObserver) {\n mutationObserver = createObserver(\"mutation\", processMutations);\n }\n\n mutationObserver.observe(component.el, observerOptions);\n}\n\n/**\n * Helper to tear down a conditional slot component on disconnectedCallback.\n *\n * @param component\n * @deprecated Use `onSlotchange` event with `slotChangeHasAssignedElement` DOM utility instead.\n *\n * ```\n * this.mySlotHasElement = slotChangeHasAssignedElement(event)} />}\n * ```\n */\nexport function disconnectConditionalSlotComponent(component: ConditionalSlotComponent): void {\n mutationObserver.unobserve(component.el);\n}\n\nfunction processMutations(mutations: MutationRecord[]): void {\n mutations.forEach(({ target }) => {\n forceUpdate(target);\n });\n}\n"],"mappings":";;;;;wEAmBA,IAAIA,EACJ,MAAMC,EAAiF,CAAEC,UAAW,M,SAYpFC,EAAgCC,GAC9C,IAAKJ,EAAkB,CACrBA,EAAmBK,EAAe,WAAYC,E,CAGhDN,EAAiBO,QAAQH,EAAUI,GAAIP,EACzC,C,SAYgBQ,EAAmCL,GACjDJ,EAAiBU,UAAUN,EAAUI,GACvC,CAEA,SAASF,EAAiBK,GACxBA,EAAUC,SAAQ,EAAGC,aACnBC,EAAYD,EAAO,GAEvB,Q","ignoreList":[]}