@ionic/core 7.6.2-dev.11704998705.1e1f9850 → 7.6.2-dev.11705355381.14b22962
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ion-menu.js +21 -15
- package/components/ion-split-pane.js +26 -15
- package/css/themes/dark.always.css +3 -3
- package/css/themes/dark.system.css +3 -3
- package/css/themes/dark.system.css.map +1 -1
- package/dist/cjs/ion-menu_3.cjs.entry.js +21 -16
- package/dist/cjs/ion-split-pane.cjs.entry.js +24 -14
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/menu/menu.ios.css +64 -3
- package/dist/collection/components/menu/menu.js +19 -13
- package/dist/collection/components/menu/menu.md.css +64 -3
- package/dist/collection/components/split-pane/split-pane.ios.css +1 -53
- package/dist/collection/components/split-pane/split-pane.js +46 -12
- package/dist/collection/components/split-pane/split-pane.md.css +1 -53
- package/dist/collection/components/split-pane/test/wrapped-menu/split-pane.e2e.js +41 -0
- package/dist/docs.json +1 -1
- package/dist/esm/ion-menu_3.entry.js +21 -16
- package/dist/esm/ion-split-pane.entry.js +24 -14
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-19d9ceb8.system.js +1 -1
- package/dist/ionic/p-4eae8c91.entry.js +4 -0
- package/dist/ionic/p-56944895.entry.js +4 -0
- package/dist/ionic/p-b231b7cf.system.entry.js +4 -0
- package/dist/ionic/p-cb3ef9c1.system.entry.js +4 -0
- package/dist/types/components/menu/menu.d.ts +11 -1
- package/dist/types/components/split-pane/split-pane.d.ts +14 -2
- package/dist/types/components.d.ts +1 -0
- package/hydrate/index.js +42 -29
- package/package.json +1 -1
- package/dist/ionic/p-308b6cf2.system.entry.js +0 -4
- package/dist/ionic/p-38531958.system.entry.js +0 -4
- package/dist/ionic/p-950c05ad.entry.js +0 -4
- package/dist/ionic/p-aa8b021d.entry.js +0 -4
package/components/ion-menu.js
CHANGED
|
@@ -7,12 +7,13 @@ import { G as GESTURE_CONTROLLER } from './gesture-controller.js';
|
|
|
7
7
|
import { o as isEndSide, i as inheritAriaAttributes, p as assert, m as clamp } from './helpers.js';
|
|
8
8
|
import { m as menuController } from './index4.js';
|
|
9
9
|
import { o as getPresentedOverlay } from './overlays.js';
|
|
10
|
+
import { h as hostContext } from './theme.js';
|
|
10
11
|
import { c as config, b as getIonMode } from './ionic-global.js';
|
|
11
12
|
import { d as defineCustomElement$2 } from './backdrop.js';
|
|
12
13
|
|
|
13
|
-
const 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{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);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(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}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;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
|
|
14
|
+
const 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{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);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(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}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){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
|
|
14
15
|
|
|
15
|
-
const 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{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);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(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}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;transform:none;-webkit-box-shadow:none;box-shadow:none}: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)}";
|
|
16
|
+
const 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{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);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(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}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){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}: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)}";
|
|
16
17
|
|
|
17
18
|
const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
|
|
18
19
|
const mdEasing = 'cubic-bezier(0.0,0.0,0.2,1)';
|
|
@@ -147,6 +148,19 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
|
|
|
147
148
|
}
|
|
148
149
|
async componentDidLoad() {
|
|
149
150
|
this.didLoad = true;
|
|
151
|
+
/**
|
|
152
|
+
* A menu inside of a split pane is assumed
|
|
153
|
+
* to be a side pane.
|
|
154
|
+
*
|
|
155
|
+
* When the menu is loaded it needs to
|
|
156
|
+
* see if it should be considered visible inside
|
|
157
|
+
* of the split pane. If the split pane is
|
|
158
|
+
* hidden then the menu should be too.
|
|
159
|
+
*/
|
|
160
|
+
const splitPane = this.el.closest('ion-split-pane');
|
|
161
|
+
if (splitPane !== null) {
|
|
162
|
+
this.isPaneVisible = await splitPane.isVisible();
|
|
163
|
+
}
|
|
150
164
|
this.menuChanged();
|
|
151
165
|
this.updateState();
|
|
152
166
|
}
|
|
@@ -182,20 +196,11 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
|
|
|
182
196
|
this.contentEl = undefined;
|
|
183
197
|
}
|
|
184
198
|
onSplitPaneChanged(ev) {
|
|
185
|
-
const { target } = ev;
|
|
186
199
|
const closestSplitPane = this.el.closest('ion-split-pane');
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
* a SplitPane changes visibility. As a result, we only want
|
|
191
|
-
* Menu's visibility state to update if its parent SplitPane
|
|
192
|
-
* changes visibility.
|
|
193
|
-
*/
|
|
194
|
-
if (target !== closestSplitPane) {
|
|
195
|
-
return;
|
|
200
|
+
if (closestSplitPane !== null && closestSplitPane === ev.target) {
|
|
201
|
+
this.isPaneVisible = ev.detail.visible;
|
|
202
|
+
this.updateState();
|
|
196
203
|
}
|
|
197
|
-
this.isPaneVisible = ev.detail.isPane(this.el);
|
|
198
|
-
this.updateState();
|
|
199
204
|
}
|
|
200
205
|
onBackdropClick(ev) {
|
|
201
206
|
// TODO(FW-2832): type (CustomEvent triggers errors which should be sorted)
|
|
@@ -602,7 +607,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
|
|
|
602
607
|
}
|
|
603
608
|
}
|
|
604
609
|
render() {
|
|
605
|
-
const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
|
|
610
|
+
const { type, disabled, el, isPaneVisible, inheritedAttributes, side } = this;
|
|
606
611
|
const mode = getIonMode(this);
|
|
607
612
|
return (h(Host, { role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
608
613
|
[mode]: true,
|
|
@@ -610,6 +615,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
|
|
|
610
615
|
'menu-enabled': !disabled,
|
|
611
616
|
[`menu-side-${side}`]: true,
|
|
612
617
|
'menu-pane-visible': isPaneVisible,
|
|
618
|
+
'split-pane-side': hostContext('ion-split-pane', el),
|
|
613
619
|
} }, 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" })));
|
|
614
620
|
}
|
|
615
621
|
get el() { return this; }
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
import { proxyCustomElement, HTMLElement, createEvent, Build, h, Host } from '@stencil/core/internal/client';
|
|
5
5
|
import { b as getIonMode } from './ionic-global.js';
|
|
6
6
|
|
|
7
|
-
const splitPaneIosCss = ":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}
|
|
7
|
+
const splitPaneIosCss = ":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}:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host{--border:0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--side-min-width:270px;--side-max-width:28%}";
|
|
8
8
|
|
|
9
|
-
const splitPaneMdCss = ":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}
|
|
9
|
+
const splitPaneMdCss = ":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}:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}: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%}";
|
|
10
10
|
|
|
11
11
|
// TODO(FW-2832): types
|
|
12
12
|
const SPLIT_PANE_MAIN = 'split-pane-main';
|
|
@@ -31,8 +31,13 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
|
|
|
31
31
|
this.when = QUERY['lg'];
|
|
32
32
|
}
|
|
33
33
|
visibleChanged(visible) {
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
this.ionSplitPaneVisible.emit({ visible });
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
async isVisible() {
|
|
40
|
+
return Promise.resolve(this.visible);
|
|
36
41
|
}
|
|
37
42
|
async connectedCallback() {
|
|
38
43
|
// TODO: connectedCallback is fired in CE build
|
|
@@ -40,7 +45,7 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
|
|
|
40
45
|
if (typeof customElements !== 'undefined' && customElements != null) {
|
|
41
46
|
await customElements.whenDefined('ion-split-pane');
|
|
42
47
|
}
|
|
43
|
-
this.
|
|
48
|
+
this.styleMainElement();
|
|
44
49
|
this.updateState();
|
|
45
50
|
}
|
|
46
51
|
disconnectedCallback() {
|
|
@@ -86,13 +91,16 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
|
|
|
86
91
|
this.visible = mediaList.matches;
|
|
87
92
|
}
|
|
88
93
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Attempt to find the main content
|
|
96
|
+
* element inside of the split pane.
|
|
97
|
+
* If found, set it as the main node.
|
|
98
|
+
*
|
|
99
|
+
* We assume that the main node
|
|
100
|
+
* is available in the DOM on split
|
|
101
|
+
* pane load.
|
|
102
|
+
*/
|
|
103
|
+
styleMainElement() {
|
|
96
104
|
if (!Build.isBrowser) {
|
|
97
105
|
return;
|
|
98
106
|
}
|
|
@@ -108,9 +116,11 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
|
|
|
108
116
|
console.warn('split pane cannot have more than one main node');
|
|
109
117
|
return;
|
|
110
118
|
}
|
|
111
|
-
|
|
119
|
+
else {
|
|
120
|
+
setPaneClass(child, isMain);
|
|
121
|
+
foundMain = true;
|
|
122
|
+
}
|
|
112
123
|
}
|
|
113
|
-
setPaneClass(child, isMain);
|
|
114
124
|
}
|
|
115
125
|
if (!foundMain) {
|
|
116
126
|
console.warn('split pane does not have a specified main node');
|
|
@@ -139,7 +149,8 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
|
|
|
139
149
|
"contentId": [513, "content-id"],
|
|
140
150
|
"disabled": [4],
|
|
141
151
|
"when": [8],
|
|
142
|
-
"visible": [32]
|
|
152
|
+
"visible": [32],
|
|
153
|
+
"isVisible": [64]
|
|
143
154
|
}, undefined, {
|
|
144
155
|
"visible": ["visibleChanged"],
|
|
145
156
|
"disabled": ["updateState"],
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
--ion-color-light-tint: #444444;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
.ios
|
|
58
|
+
:root.ios {
|
|
59
59
|
--ion-background-color: #000000;
|
|
60
60
|
--ion-background-color-rgb: 0, 0, 0;
|
|
61
61
|
--ion-text-color: #ffffff;
|
|
@@ -82,13 +82,13 @@
|
|
|
82
82
|
--ion-item-background: #000000;
|
|
83
83
|
--ion-card-background: #1c1c1d;
|
|
84
84
|
}
|
|
85
|
-
.ios
|
|
85
|
+
:root.ios ion-modal {
|
|
86
86
|
--ion-background-color: var(--ion-color-step-100);
|
|
87
87
|
--ion-toolbar-background: var(--ion-color-step-150);
|
|
88
88
|
--ion-toolbar-border-color: var(--ion-color-step-250);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
.md
|
|
91
|
+
:root.md {
|
|
92
92
|
--ion-background-color: #121212;
|
|
93
93
|
--ion-background-color-rgb: 18, 18, 18;
|
|
94
94
|
--ion-text-color: #ffffff;
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
--ion-color-light-tint: #444444;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
.ios
|
|
59
|
+
:root.ios {
|
|
60
60
|
--ion-background-color: #000000;
|
|
61
61
|
--ion-background-color-rgb: 0, 0, 0;
|
|
62
62
|
--ion-text-color: #ffffff;
|
|
@@ -83,13 +83,13 @@
|
|
|
83
83
|
--ion-item-background: #000000;
|
|
84
84
|
--ion-card-background: #1c1c1d;
|
|
85
85
|
}
|
|
86
|
-
.ios
|
|
86
|
+
:root.ios ion-modal {
|
|
87
87
|
--ion-background-color: var(--ion-color-step-100);
|
|
88
88
|
--ion-toolbar-background: var(--ion-color-step-150);
|
|
89
89
|
--ion-toolbar-border-color: var(--ion-color-step-250);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
.md
|
|
92
|
+
:root.md {
|
|
93
93
|
--ion-background-color: #121212;
|
|
94
94
|
--ion-background-color-rgb: 18, 18, 18;
|
|
95
95
|
--ion-text-color: #ffffff;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/css/themes/dark.system.scss","../../src/css/themes/dark.scss"],"names":[],"mappings":"AAEA;ECDE;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;EAKF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;;EAKF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA","file":"dark.system.css","sourcesContent":["@import \"./dark\";\n\n@media (prefers-color-scheme: dark) {\n :root {\n @include dark-base-theme();\n }\n\n .ios
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/css/themes/dark.system.scss","../../src/css/themes/dark.scss"],"names":[],"mappings":"AAEA;ECDE;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;EAKF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;;EAKF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA","file":"dark.system.css","sourcesContent":["@import \"./dark\";\n\n@media (prefers-color-scheme: dark) {\n :root {\n @include dark-base-theme();\n }\n\n :root.ios {\n @include dark-ios-theme();\n }\n\n :root.md {\n @include dark-md-theme();\n }\n}\n","@mixin dark-base-theme() {\n & {\n --ion-color-primary: #4d8dff;\n --ion-color-primary-rgb: 77, 141, 255;\n --ion-color-primary-contrast: #000000;\n --ion-color-primary-contrast-rgb: 0, 0, 0;\n --ion-color-primary-shade: #447ce0;\n --ion-color-primary-tint: #5f98ff;\n --ion-color-secondary: #62bdff;\n --ion-color-secondary-rgb: 98, 189, 255;\n --ion-color-secondary-contrast: #000000;\n --ion-color-secondary-contrast-rgb: 0, 0, 0;\n --ion-color-secondary-shade: #56a6e0;\n --ion-color-secondary-tint: #72c4ff;\n --ion-color-tertiary: #8482fb;\n --ion-color-tertiary-rgb: 132, 130, 251;\n --ion-color-tertiary-contrast: #000000;\n --ion-color-tertiary-contrast-rgb: 0, 0, 0;\n --ion-color-tertiary-shade: #7472dd;\n --ion-color-tertiary-tint: #908ffb;\n --ion-color-success: #2dd55b;\n --ion-color-success-rgb: 45, 213, 91;\n --ion-color-success-contrast: #000000;\n --ion-color-success-contrast-rgb: 0, 0, 0;\n --ion-color-success-shade: #28bb50;\n --ion-color-success-tint: #42d96b;\n --ion-color-warning: #ffce31;\n --ion-color-warning-rgb: 255, 206, 49;\n --ion-color-warning-contrast: #000000;\n --ion-color-warning-contrast-rgb: 0, 0, 0;\n --ion-color-warning-shade: #e0b52b;\n --ion-color-warning-tint: #ffd346;\n --ion-color-danger: #f56570;\n --ion-color-danger-rgb: 245, 101, 112;\n --ion-color-danger-contrast: #000000;\n --ion-color-danger-contrast-rgb: 0, 0, 0;\n --ion-color-danger-shade: #d85963;\n --ion-color-danger-tint: #f6747e;\n --ion-color-dark: #f3f3f3;\n --ion-color-dark-rgb: 243, 243, 243;\n --ion-color-dark-contrast: #000000;\n --ion-color-dark-contrast-rgb: 0, 0, 0;\n --ion-color-dark-shade: #d6d6d6;\n --ion-color-dark-tint: #f4f4f4;\n --ion-color-medium: #959595;\n --ion-color-medium-rgb: 149, 149, 149;\n --ion-color-medium-contrast: #000000;\n --ion-color-medium-contrast-rgb: 0, 0, 0;\n --ion-color-medium-shade: #838383;\n --ion-color-medium-tint: #a0a0a0;\n --ion-color-light: #2f2f2f;\n --ion-color-light-rgb: 47, 47, 47;\n --ion-color-light-contrast: #ffffff;\n --ion-color-light-contrast-rgb: 255, 255, 255;\n --ion-color-light-shade: #292929;\n --ion-color-light-tint: #444444;\n }\n}\n\n@mixin dark-ios-theme() {\n & {\n --ion-background-color: #000000;\n --ion-background-color-rgb: 0, 0, 0;\n --ion-text-color: #ffffff;\n --ion-text-color-rgb: 255, 255, 255;\n --ion-color-step-50: #0d0d0d;\n --ion-color-step-100: #1a1a1a;\n --ion-color-step-150: #262626;\n --ion-color-step-200: #333333;\n --ion-color-step-250: #404040;\n --ion-color-step-300: #4d4d4d;\n --ion-color-step-350: #595959;\n --ion-color-step-400: #666666;\n --ion-color-step-450: #737373;\n --ion-color-step-500: #808080;\n --ion-color-step-550: #8c8c8c;\n --ion-color-step-600: #999999;\n --ion-color-step-650: #a6a6a6;\n --ion-color-step-700: #b3b3b3;\n --ion-color-step-750: #bfbfbf;\n --ion-color-step-800: #cccccc;\n --ion-color-step-850: #d9d9d9;\n --ion-color-step-900: #e6e6e6;\n --ion-color-step-950: #f2f2f2;\n --ion-item-background: #000000;\n --ion-card-background: #1c1c1d;\n }\n\n & ion-modal {\n --ion-background-color: var(--ion-color-step-100);\n --ion-toolbar-background: var(--ion-color-step-150);\n --ion-toolbar-border-color: var(--ion-color-step-250);\n }\n}\n\n@mixin dark-md-theme() {\n & {\n --ion-background-color: #121212;\n --ion-background-color-rgb: 18, 18, 18;\n --ion-text-color: #ffffff;\n --ion-text-color-rgb: 255, 255, 255;\n --ion-border-color: #222222;\n --ion-color-step-50: #1e1e1e;\n --ion-color-step-100: #2a2a2a;\n --ion-color-step-150: #363636;\n --ion-color-step-200: #414141;\n --ion-color-step-250: #4d4d4d;\n --ion-color-step-300: #595959;\n --ion-color-step-350: #656565;\n --ion-color-step-400: #717171;\n --ion-color-step-450: #7d7d7d;\n --ion-color-step-500: #898989;\n --ion-color-step-550: #949494;\n --ion-color-step-600: #a0a0a0;\n --ion-color-step-650: #acacac;\n --ion-color-step-700: #b8b8b8;\n --ion-color-step-750: #c4c4c4;\n --ion-color-step-800: #d0d0d0;\n --ion-color-step-850: #dbdbdb;\n --ion-color-step-900: #e7e7e7;\n --ion-color-step-950: #f3f3f3;\n --ion-item-background: #1e1e1e;\n --ion-toolbar-background: #1f1f1f;\n --ion-tab-bar-background: #1f1f1f;\n --ion-card-background: #1e1e1e;\n }\n}\n"]}
|
|
@@ -11,8 +11,8 @@ const gestureController = require('./gesture-controller-9436f482.js');
|
|
|
11
11
|
const helpers = require('./helpers-76bb7efb.js');
|
|
12
12
|
const index$1 = require('./index-3b012034.js');
|
|
13
13
|
const overlays = require('./overlays-7773cbe1.js');
|
|
14
|
-
const ionicGlobal = require('./ionic-global-a4edbf03.js');
|
|
15
14
|
const theme = require('./theme-d1c573d2.js');
|
|
15
|
+
const ionicGlobal = require('./ionic-global-a4edbf03.js');
|
|
16
16
|
const index$2 = require('./index-09471526.js');
|
|
17
17
|
require('./index-c8d52405.js');
|
|
18
18
|
require('./hardware-back-button-76833cac.js');
|
|
@@ -20,9 +20,9 @@ require('./index-5915f9b3.js');
|
|
|
20
20
|
require('./animation-9b401d39.js');
|
|
21
21
|
require('./framework-delegate-1c29b14a.js');
|
|
22
22
|
|
|
23
|
-
const 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{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);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(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}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;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
|
|
23
|
+
const 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{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);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(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}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){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
|
|
24
24
|
|
|
25
|
-
const 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{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);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(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}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;transform:none;-webkit-box-shadow:none;box-shadow:none}: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)}";
|
|
25
|
+
const 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{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);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(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{left:unset;right:unset;left:auto;right:0}}}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{left:unset;right:unset;left:0;right:auto}}}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}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){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}: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)}";
|
|
26
26
|
|
|
27
27
|
const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
|
|
28
28
|
const mdEasing = 'cubic-bezier(0.0,0.0,0.2,1)';
|
|
@@ -152,6 +152,19 @@ const Menu = class {
|
|
|
152
152
|
}
|
|
153
153
|
async componentDidLoad() {
|
|
154
154
|
this.didLoad = true;
|
|
155
|
+
/**
|
|
156
|
+
* A menu inside of a split pane is assumed
|
|
157
|
+
* to be a side pane.
|
|
158
|
+
*
|
|
159
|
+
* When the menu is loaded it needs to
|
|
160
|
+
* see if it should be considered visible inside
|
|
161
|
+
* of the split pane. If the split pane is
|
|
162
|
+
* hidden then the menu should be too.
|
|
163
|
+
*/
|
|
164
|
+
const splitPane = this.el.closest('ion-split-pane');
|
|
165
|
+
if (splitPane !== null) {
|
|
166
|
+
this.isPaneVisible = await splitPane.isVisible();
|
|
167
|
+
}
|
|
155
168
|
this.menuChanged();
|
|
156
169
|
this.updateState();
|
|
157
170
|
}
|
|
@@ -187,20 +200,11 @@ const Menu = class {
|
|
|
187
200
|
this.contentEl = undefined;
|
|
188
201
|
}
|
|
189
202
|
onSplitPaneChanged(ev) {
|
|
190
|
-
const { target } = ev;
|
|
191
203
|
const closestSplitPane = this.el.closest('ion-split-pane');
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
* a SplitPane changes visibility. As a result, we only want
|
|
196
|
-
* Menu's visibility state to update if its parent SplitPane
|
|
197
|
-
* changes visibility.
|
|
198
|
-
*/
|
|
199
|
-
if (target !== closestSplitPane) {
|
|
200
|
-
return;
|
|
204
|
+
if (closestSplitPane !== null && closestSplitPane === ev.target) {
|
|
205
|
+
this.isPaneVisible = ev.detail.visible;
|
|
206
|
+
this.updateState();
|
|
201
207
|
}
|
|
202
|
-
this.isPaneVisible = ev.detail.isPane(this.el);
|
|
203
|
-
this.updateState();
|
|
204
208
|
}
|
|
205
209
|
onBackdropClick(ev) {
|
|
206
210
|
// TODO(FW-2832): type (CustomEvent triggers errors which should be sorted)
|
|
@@ -607,7 +611,7 @@ const Menu = class {
|
|
|
607
611
|
}
|
|
608
612
|
}
|
|
609
613
|
render() {
|
|
610
|
-
const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
|
|
614
|
+
const { type, disabled, el, isPaneVisible, inheritedAttributes, side } = this;
|
|
611
615
|
const mode = ionicGlobal.getIonMode(this);
|
|
612
616
|
return (index.h(index.Host, { role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
613
617
|
[mode]: true,
|
|
@@ -615,6 +619,7 @@ const Menu = class {
|
|
|
615
619
|
'menu-enabled': !disabled,
|
|
616
620
|
[`menu-side-${side}`]: true,
|
|
617
621
|
'menu-pane-visible': isPaneVisible,
|
|
622
|
+
'split-pane-side': theme.hostContext('ion-split-pane', el),
|
|
618
623
|
} }, index.h("div", { class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, index.h("slot", null)), index.h("ion-backdrop", { ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
|
|
619
624
|
}
|
|
620
625
|
get el() { return index.getElement(this); }
|
|
@@ -8,9 +8,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
8
8
|
const index = require('./index-50dcfe2f.js');
|
|
9
9
|
const ionicGlobal = require('./ionic-global-a4edbf03.js');
|
|
10
10
|
|
|
11
|
-
const splitPaneIosCss = ":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}
|
|
11
|
+
const splitPaneIosCss = ":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}:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host{--border:0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--side-min-width:270px;--side-max-width:28%}";
|
|
12
12
|
|
|
13
|
-
const splitPaneMdCss = ":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}
|
|
13
|
+
const splitPaneMdCss = ":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}:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}: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%}";
|
|
14
14
|
|
|
15
15
|
// TODO(FW-2832): types
|
|
16
16
|
const SPLIT_PANE_MAIN = 'split-pane-main';
|
|
@@ -33,8 +33,13 @@ const SplitPane = class {
|
|
|
33
33
|
this.when = QUERY['lg'];
|
|
34
34
|
}
|
|
35
35
|
visibleChanged(visible) {
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
this.ionSplitPaneVisible.emit({ visible });
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
async isVisible() {
|
|
42
|
+
return Promise.resolve(this.visible);
|
|
38
43
|
}
|
|
39
44
|
async connectedCallback() {
|
|
40
45
|
// TODO: connectedCallback is fired in CE build
|
|
@@ -42,7 +47,7 @@ const SplitPane = class {
|
|
|
42
47
|
if (typeof customElements !== 'undefined' && customElements != null) {
|
|
43
48
|
await customElements.whenDefined('ion-split-pane');
|
|
44
49
|
}
|
|
45
|
-
this.
|
|
50
|
+
this.styleMainElement();
|
|
46
51
|
this.updateState();
|
|
47
52
|
}
|
|
48
53
|
disconnectedCallback() {
|
|
@@ -85,13 +90,16 @@ const SplitPane = class {
|
|
|
85
90
|
this.visible = mediaList.matches;
|
|
86
91
|
}
|
|
87
92
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Attempt to find the main content
|
|
95
|
+
* element inside of the split pane.
|
|
96
|
+
* If found, set it as the main node.
|
|
97
|
+
*
|
|
98
|
+
* We assume that the main node
|
|
99
|
+
* is available in the DOM on split
|
|
100
|
+
* pane load.
|
|
101
|
+
*/
|
|
102
|
+
styleMainElement() {
|
|
95
103
|
const contentId = this.contentId;
|
|
96
104
|
const children = this.el.children;
|
|
97
105
|
const nu = this.el.childElementCount;
|
|
@@ -104,9 +112,11 @@ const SplitPane = class {
|
|
|
104
112
|
console.warn('split pane cannot have more than one main node');
|
|
105
113
|
return;
|
|
106
114
|
}
|
|
107
|
-
|
|
115
|
+
else {
|
|
116
|
+
setPaneClass(child, isMain);
|
|
117
|
+
foundMain = true;
|
|
118
|
+
}
|
|
108
119
|
}
|
|
109
|
-
setPaneClass(child, isMain);
|
|
110
120
|
}
|
|
111
121
|
if (!foundMain) {
|
|
112
122
|
console.warn('split pane does not have a specified main node');
|