{"version":3,"sources":["./node_modules/@ionic/core/dist/esm/ion-split-pane-md.entry.js"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAA6H;AAC/F;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2DAAW;AAC9C;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2DAAU;AAC/B,gBAAgB,2DAAC,CAAC,mDAAI,GAAG;AACzB;AACA;AACA,+BAA+B,KAAK;AACpC;AACA,aAAa,EAAE,EAAE,2DAAC;AAClB;AACA,cAAc,QAAQ,2DAAU,OAAO;AACvC,2BAA2B;AAC3B;AACA;AACA;AACA,MAAM;AACN,wBAAwB,eAAe,kBAAkB,OAAO,QAAQ,MAAM,SAAS,oBAAoB,aAAa,kBAAkB,uBAAuB,mBAAmB,qBAAqB,iBAAiB,eAAe,sCAAsC,kBAAkB,cAAc,wBAAwB,gCAAgC,gCAAgC,8GAA8G,OAAO,QAAQ,MAAM,SAAS,kBAAkB,kCAAkC,0BAA0B,UAAU,uDAAuD,WAAW,OAAO,iJAAiJ,oBAAoB,aAAa,oBAAoB,cAAc,0CAA0C,aAAa,uDAAuD,kBAAkB,SAAS,iEAAiE,iBAAiB,QAAQ,MAAM,mHAAmH,uBAAuB,qBAAqB,uDAAuD,gCAAgC,gCAAgC,2BAA2B,cAAc,iEAAiE,gCAAgC,gCAAgC,eAAe,0BAA0B,EAAE;AAC5lD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEuC","file":"65-es2015.js","sourcesContent":["import { r as registerInstance, d as createEvent, c as getIonMode, h, H as Host, e as getElement } from './core-0a8d4d2e.js';\nimport './config-3c7f3790.js';\n\nconst SPLIT_PANE_MAIN = 'split-pane-main';\nconst SPLIT_PANE_SIDE = 'split-pane-side';\nconst QUERY = {\n 'xs': '(min-width: 0px)',\n 'sm': '(min-width: 576px)',\n 'md': '(min-width: 768px)',\n 'lg': '(min-width: 992px)',\n 'xl': '(min-width: 1200px)',\n 'never': ''\n};\nconst SplitPane = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.visible = false;\n /**\n * If `true`, the split pane will be hidden.\n */\n this.disabled = false;\n /**\n * When the split-pane should be shown.\n * Can be a CSS media query expression, or a shortcut expression.\n * Can also be a boolean expression.\n */\n this.when = QUERY['lg'];\n this.ionSplitPaneVisible = createEvent(this, \"ionSplitPaneVisible\", 7);\n }\n visibleChanged(visible) {\n const detail = { visible, isPane: this.isPane.bind(this) };\n this.ionSplitPaneVisible.emit(detail);\n }\n connectedCallback() {\n this.styleChildren();\n this.updateState();\n }\n disconnectedCallback() {\n if (this.rmL) {\n this.rmL();\n this.rmL = undefined;\n }\n }\n updateState() {\n if (this.rmL) {\n this.rmL();\n this.rmL = undefined;\n }\n // Check if the split-pane is disabled\n if (this.disabled) {\n this.visible = false;\n return;\n }\n // When query is a boolean\n const query = this.when;\n if (typeof query === 'boolean') {\n this.visible = query;\n return;\n }\n // When query is a string, let's find first if it is a shortcut\n const mediaQuery = QUERY[query] || query;\n // Media query is empty or null, we hide it\n if (mediaQuery.length === 0) {\n this.visible = false;\n return;\n }\n if (window.matchMedia) {\n // Listen on media query\n const callback = (q) => {\n this.visible = q.matches;\n };\n const mediaList = window.matchMedia(mediaQuery);\n mediaList.addListener(callback);\n this.rmL = () => mediaList.removeListener(callback);\n this.visible = mediaList.matches;\n }\n }\n isPane(element) {\n if (!this.visible) {\n return false;\n }\n return element.parentElement === this.el\n && element.classList.contains(SPLIT_PANE_SIDE);\n }\n styleChildren() {\n const contentId = this.contentId;\n const children = this.el.children;\n const nu = this.el.childElementCount;\n let foundMain = false;\n for (let i = 0; i < nu; i++) {\n const child = children[i];\n const isMain = contentId !== undefined && child.id === contentId;\n if (isMain) {\n if (foundMain) {\n console.warn('split pane cannot have more than one main node');\n return;\n }\n foundMain = true;\n }\n setPaneClass(child, isMain);\n }\n if (!foundMain) {\n console.warn('split pane does not have a specified main node');\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n // Used internally for styling\n [`split-pane-${mode}`]: true,\n 'split-pane-visible': this.visible\n } }, h(\"slot\", null)));\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"visible\": [\"visibleChanged\"],\n \"disabled\": [\"updateState\"],\n \"when\": [\"updateState\"]\n }; }\n static get style() { return \":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}::slotted(ion-menu.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width);min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-main),:host(.split-pane-visible) ::slotted(.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none!important;box-shadow:none!important;z-index:0}:host(.split-pane-visible) ::slotted(.split-pane-main){-ms-flex:1;flex:1}:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),:host(.split-pane-visible) ::slotted(ion-menu.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host(.split-pane-visible) ::slotted(.split-pane-side){-ms-flex-order:-1;order:-1}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host{--border:1px solid var(--ion-item-border-color,var(--ion-border-color,var(--ion-color-step-150,rgba(0,0,0,0.13))));--side-min-width:270px;--side-max-width:28%}:host(.split-pane-visible) ::slotted(.split-pane-side){min-width:var(--side-min-width);max-width:var(--side-max-width);border-right:var(--border);border-left:0}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){min-width:var(--side-min-width);max-width:var(--side-max-width);border-right:0;border-left:var(--border)}\"; }\n};\nconst setPaneClass = (el, isMain) => {\n let toAdd;\n let toRemove;\n if (isMain) {\n toAdd = SPLIT_PANE_MAIN;\n toRemove = SPLIT_PANE_SIDE;\n }\n else {\n toAdd = SPLIT_PANE_SIDE;\n toRemove = SPLIT_PANE_MAIN;\n }\n const classList = el.classList;\n classList.add(toAdd);\n classList.remove(toRemove);\n};\n\nexport { SplitPane as ion_split_pane };\n"],"sourceRoot":"webpack:///"}