1 line
47 KiB
Plaintext
1 line
47 KiB
Plaintext
{"version":3,"sources":["webpack:///node_modules/@ionic/core/dist/esm/ion-menu_3.entry.js"],"names":["menuIosCss","menuMdCss","iosEasing","mdEasing","iosEasingReverse","mdEasingReverse","Menu","hostRef","ionWillOpen","ionWillClose","ionDidOpen","ionDidClose","ionMenuChange","lastOnEnd","blocker","createBlocker","disableScroll","isAnimating","_isOpen","isPaneVisible","isEndSide","disabled","side","swipeGesture","maxEdgeStart","type","oldType","contentEl","undefined","classList","remove","add","removeAttribute","menuInnerEl","animation","updateState","emit","open","get","el","parent","parentNode","contentId","console","warn","content","document","getElementById","querySelector","tagName","error","typeChanged","sideChanged","_register","gesture","createGesture","gestureName","gesturePriority","threshold","blurOnStart","canStart","ev","onWillStart","onStart","onMove","onEnd","destroy","_unregister","backdropEl","detail","isPane","timeStamp","shouldClose","composedPath","includes","preventDefault","stopPropagation","close","Promise","resolve","_isActive","animated","setOpen","shouldOpen","_setOpen","beforeAnimation","loadAnimation","startAnimation","afterAnimation","width","offsetWidth","_createAnimation","getBoolean","duration","fill","isReversed","mode","easing","easingReverse","ani","direction","onFinish","getDirection","play","sync","isModalPresented","canSwipe","_getOpenSync","checkEdgeSide","window","currentX","progressStart","delta","computeDelta","deltaX","stepValue","progressStep","isOpen","velocity","velocityX","z","shouldCompleteRight","shouldCompleteLeft","shouldComplete","currentTime","newStepValue","adjustedStepValue","playTo","oneTimeCallback","progressEnd","SHOW_MENU","SHOW_BACKDROP","block","unblock","MENU_CONTENT_OPEN","stop","isActive","enable","forceClosing","_setActiveMenu","role","part","ref","tappable","Math","max","win","posX","innerWidth","style","ios","md","updateVisibility","menu","menuEl","menuButtonIosCss","menuButtonMdCss","MenuButton","visible","autoHide","onClick","toggle","visibilityChanged","color","menuIcon","hidden","attrs","Object","assign","icon","lazy","menuToggleCss","MenuToggle"],"mappings":"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","file":"19-es5.js","sourcesContent":["import { r as registerInstance, e as createEvent, h, H as Host, i as getElement } from './index-e806d1f6.js';\nimport { c as config, b as getIonMode } from './ionic-global-9d5c8ee3.js';\nimport { l as isEndSide, k as assert, h as clamp } from './helpers-90f46169.js';\nimport './animation-54fe0237.js';\nimport { g as getTimeGivenProgression } from './cubic-bezier-eea9a7a9.js';\nimport { G as GESTURE_CONTROLLER } from './gesture-controller-31cb6bb9.js';\nimport './hardware-back-button-389954a0.js';\nimport { m as menuController } from './index-7e92d917.js';\nimport { c as createColorClasses, h as hostContext } from './theme-ff3fc52f.js';\n\nconst menuIosCss = \":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{left:0;right:auto;top:0;bottom:0;-webkit-transform:translate3d(-9999px, 0, 0);transform:translate3d(-9999px, 0, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}[dir=rtl] .menu-inner,:host-context([dir=rtl]) .menu-inner{left:unset;right:unset;left:auto;right:0}[dir=rtl] .menu-inner,:host-context([dir=rtl]) .menu-inner{-webkit-transform:translate3d(calc(-1 * -9999px), 0, 0);transform:translate3d(calc(-1 * -9999px), 0, 0)}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;right:auto;left:0}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;right:0;left:auto;}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){width:var(--width);min-width:var(--min-width);max-width:var(--max-width)}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none !important;transform:none !important;-webkit-box-shadow:none !important;box-shadow:none !important}:host(.menu-pane-visible) ion-backdrop{display:hidden !important;}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}\";\n\nconst menuMdCss = \":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{left:0;right:auto;top:0;bottom:0;-webkit-transform:translate3d(-9999px, 0, 0);transform:translate3d(-9999px, 0, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}[dir=rtl] .menu-inner,:host-context([dir=rtl]) .menu-inner{left:unset;right:unset;left:auto;right:0}[dir=rtl] .menu-inner,:host-context([dir=rtl]) .menu-inner{-webkit-transform:translate3d(calc(-1 * -9999px), 0, 0);transform:translate3d(calc(-1 * -9999px), 0, 0)}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;right:auto;left:0}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;right:0;left:auto;}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){width:var(--width);min-width:var(--min-width);max-width:var(--max-width)}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none !important;transform:none !important;-webkit-box-shadow:none !important;box-shadow:none !important}:host(.menu-pane-visible) ion-backdrop{display:hidden !important;}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}\";\n\nconst iosEasing = 'cubic-bezier(0.32,0.72,0,1)';\nconst mdEasing = 'cubic-bezier(0.0,0.0,0.2,1)';\nconst iosEasingReverse = 'cubic-bezier(1, 0, 0.68, 0.28)';\nconst mdEasingReverse = 'cubic-bezier(0.4, 0, 0.6, 1)';\nconst Menu = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionWillOpen = createEvent(this, \"ionWillOpen\", 7);\n this.ionWillClose = createEvent(this, \"ionWillClose\", 7);\n this.ionDidOpen = createEvent(this, \"ionDidOpen\", 7);\n this.ionDidClose = createEvent(this, \"ionDidClose\", 7);\n this.ionMenuChange = createEvent(this, \"ionMenuChange\", 7);\n this.lastOnEnd = 0;\n this.blocker = GESTURE_CONTROLLER.createBlocker({ disableScroll: true });\n this.isAnimating = false;\n this._isOpen = false;\n this.isPaneVisible = false;\n this.isEndSide = false;\n /**\n * If `true`, the menu is disabled.\n */\n this.disabled = false;\n /**\n * Which side of the view the menu should be placed.\n */\n this.side = 'start';\n /**\n * If `true`, swiping the menu is enabled.\n */\n this.swipeGesture = true;\n /**\n * The edge threshold for dragging the menu open.\n * If a drag/swipe happens over this value, the menu is not triggered.\n */\n this.maxEdgeStart = 50;\n }\n typeChanged(type, oldType) {\n const contentEl = this.contentEl;\n if (contentEl) {\n if (oldType !== undefined) {\n contentEl.classList.remove(`menu-content-${oldType}`);\n }\n contentEl.classList.add(`menu-content-${type}`);\n contentEl.removeAttribute('style');\n }\n if (this.menuInnerEl) {\n // Remove effects of previous animations\n this.menuInnerEl.removeAttribute('style');\n }\n this.animation = undefined;\n }\n disabledChanged() {\n this.updateState();\n this.ionMenuChange.emit({\n disabled: this.disabled,\n open: this._isOpen\n });\n }\n sideChanged() {\n this.isEndSide = isEndSide(this.side);\n }\n swipeGestureChanged() {\n this.updateState();\n }\n async connectedCallback() {\n if (this.type === undefined) {\n this.type = config.get('menuType', 'overlay');\n }\n const el = this.el;\n const parent = el.parentNode;\n if (this.contentId === undefined) {\n console.warn(`[DEPRECATED][ion-menu] Using the [main] attribute is deprecated, please use the \"contentId\" property instead:\nBEFORE:\n <ion-menu>...</ion-menu>\n <div main>...</div>\n\nAFTER:\n <ion-menu contentId=\"main-content\"></ion-menu>\n <div id=\"main-content\">...</div>\n`);\n }\n const content = this.contentId !== undefined\n ? document.getElementById(this.contentId)\n : parent && parent.querySelector && parent.querySelector('[main]');\n if (!content || !content.tagName) {\n // requires content element\n console.error('Menu: must have a \"content\" element to listen for drag events on.');\n return;\n }\n this.contentEl = content;\n // add menu's content classes\n content.classList.add('menu-content');\n this.typeChanged(this.type, undefined);\n this.sideChanged();\n // register this menu with the app's menu controller\n menuController._register(this);\n this.gesture = (await import('./index-f49d994d.js')).createGesture({\n el: document,\n gestureName: 'menu-swipe',\n gesturePriority: 30,\n threshold: 10,\n blurOnStart: true,\n canStart: ev => this.canStart(ev),\n onWillStart: () => this.onWillStart(),\n onStart: () => this.onStart(),\n onMove: ev => this.onMove(ev),\n onEnd: ev => this.onEnd(ev),\n });\n this.updateState();\n }\n async componentDidLoad() {\n this.ionMenuChange.emit({ disabled: this.disabled, open: this._isOpen });\n this.updateState();\n }\n disconnectedCallback() {\n this.blocker.destroy();\n menuController._unregister(this);\n if (this.animation) {\n this.animation.destroy();\n }\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n this.animation = undefined;\n this.contentEl = this.backdropEl = this.menuInnerEl = undefined;\n }\n onSplitPaneChanged(ev) {\n this.isPaneVisible = ev.detail.isPane(this.el);\n this.updateState();\n }\n onBackdropClick(ev) {\n if (this._isOpen && this.lastOnEnd < ev.timeStamp - 100) {\n const shouldClose = (ev.composedPath)\n ? !ev.composedPath().includes(this.menuInnerEl)\n : false;\n if (shouldClose) {\n ev.preventDefault();\n ev.stopPropagation();\n this.close();\n }\n }\n }\n /**\n * Returns `true` is the menu is open.\n */\n isOpen() {\n return Promise.resolve(this._isOpen);\n }\n /**\n * Returns `true` is the menu is active.\n *\n * A menu is active when it can be opened or closed, meaning it's enabled\n * and it's not part of a `ion-split-pane`.\n */\n isActive() {\n return Promise.resolve(this._isActive());\n }\n /**\n * Opens the menu. If the menu is already open or it can't be opened,\n * it returns `false`.\n */\n open(animated = true) {\n return this.setOpen(true, animated);\n }\n /**\n * Closes the menu. If the menu is already closed or it can't be closed,\n * it returns `false`.\n */\n close(animated = true) {\n return this.setOpen(false, animated);\n }\n /**\n * Toggles the menu. If the menu is already open, it will try to close, otherwise it will try to open it.\n * If the operation can't be completed successfully, it returns `false`.\n */\n toggle(animated = true) {\n return this.setOpen(!this._isOpen, animated);\n }\n /**\n * Opens or closes the button.\n * If the operation can't be completed successfully, it returns `false`.\n */\n setOpen(shouldOpen, animated = true) {\n return menuController._setOpen(this, shouldOpen, animated);\n }\n async _setOpen(shouldOpen, animated = true) {\n // If the menu is disabled or it is currently being animated, let's do nothing\n if (!this._isActive() || this.isAnimating || shouldOpen === this._isOpen) {\n return false;\n }\n this.beforeAnimation(shouldOpen);\n await this.loadAnimation();\n await this.startAnimation(shouldOpen, animated);\n this.afterAnimation(shouldOpen);\n return true;\n }\n async loadAnimation() {\n // Menu swipe animation takes the menu's inner width as parameter,\n // If `offsetWidth` changes, we need to create a new animation.\n const width = this.menuInnerEl.offsetWidth;\n if (width === this.width && this.animation !== undefined) {\n return;\n }\n this.width = width;\n // Destroy existing animation\n if (this.animation) {\n this.animation.destroy();\n this.animation = undefined;\n }\n // Create new animation\n this.animation = await menuController._createAnimation(this.type, this);\n if (!config.getBoolean('animated', true)) {\n this.animation.duration(0);\n }\n this.animation.fill('both');\n }\n async startAnimation(shouldOpen, animated) {\n const isReversed = !shouldOpen;\n const mode = getIonMode(this);\n const easing = mode === 'ios' ? iosEasing : mdEasing;\n const easingReverse = mode === 'ios' ? iosEasingReverse : mdEasingReverse;\n const ani = this.animation\n .direction((isReversed) ? 'reverse' : 'normal')\n .easing((isReversed) ? easingReverse : easing)\n .onFinish(() => {\n if (ani.getDirection() === 'reverse') {\n ani.direction('normal');\n }\n });\n if (animated) {\n await ani.play();\n }\n else {\n ani.play({ sync: true });\n }\n }\n _isActive() {\n return !this.disabled && !this.isPaneVisible;\n }\n canSwipe() {\n return this.swipeGesture && !this.isAnimating && this._isActive();\n }\n canStart(detail) {\n // Do not allow swipe gesture if a modal is open\n const isModalPresented = !!document.querySelector('ion-modal.show-modal');\n if (isModalPresented || !this.canSwipe()) {\n return false;\n }\n if (this._isOpen) {\n return true;\n // TODO error\n }\n else if (menuController._getOpenSync()) {\n return false;\n }\n return checkEdgeSide(window, detail.currentX, this.isEndSide, this.maxEdgeStart);\n }\n onWillStart() {\n this.beforeAnimation(!this._isOpen);\n return this.loadAnimation();\n }\n onStart() {\n if (!this.isAnimating || !this.animation) {\n assert(false, 'isAnimating has to be true');\n return;\n }\n // the cloned animation should not use an easing curve during seek\n this.animation.progressStart(true, (this._isOpen) ? 1 : 0);\n }\n onMove(detail) {\n if (!this.isAnimating || !this.animation) {\n assert(false, 'isAnimating has to be true');\n return;\n }\n const delta = computeDelta(detail.deltaX, this._isOpen, this.isEndSide);\n const stepValue = delta / this.width;\n this.animation.progressStep((this._isOpen) ? 1 - stepValue : stepValue);\n }\n onEnd(detail) {\n if (!this.isAnimating || !this.animation) {\n assert(false, 'isAnimating has to be true');\n return;\n }\n const isOpen = this._isOpen;\n const isEndSide = this.isEndSide;\n const delta = computeDelta(detail.deltaX, isOpen, isEndSide);\n const width = this.width;\n const stepValue = delta / width;\n const velocity = detail.velocityX;\n const z = width / 2.0;\n const shouldCompleteRight = velocity >= 0 && (velocity > 0.2 || detail.deltaX > z);\n const shouldCompleteLeft = velocity <= 0 && (velocity < -0.2 || detail.deltaX < -z);\n const shouldComplete = isOpen\n ? isEndSide ? shouldCompleteRight : shouldCompleteLeft\n : isEndSide ? shouldCompleteLeft : shouldCompleteRight;\n let shouldOpen = !isOpen && shouldComplete;\n if (isOpen && !shouldComplete) {\n shouldOpen = true;\n }\n this.lastOnEnd = detail.currentTime;\n // Account for rounding errors in JS\n let newStepValue = (shouldComplete) ? 0.001 : -0.001;\n /**\n * TODO: stepValue can sometimes return a negative\n * value, but you can't have a negative time value\n * for the cubic bezier curve (at least with web animations)\n * Not sure if the negative step value is an error or not\n */\n const adjustedStepValue = (stepValue < 0) ? 0.01 : stepValue;\n /**\n * Animation will be reversed here, so need to\n * reverse the easing curve as well\n *\n * Additionally, we need to account for the time relative\n * to the new easing curve, as `stepValue` is going to be given\n * in terms of a linear curve.\n */\n newStepValue += getTimeGivenProgression([0, 0], [0.4, 0], [0.6, 1], [1, 1], clamp(0, adjustedStepValue, 0.9999))[0] || 0;\n const playTo = (this._isOpen) ? !shouldComplete : shouldComplete;\n this.animation\n .easing('cubic-bezier(0.4, 0.0, 0.6, 1)')\n .onFinish(() => this.afterAnimation(shouldOpen), { oneTimeCallback: true })\n .progressEnd((playTo) ? 1 : 0, (this._isOpen) ? 1 - newStepValue : newStepValue, 300);\n }\n beforeAnimation(shouldOpen) {\n assert(!this.isAnimating, '_before() should not be called while animating');\n // this places the menu into the correct location before it animates in\n // this css class doesn't actually kick off any animations\n this.el.classList.add(SHOW_MENU);\n if (this.backdropEl) {\n this.backdropEl.classList.add(SHOW_BACKDROP);\n }\n this.blocker.block();\n this.isAnimating = true;\n if (shouldOpen) {\n this.ionWillOpen.emit();\n }\n else {\n this.ionWillClose.emit();\n }\n }\n afterAnimation(isOpen) {\n assert(this.isAnimating, '_before() should be called while animating');\n // keep opening/closing the menu disabled for a touch more yet\n // only add listeners/css if it's enabled and isOpen\n // and only remove listeners/css if it's not open\n // emit opened/closed events\n this._isOpen = isOpen;\n this.isAnimating = false;\n if (!this._isOpen) {\n this.blocker.unblock();\n }\n if (isOpen) {\n // add css class\n if (this.contentEl) {\n this.contentEl.classList.add(MENU_CONTENT_OPEN);\n }\n // emit open event\n this.ionDidOpen.emit();\n }\n else {\n // remove css classes\n this.el.classList.remove(SHOW_MENU);\n if (this.contentEl) {\n this.contentEl.classList.remove(MENU_CONTENT_OPEN);\n }\n if (this.backdropEl) {\n this.backdropEl.classList.remove(SHOW_BACKDROP);\n }\n if (this.animation) {\n this.animation.stop();\n }\n // emit close event\n this.ionDidClose.emit();\n }\n }\n updateState() {\n const isActive = this._isActive();\n if (this.gesture) {\n this.gesture.enable(isActive && this.swipeGesture);\n }\n // Close menu immediately\n if (!isActive && this._isOpen) {\n // close if this menu is open, and should not be enabled\n this.forceClosing();\n }\n if (!this.disabled) {\n menuController._setActiveMenu(this);\n }\n assert(!this.isAnimating, 'can not be animating');\n }\n forceClosing() {\n assert(this._isOpen, 'menu cannot be closed');\n this.isAnimating = true;\n const ani = this.animation.direction('reverse');\n ani.play({ sync: true });\n this.afterAnimation(false);\n }\n render() {\n const { isEndSide, type, disabled, isPaneVisible } = this;\n const mode = getIonMode(this);\n return (h(Host, { role: \"navigation\", class: {\n [mode]: true,\n [`menu-type-${type}`]: true,\n 'menu-enabled': !disabled,\n 'menu-side-end': isEndSide,\n 'menu-side-start': !isEndSide,\n 'menu-pane-visible': isPaneVisible\n } }, h(\"div\", { class: \"menu-inner\", part: \"container\", ref: el => this.menuInnerEl = el }, h(\"slot\", null)), h(\"ion-backdrop\", { ref: el => this.backdropEl = el, class: \"menu-backdrop\", tappable: false, stopPropagation: false, part: \"backdrop\" })));\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"type\": [\"typeChanged\"],\n \"disabled\": [\"disabledChanged\"],\n \"side\": [\"sideChanged\"],\n \"swipeGesture\": [\"swipeGestureChanged\"]\n }; }\n};\nconst computeDelta = (deltaX, isOpen, isEndSide) => {\n return Math.max(0, isOpen !== isEndSide ? -deltaX : deltaX);\n};\nconst checkEdgeSide = (win, posX, isEndSide, maxEdgeStart) => {\n if (isEndSide) {\n return posX >= win.innerWidth - maxEdgeStart;\n }\n else {\n return posX <= maxEdgeStart;\n }\n};\nconst SHOW_MENU = 'show-menu';\nconst SHOW_BACKDROP = 'show-backdrop';\nconst MENU_CONTENT_OPEN = 'menu-content-open';\nMenu.style = {\n ios: menuIosCss,\n md: menuMdCss\n};\n\n// Given a menu, return whether or not the menu toggle should be visible\nconst updateVisibility = async (menu) => {\n const menuEl = await menuController.get(menu);\n return !!(menuEl && await menuEl.isActive());\n};\n\nconst menuButtonIosCss = \":host{--background:transparent;--color-focused:currentColor;--border-radius:initial;--padding-top:0;--padding-bottom:0;color:var(--color);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none}.button-native{border-radius:var(--border-radius);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}ion-icon{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;pointer-events:none}:host(.menu-button-hidden){display:none}:host(.menu-button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity, 0)}}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host{--background-focused:currentColor;--background-focused-opacity:.1;--border-radius:4px;--color:var(--ion-color-primary, #3880ff);--padding-start:5px;--padding-end:5px;height:32px;font-size:31px}:host(.ion-activated){opacity:0.4}@media (any-hover: hover){:host(:hover){opacity:0.6}}\";\n\nconst menuButtonMdCss = \":host{--background:transparent;--color-focused:currentColor;--border-radius:initial;--padding-top:0;--padding-bottom:0;color:var(--color);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none}.button-native{border-radius:var(--border-radius);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}ion-icon{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;pointer-events:none}:host(.menu-button-hidden){display:none}:host(.menu-button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity, 0)}}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host{--background-focused:currentColor;--background-focused-opacity:.12;--background-hover:currentColor;--background-hover-opacity:.04;--border-radius:50%;--color:initial;--padding-start:8px;--padding-end:8px;width:48px;height:48px;font-size:24px}:host(.ion-color.ion-focused)::after{background:var(--ion-color-base)}@media (any-hover: hover){:host(.ion-color:hover) .button-native::after{background:var(--ion-color-base)}}\";\n\nconst MenuButton = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.visible = false;\n /**\n * If `true`, the user cannot interact with the menu button.\n */\n this.disabled = false;\n /**\n * Automatically hides the menu button when the corresponding menu is not active\n */\n this.autoHide = true;\n /**\n * The type of the button.\n */\n this.type = 'button';\n this.onClick = async () => {\n return menuController.toggle(this.menu);\n };\n }\n componentDidLoad() {\n this.visibilityChanged();\n }\n async visibilityChanged() {\n this.visible = await updateVisibility(this.menu);\n }\n render() {\n const { color, disabled } = this;\n const mode = getIonMode(this);\n const menuIcon = config.get('menuIcon', mode === 'ios' ? 'menu-outline' : 'menu-sharp');\n const hidden = this.autoHide && !this.visible;\n const attrs = {\n type: this.type\n };\n return (h(Host, { onClick: this.onClick, \"aria-disabled\": disabled ? 'true' : null, \"aria-hidden\": hidden ? 'true' : null, class: createColorClasses(color, {\n [mode]: true,\n 'button': true,\n 'menu-button-hidden': hidden,\n 'menu-button-disabled': disabled,\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n 'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),\n 'ion-activatable': true,\n 'ion-focusable': true\n }) }, h(\"button\", Object.assign({}, attrs, { disabled: disabled, class: \"button-native\", part: \"native\", \"aria-label\": \"menu\" }), h(\"span\", { class: \"button-inner\" }, h(\"slot\", null, h(\"ion-icon\", { part: \"icon\", icon: menuIcon, mode: mode, lazy: false, \"aria-hidden\": \"true\" }))), mode === 'md' && h(\"ion-ripple-effect\", { type: \"unbounded\" }))));\n }\n get el() { return getElement(this); }\n};\nMenuButton.style = {\n ios: menuButtonIosCss,\n md: menuButtonMdCss\n};\n\nconst menuToggleCss = \":host(.menu-toggle-hidden){display:none}\";\n\nconst MenuToggle = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.visible = false;\n /**\n * Automatically hides the content when the corresponding menu is not active.\n *\n * By default, it's `true`. Change it to `false` in order to\n * keep `ion-menu-toggle` always visible regardless the state of the menu.\n */\n this.autoHide = true;\n this.onClick = () => {\n return menuController.toggle(this.menu);\n };\n }\n connectedCallback() {\n this.visibilityChanged();\n }\n async visibilityChanged() {\n this.visible = await updateVisibility(this.menu);\n }\n render() {\n const mode = getIonMode(this);\n const hidden = this.autoHide && !this.visible;\n return (h(Host, { onClick: this.onClick, \"aria-hidden\": hidden ? 'true' : null, class: {\n [mode]: true,\n 'menu-toggle-hidden': hidden,\n } }, h(\"slot\", null)));\n }\n};\nMenuToggle.style = menuToggleCss;\n\nexport { Menu as ion_menu, MenuButton as ion_menu_button, MenuToggle as ion_menu_toggle };\n"]} |