{"version":3,"sources":["webpack:///./node_modules/@ionic/core/dist/esm-es5/theme-18cbe2cc.js","webpack:///./node_modules/@ionic/core/dist/esm-es5/ion-menu_4-md.entry.js","webpack:///./node_modules/@ionic/core/dist/esm-es5/cubic-bezier-2812fda3.js"],"names":["hostContext","selector","el","closest","createColorClasses","color","_a","length","undefined","getClassMap","classes","map","Array","isArray","split","filter","c","trim","forEach","SCHEME","openURL","url","ev","direction","router","this","test","document","querySelector","preventDefault","push","Menu","class_1","prototype","typeChanged","type","oldType","contentEl","classList","remove","add","removeAttribute","menuInnerEl","animation","disabledChanged","updateState","ionMenuChange","emit","disabled","open","_isOpen","sideChanged","isEndSide","side","swipeGestureChanged","connectedCallback","content","_this","_b","label","get","mode","parent","parentNode","contentId","console","warn","getElementById","tagName","_register","error","gesture","sent","createGesture","gestureName","gesturePriority","threshold","canStart","onWillStart","onStart","onMove","onEnd","componentDidLoad","disconnectedCallback","blocker","destroy","_unregister","backdropEl","onSplitPaneChanged","isPaneVisible","detail","isPane","onBackdropClick","lastOnEnd","timeStamp","composedPath","includes","stopPropagation","close","isOpen","Promise","resolve","isActive","_isActive","animated","setOpen","toggle","shouldOpen","_setOpen","isAnimating","beforeAnimation","loadAnimation","startAnimation","afterAnimation","width","offsetWidth","_createAnimation","getBoolean","duration","fill","ani","isReversed","easing","playAsync","playSync","canSwipe","swipeGesture","_getOpenSync","checkEdgeSide","window","currentX","maxEdgeStart","progressStart","stepValue","computeDelta","deltaX","progressStep","shouldCompleteRight","shouldComplete","newStepValue","adjustedStepValue","z","velocity","velocityX","shouldCompleteLeft","onFinish","oneTimeCallback","progressEnd","SHOW_MENU","SHOW_BACKDROP","block","ionWillOpen","ionWillClose","unblock","MENU_CONTENT_OPEN","ionDidOpen","stop","ionDidClose","setDisabled","forceClosing","_setActiveMenu","render","role","class","ref","tappable","Object","defineProperty","enumerable","configurable","hostRef","createBlocker","disableScroll","updateVisibility","menu","menuEl","Math","max","win","posX","innerWidth","MenuButton","class_2","visibilityChanged","visible","menuIcon","hidden","autoHide","attrs","onClick","assign","icon","lazy","class_3","enable","isEnabled","getOpen","getMenus","registerAnimation","name","MenuController","class_4","MenuToggle","Point","x","y","getTimeGivenProgression","p0","p1","p2","p3","progression","tValues","solveCubicBezier","solveCubicParametricEquation","t","pow","refPoint","solveCubicEquation","root","a","b","d","p","q","discriminant","sqrt","r","phi","acos","s","cos","PI"],"mappings":"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","file":"js/chunk-276d98b6.dc239b83.js","sourcesContent":["import { __awaiter, __generator } from \"tslib\";\nvar hostContext = function (selector, el) {\n return el.closest(selector) !== null;\n};\n/**\n * Create the mode and color classes for the component based on the classes passed in\n */\nvar createColorClasses = function (color) {\n var _a;\n return (typeof color === 'string' && color.length > 0) ? (_a = {\n 'ion-color': true\n },\n _a[\"ion-color-\" + color] = true,\n _a) : undefined;\n};\nvar getClassList = function (classes) {\n if (classes !== undefined) {\n var array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter(function (c) { return c != null; })\n .map(function (c) { return c.trim(); })\n .filter(function (c) { return c !== ''; });\n }\n return [];\n};\nvar getClassMap = function (classes) {\n var map = {};\n getClassList(classes).forEach(function (c) { return map[c] = true; });\n return map;\n};\nvar SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nvar openURL = function (url, ev, direction) { return __awaiter(void 0, void 0, void 0, function () {\n var router;\n return __generator(this, function (_a) {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return [2 /*return*/, router.push(url, direction)];\n }\n }\n return [2 /*return*/, false];\n });\n}); };\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n","import { __awaiter, __generator } from \"tslib\";\nimport { r as registerInstance, c as getIonMode, d as createEvent, h, H as Host, e as getElement } from './core-feeeff0d.js';\nimport { b as config } from './config-3c7f3790.js';\nimport { i as isEndSide, b as assert, c as clamp } from './helpers-46f4a262.js';\nimport './animation-af478fe9.js';\nimport { GESTURE_CONTROLLER } from './index-624eea58.js';\nimport { m as menuController } from './index-1e5940d5.js';\nimport { c as createColorClasses } from './theme-18cbe2cc.js';\nimport { g as getTimeGivenProgression, P as Point } from './cubic-bezier-2812fda3.js';\nvar Menu = /** @class */ (function () {\n function class_1(hostRef) {\n registerInstance(this, hostRef);\n this.lastOnEnd = 0;\n this.blocker = GESTURE_CONTROLLER.createBlocker({ disableScroll: true });\n this.mode = getIonMode(this);\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 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 }\n class_1.prototype.typeChanged = function (type, oldType) {\n var 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 class_1.prototype.disabledChanged = function () {\n this.updateState();\n this.ionMenuChange.emit({\n disabled: this.disabled,\n open: this._isOpen\n });\n };\n class_1.prototype.sideChanged = function () {\n this.isEndSide = isEndSide(this.side);\n };\n class_1.prototype.swipeGestureChanged = function () {\n this.updateState();\n };\n class_1.prototype.connectedCallback = function () {\n return __awaiter(this, void 0, void 0, function () {\n var el, parent, content, _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this.type === undefined) {\n this.type = config.get('menuType', this.mode === 'ios' ? 'reveal' : 'overlay');\n }\n el = this.el;\n 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 ...\\n
...
\\n\\nAFTER:\\n \\n
...
\\n\");\n }\n 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 [2 /*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 _a = this;\n return [4 /*yield*/, import('./index-624eea58.js')];\n case 1:\n _a.gesture = (_b.sent()).createGesture({\n el: document,\n gestureName: 'menu-swipe',\n gesturePriority: 30,\n threshold: 10,\n canStart: function (ev) { return _this.canStart(ev); },\n onWillStart: function () { return _this.onWillStart(); },\n onStart: function () { return _this.onStart(); },\n onMove: function (ev) { return _this.onMove(ev); },\n onEnd: function (ev) { return _this.onEnd(ev); },\n });\n this.updateState();\n return [2 /*return*/];\n }\n });\n });\n };\n class_1.prototype.componentDidLoad = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.ionMenuChange.emit({ disabled: this.disabled, open: this._isOpen });\n this.updateState();\n return [2 /*return*/];\n });\n });\n };\n class_1.prototype.disconnectedCallback = function () {\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 class_1.prototype.onSplitPaneChanged = function (ev) {\n this.isPaneVisible = ev.detail.isPane(this.el);\n this.updateState();\n };\n class_1.prototype.onBackdropClick = function (ev) {\n if (this._isOpen && this.lastOnEnd < ev.timeStamp - 100) {\n var 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 class_1.prototype.isOpen = function () {\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 class_1.prototype.isActive = function () {\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 class_1.prototype.open = function (animated) {\n if (animated === void 0) { 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 class_1.prototype.close = function (animated) {\n if (animated === void 0) { 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 class_1.prototype.toggle = function (animated) {\n if (animated === void 0) { 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 class_1.prototype.setOpen = function (shouldOpen, animated) {\n if (animated === void 0) { animated = true; }\n return menuController._setOpen(this, shouldOpen, animated);\n };\n class_1.prototype._setOpen = function (shouldOpen, animated) {\n if (animated === void 0) { animated = true; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\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 [2 /*return*/, false];\n }\n this.beforeAnimation(shouldOpen);\n return [4 /*yield*/, this.loadAnimation()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.startAnimation(shouldOpen, animated)];\n case 2:\n _a.sent();\n this.afterAnimation(shouldOpen);\n return [2 /*return*/, true];\n }\n });\n });\n };\n class_1.prototype.loadAnimation = function () {\n return __awaiter(this, void 0, void 0, function () {\n var width, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n width = this.menuInnerEl.offsetWidth;\n if (width === this.width && this.animation !== undefined) {\n return [2 /*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 _a = this;\n return [4 /*yield*/, menuController._createAnimation(this.type, this)];\n case 1:\n // Create new animation\n _a.animation = _b.sent();\n if (!config.getBoolean('animated', true)) {\n this.animation.duration(0);\n }\n this.animation.fill('both');\n return [2 /*return*/];\n }\n });\n });\n };\n class_1.prototype.startAnimation = function (shouldOpen, animated) {\n return __awaiter(this, void 0, void 0, function () {\n var isReversed, ani;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n isReversed = !shouldOpen;\n ani = this.animation\n .direction((isReversed) ? 'reverse' : 'normal')\n .easing((isReversed) ? 'cubic-bezier(0.4, 0.0, 0.6, 1)' : 'cubic-bezier(0.0, 0.0, 0.2, 1)');\n if (!animated) return [3 /*break*/, 2];\n return [4 /*yield*/, ani.playAsync()];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n ani.playSync();\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n class_1.prototype._isActive = function () {\n return !this.disabled && !this.isPaneVisible;\n };\n class_1.prototype.canSwipe = function () {\n return this.swipeGesture && !this.isAnimating && this._isActive();\n };\n class_1.prototype.canStart = function (detail) {\n if (!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 class_1.prototype.onWillStart = function () {\n this.beforeAnimation(!this._isOpen);\n return this.loadAnimation();\n };\n class_1.prototype.onStart = function () {\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\n .direction((this._isOpen) ? 'reverse' : 'normal')\n .progressStart(true);\n };\n class_1.prototype.onMove = function (detail) {\n if (!this.isAnimating || !this.animation) {\n assert(false, 'isAnimating has to be true');\n return;\n }\n var delta = computeDelta(detail.deltaX, this._isOpen, this.isEndSide);\n var stepValue = delta / this.width;\n this.animation.progressStep(stepValue);\n };\n class_1.prototype.onEnd = function (detail) {\n var _this = this;\n if (!this.isAnimating || !this.animation) {\n assert(false, 'isAnimating has to be true');\n return;\n }\n var isOpen = this._isOpen;\n var isEndSide = this.isEndSide;\n var delta = computeDelta(detail.deltaX, isOpen, isEndSide);\n var width = this.width;\n var stepValue = delta / width;\n var velocity = detail.velocityX;\n var z = width / 2.0;\n var shouldCompleteRight = velocity >= 0 && (velocity > 0.2 || detail.deltaX > z);\n var shouldCompleteLeft = velocity <= 0 && (velocity < -0.2 || detail.deltaX < -z);\n var shouldComplete = isOpen\n ? isEndSide ? shouldCompleteRight : shouldCompleteLeft\n : isEndSide ? shouldCompleteLeft : shouldCompleteRight;\n var shouldOpen = !isOpen && shouldComplete;\n if (isOpen && !shouldComplete) {\n shouldOpen = true;\n }\n this.lastOnEnd = detail.timeStamp;\n // Account for rounding errors in JS\n var 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 var 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(new Point(0, 0), new Point(0.4, 0), new Point(0.6, 1), new Point(1, 1), clamp(0, adjustedStepValue, 1));\n this.animation\n .easing('cubic-bezier(0.4, 0.0, 0.6, 1)')\n .onFinish(function () { return _this.afterAnimation(shouldOpen); }, { oneTimeCallback: true })\n .progressEnd(shouldComplete ? 1 : 0, newStepValue, 300);\n };\n class_1.prototype.beforeAnimation = function (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 class_1.prototype.afterAnimation = function (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 class_1.prototype.updateState = function () {\n var isActive = this._isActive();\n if (this.gesture) {\n this.gesture.setDisabled(!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 class_1.prototype.forceClosing = function () {\n assert(this._isOpen, 'menu cannot be closed');\n this.isAnimating = true;\n var ani = this.animation.direction('reverse');\n ani.playSync();\n this.afterAnimation(false);\n };\n class_1.prototype.render = function () {\n var _a;\n var _this = this;\n var _b = this, isEndSide = _b.isEndSide, type = _b.type, disabled = _b.disabled, mode = _b.mode, isPaneVisible = _b.isPaneVisible;\n return (h(Host, { role: \"navigation\", class: (_a = {},\n _a[mode] = true,\n _a[\"menu-type-\" + type] = true,\n _a['menu-enabled'] = !disabled,\n _a['menu-side-end'] = isEndSide,\n _a['menu-side-start'] = !isEndSide,\n _a['menu-pane-visible'] = isPaneVisible,\n _a) }, h(\"div\", { class: \"menu-inner\", ref: function (el) { return _this.menuInnerEl = el; } }, h(\"slot\", null)), h(\"ion-backdrop\", { ref: function (el) { return _this.backdropEl = el; }, class: \"menu-backdrop\", tappable: false, stopPropagation: false })));\n };\n Object.defineProperty(class_1.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(class_1, \"watchers\", {\n get: function () {\n return {\n \"type\": [\"typeChanged\"],\n \"disabled\": [\"disabledChanged\"],\n \"side\": [\"sideChanged\"],\n \"swipeGesture\": [\"swipeGestureChanged\"]\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(class_1, \"style\", {\n get: function () { return \":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}:host-context([dir=rtl]) .menu-inner,[dir=rtl] .menu-inner{left:unset;right:unset;left:auto;right:0;-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:.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:translateZ(0);transform:translateZ(0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}: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:0 2px 22px 0 rgba(0,0,0,.09),4px 0 16px 0 rgba(0,0,0,.18);box-shadow:0 2px 22px 0 rgba(0,0,0,.09),4px 0 16px 0 rgba(0,0,0,.18)}\"; },\n enumerable: true,\n configurable: true\n });\n return class_1;\n}());\nvar computeDelta = function (deltaX, isOpen, isEndSide) {\n return Math.max(0, isOpen !== isEndSide ? -deltaX : deltaX);\n};\nvar checkEdgeSide = function (win, posX, isEndSide, maxEdgeStart) {\n if (isEndSide) {\n return posX >= win.innerWidth - maxEdgeStart;\n }\n else {\n return posX <= maxEdgeStart;\n }\n};\nvar SHOW_MENU = 'show-menu';\nvar SHOW_BACKDROP = 'show-backdrop';\nvar MENU_CONTENT_OPEN = 'menu-content-open';\n// Given a menu, return whether or not the menu toggle should be visible\nvar updateVisibility = function (menu) { return __awaiter(void 0, void 0, void 0, function () {\n var menuEl, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, menuController.get(menu)];\n case 1:\n menuEl = _b.sent();\n _a = menuEl;\n if (!_a) return [3 /*break*/, 3];\n return [4 /*yield*/, menuEl.isActive()];\n case 2:\n _a = (_b.sent());\n _b.label = 3;\n case 3: return [2 /*return*/, !!(_a)];\n }\n });\n}); };\nvar MenuButton = /** @class */ (function () {\n function class_2(hostRef) {\n var _this = this;\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 = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, menuController.toggle(this.menu)];\n });\n }); };\n }\n class_2.prototype.componentDidLoad = function () {\n this.visibilityChanged();\n };\n class_2.prototype.visibilityChanged = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4 /*yield*/, updateVisibility(this.menu)];\n case 1:\n _a.visible = _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n class_2.prototype.render = function () {\n var _a;\n var _b = this, color = _b.color, disabled = _b.disabled;\n var mode = getIonMode(this);\n var menuIcon = config.get('menuIcon', 'menu');\n var hidden = this.autoHide && !this.visible;\n var attrs = {\n type: this.type\n };\n return (h(Host, { onClick: this.onClick, \"aria-disabled\": disabled ? 'true' : null, \"aria-hidden\": hidden ? 'true' : null, class: Object.assign(Object.assign((_a = {}, _a[mode] = true, _a), createColorClasses(color)), { 'button': true, 'menu-button-hidden': hidden, 'menu-button-disabled': disabled, 'ion-activatable': true, 'ion-focusable': true }) }, h(\"button\", Object.assign({}, attrs, { disabled: disabled, class: \"button-native\" }), h(\"slot\", null, h(\"ion-icon\", { icon: menuIcon, mode: mode, lazy: false })), mode === 'md' && h(\"ion-ripple-effect\", { type: \"unbounded\" }))));\n };\n Object.defineProperty(class_2, \"style\", {\n get: function () { return \":host{--background:transparent;--color-focused:var(--color);--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-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;-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)}}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:.5;pointer-events:none}\\@media (any-hover:hover){:host(:hover) .button-native{background:var(--background-hover);color:var(--color-hover)}}:host(.ion-focused) .button-native{background:var(--background-focused);color:var(--color-focused)}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host-context(ion-toolbar:not(.ion-color)){color:var(--ion-toolbar-color,var(--color))}:host{--background-focused:rgba(66,66,66,0.24);--background-hover:rgba(66,66,66,0.08);--border-radius:50%;--color:initial;--padding-start:8px;--padding-end:8px;width:48px;height:48px;font-size:24px}\\@media (any-hover:hover){:host(.ion-color:hover) .button-native{background:rgba(var(--ion-color-base-rgb),.08)}}:host(.ion-color.ion-focused) .button-native{background:rgba(var(--ion-color-base-rgb),.24);color:var(--ion-color-base)}\"; },\n enumerable: true,\n configurable: true\n });\n return class_2;\n}());\nvar MenuController = /** @class */ (function () {\n function class_3(hostRef) {\n registerInstance(this, hostRef);\n }\n /**\n * Open the menu. If a menu is not provided then it will open the first\n * menu found. If the specified menu is `start` or `end`, then it will open\n * the enabled menu on that side. Otherwise, it will try to find the menu\n * using the menu's `id` property. If a menu is not found then it will\n * return `false`.\n *\n * @param menu The menuId or side of the menu to open.\n */\n class_3.prototype.open = function (menu) {\n return menuController.open(menu);\n };\n /**\n * Close the menu. If a menu is specified, it will close that menu.\n * If no menu is specified, then it will close any menu that is open.\n * If it does not find any open menus, it will return `false`.\n *\n * @param menu The menuId or side of the menu to close.\n */\n class_3.prototype.close = function (menu) {\n return menuController.close(menu);\n };\n /**\n * Toggle the menu open or closed. If the menu is already open, it will try to\n * close the menu, otherwise it will try to open it. Returns `false` if\n * a menu is not found.\n *\n * @param menu The menuId or side of the menu to toggle.\n */\n class_3.prototype.toggle = function (menu) {\n return menuController.toggle(menu);\n };\n /**\n * Enable or disable a menu. Disabling a menu will not allow gestures\n * for that menu or any calls to open it. This is useful when there are\n * multiple menus on the same side and only one of them should be allowed\n * to open. Enabling a menu will automatically disable all other menus\n * on that side.\n *\n * @param enable If `true`, the menu should be enabled.\n * @param menu The menuId or side of the menu to enable or disable.\n */\n class_3.prototype.enable = function (enable, menu) {\n return menuController.enable(enable, menu);\n };\n /**\n * Enable or disable the ability to swipe open the menu.\n *\n * @param enable If `true`, the menu swipe gesture should be enabled.\n * @param menu The menuId or side of the menu to enable or disable the swipe gesture on.\n */\n class_3.prototype.swipeGesture = function (enable, menu) {\n return menuController.swipeGesture(enable, menu);\n };\n /**\n * Get whether or not the menu is open. Returns `true` if the specified\n * menu is open. If a menu is not specified, it will return `true` if\n * any menu is currently open.\n *\n * @param menu The menuId or side of the menu that is being checked.\n */\n class_3.prototype.isOpen = function (menu) {\n return menuController.isOpen(menu);\n };\n /**\n * Get whether or not the menu is enabled. Returns `true` if the\n * specified menu is enabled. Returns `false` if a menu is disabled\n * or not found.\n *\n * @param menu The menuId or side of the menu that is being checked.\n */\n class_3.prototype.isEnabled = function (menu) {\n return menuController.isEnabled(menu);\n };\n /**\n * Get a menu instance. If a menu is not provided then it will return the first\n * menu found. If the specified menu is `start` or `end`, then it will return the\n * enabled menu on that side. Otherwise, it will try to find the menu using the menu's\n * `id` property. If a menu is not found then it will return `null`.\n *\n * @param menu The menuId or side of the menu.\n */\n class_3.prototype.get = function (menu) {\n return menuController.get(menu);\n };\n /**\n * Get the instance of the opened menu. Returns `null` if a menu is not found.\n */\n class_3.prototype.getOpen = function () {\n return menuController.getOpen();\n };\n /**\n * Get all menu instances.\n */\n class_3.prototype.getMenus = function () {\n return menuController.getMenus();\n };\n /**\n * Get whether or not a menu is animating. Returns `true` if any\n * menu is currently animating.\n */\n class_3.prototype.isAnimating = function () {\n return menuController.isAnimating();\n };\n /**\n * Registers a new animation that can be used with any `ion-menu` by\n * passing the name of the animation in its `type` property.\n *\n * @param name The name of the animation to register.\n * @param animation The animation function to register.\n */\n class_3.prototype.registerAnimation = function (name, animation) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, menuController.registerAnimation(name, animation)];\n });\n });\n };\n return class_3;\n}());\nvar MenuToggle = /** @class */ (function () {\n function class_4(hostRef) {\n var _this = this;\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 = function () {\n return menuController.toggle(_this.menu);\n };\n }\n class_4.prototype.connectedCallback = function () {\n this.visibilityChanged();\n };\n class_4.prototype.visibilityChanged = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this;\n return [4 /*yield*/, updateVisibility(this.menu)];\n case 1:\n _a.visible = _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n class_4.prototype.render = function () {\n var _a;\n var mode = getIonMode(this);\n var hidden = this.autoHide && !this.visible;\n return (h(Host, { onClick: this.onClick, \"aria-hidden\": hidden ? 'true' : null, class: (_a = {},\n _a[mode] = true,\n _a['menu-toggle-hidden'] = hidden,\n _a) }, h(\"slot\", null)));\n };\n Object.defineProperty(class_4, \"style\", {\n get: function () { return \":host(.menu-toggle-hidden){display:none}\"; },\n enumerable: true,\n configurable: true\n });\n return class_4;\n}());\nexport { Menu as ion_menu, MenuButton as ion_menu_button, MenuController as ion_menu_controller, MenuToggle as ion_menu_toggle };\n","/**\n * Based on:\n * https://stackoverflow.com/questions/7348009/y-coordinate-for-a-given-x-cubic-bezier\n * https://math.stackexchange.com/questions/26846/is-there-an-explicit-form-for-cubic-b%C3%A9zier-curves\n * TODO: Reduce rounding error\n */\nvar Point = /** @class */ (function () {\n function Point(x, y) {\n this.x = x;\n this.y = y;\n }\n return Point;\n}());\n/**\n * Given a cubic-bezier curve, get the x value (time) given\n * the y value (progression).\n * Ex: cubic-bezier(0.32, 0.72, 0, 1);\n * P0: (0, 0)\n * P1: (0.32, 0.72)\n * P2: (0, 1)\n * P3: (1, 1)\n *\n * If you give a cubic bezier curve that never reaches the\n * provided progression, this function will return NaN.\n */\nvar getTimeGivenProgression = function (p0, p1, p2, p3, progression) {\n var tValues = solveCubicBezier(p0.y, p1.y, p2.y, p3.y, progression);\n return solveCubicParametricEquation(p0.x, p1.x, p2.x, p3.x, tValues[0]); // TODO: Add better strategy for dealing with multiple solutions\n};\n/**\n * Solve a cubic equation in one dimension (time)\n */\nvar solveCubicParametricEquation = function (p0, p1, p2, p3, t) {\n var partA = (3 * p1) * Math.pow(t - 1, 2);\n var partB = (-3 * p2 * t) + (3 * p2) + (p3 * t);\n var partC = p0 * Math.pow(t - 1, 3);\n return t * (partA + (t * partB)) - partC;\n};\n/**\n * Find the `t` value for a cubic bezier using Cardano's formula\n */\nvar solveCubicBezier = function (p0, p1, p2, p3, refPoint) {\n p0 -= refPoint;\n p1 -= refPoint;\n p2 -= refPoint;\n p3 -= refPoint;\n var roots = solveCubicEquation(p3 - 3 * p2 + 3 * p1 - p0, 3 * p2 - 6 * p1 + 3 * p0, 3 * p1 - 3 * p0, p0);\n return roots.filter(function (root) { return root >= 0 && root <= 1; });\n};\nvar solveQuadraticEquation = function (a, b, c) {\n var discriminant = b * b - 4 * a * c;\n if (discriminant < 0) {\n return [];\n }\n else {\n return [\n (-b + Math.sqrt(discriminant)) / (2 * a),\n (-b - Math.sqrt(discriminant)) / (2 * a)\n ];\n }\n};\nvar solveCubicEquation = function (a, b, c, d) {\n if (a === 0) {\n return solveQuadraticEquation(b, c, d);\n }\n b /= a;\n c /= a;\n d /= a;\n var p = (3 * c - b * b) / 3;\n var q = (2 * b * b * b - 9 * b * c + 27 * d) / 27;\n if (p === 0) {\n return [Math.pow(-q, 1 / 3)];\n }\n else if (q === 0) {\n return [Math.sqrt(-p), -Math.sqrt(-p)];\n }\n var discriminant = Math.pow(q / 2, 2) + Math.pow(p / 3, 3);\n if (discriminant === 0) {\n return [Math.pow(q / 2, 1 / 2) - b / 3];\n }\n else if (discriminant > 0) {\n return [Math.pow(-(q / 2) + Math.sqrt(discriminant), 1 / 3) - Math.pow((q / 2) + Math.sqrt(discriminant), 1 / 3) - b / 3];\n }\n var r = Math.sqrt(Math.pow(-(p / 3), 3));\n var phi = Math.acos(-(q / (2 * Math.sqrt(Math.pow(-(p / 3), 3)))));\n var s = 2 * Math.pow(r, 1 / 3);\n return [\n s * Math.cos(phi / 3) - b / 3,\n s * Math.cos((phi + 2 * Math.PI) / 3) - b / 3,\n s * Math.cos((phi + 4 * Math.PI) / 3) - b / 3\n ];\n};\nexport { Point as P, getTimeGivenProgression as g };\n"],"sourceRoot":""}