@m3e/web 2.2.1 → 2.3.0
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/README.md +2 -0
- package/dist/all.js +782 -5
- package/dist/all.js.map +1 -1
- package/dist/all.min.js +45 -45
- package/dist/all.min.js.map +1 -1
- package/dist/calendar.js +4 -2
- package/dist/calendar.js.map +1 -1
- package/dist/calendar.min.js +3 -3
- package/dist/calendar.min.js.map +1 -1
- package/dist/core.js +22 -1
- package/dist/core.js.map +1 -1
- package/dist/core.min.js +1 -1
- package/dist/core.min.js.map +1 -1
- package/dist/css-custom-data.json +733 -603
- package/dist/custom-elements.json +8398 -7000
- package/dist/datepicker.js +3 -1
- package/dist/datepicker.js.map +1 -1
- package/dist/datepicker.min.js +1 -1
- package/dist/datepicker.min.js.map +1 -1
- package/dist/html-custom-data.json +293 -205
- package/dist/skeleton.js +153 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/skeleton.min.js +7 -0
- package/dist/skeleton.min.js.map +1 -0
- package/dist/split-pane.js +627 -0
- package/dist/split-pane.js.map +1 -0
- package/dist/split-pane.min.js +7 -0
- package/dist/split-pane.min.js.map +1 -0
- package/dist/src/all.d.ts +2 -0
- package/dist/src/all.d.ts.map +1 -1
- package/dist/src/calendar/CalendarElement.d.ts +2 -0
- package/dist/src/calendar/CalendarElement.d.ts.map +1 -1
- package/dist/src/calendar/CalendarViewElementBase.d.ts.map +1 -1
- package/dist/src/calendar/MonthViewElement.d.ts.map +1 -1
- package/dist/src/core/shared/utils/index.d.ts +1 -0
- package/dist/src/core/shared/utils/index.d.ts.map +1 -1
- package/dist/src/core/shared/utils/waitForUpgrade.d.ts +6 -0
- package/dist/src/core/shared/utils/waitForUpgrade.d.ts.map +1 -0
- package/dist/src/datepicker/DatepickerElement.d.ts +2 -0
- package/dist/src/datepicker/DatepickerElement.d.ts.map +1 -1
- package/dist/src/skeleton/SkeletonAnimation.d.ts +3 -0
- package/dist/src/skeleton/SkeletonAnimation.d.ts.map +1 -0
- package/dist/src/skeleton/SkeletonElement.d.ts +73 -0
- package/dist/src/skeleton/SkeletonElement.d.ts.map +1 -0
- package/dist/src/skeleton/SkeletonShape.d.ts +3 -0
- package/dist/src/skeleton/SkeletonShape.d.ts.map +1 -0
- package/dist/src/skeleton/index.d.ts +4 -0
- package/dist/src/skeleton/index.d.ts.map +1 -0
- package/dist/src/split-pane/SplitPaneElement.d.ts +163 -0
- package/dist/src/split-pane/SplitPaneElement.d.ts.map +1 -0
- package/dist/src/split-pane/SplitPaneOrientation.d.ts +3 -0
- package/dist/src/split-pane/SplitPaneOrientation.d.ts.map +1 -0
- package/dist/src/split-pane/index.d.ts +3 -0
- package/dist/src/split-pane/index.d.ts.map +1 -0
- package/package.json +11 -1
package/dist/all.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { __classPrivateFieldGet, __decorate, __classPrivateFieldSet } from 'tslib';
|
|
7
7
|
import { unsafeCSS, css, LitElement, html, nothing, isServer, noChange, svg } from 'lit';
|
|
8
8
|
import { query, property, queryAssignedElements, state } from 'lit/decorators.js';
|
|
9
|
-
import { DesignToken as DesignToken$1, HtmlFor as HtmlFor$1, Role as Role$1, hasAssignedNodes as hasAssignedNodes$1, debounce as debounce$1, customElement as customElement$1, EventAttribute as EventAttribute$1, MutationController as MutationController$1, setCustomState as setCustomState$1, deleteCustomState as deleteCustomState$1, prefersReducedMotion as prefersReducedMotion$1, scrollIntoViewIfNeeded as scrollIntoViewIfNeeded$1, forcedColorsActive as forcedColorsActive$1, addCustomState as addCustomState$1, ActionElementBase as ActionElementBase$1, ReconnectedCallback as ReconnectedCallback$1, SuppressInitialAnimation as SuppressInitialAnimation$1, AttachInternals as AttachInternals$1, VelocityTracker as VelocityTracker$1, ScrollLockController as ScrollLockController$1, InertController as InertController$1, ResizeController as ResizeController$1, focusWhenReady as focusWhenReady$1, hasCustomState as hasCustomState$1, computeCssSize as computeCssSize$1, registerStyleSheet as registerStyleSheet$1, spaceSeparatedStringConverter as spaceSeparatedStringConverter$1, KeyboardClick as KeyboardClick$1, LinkButton as LinkButton$1, FormSubmitter as FormSubmitter$1, Focusable as Focusable$1, DisabledInteractive as DisabledInteractive$1, Disabled as Disabled$1, FocusController as FocusController$1, PressedController as PressedController$1, renderPseudoLink as renderPseudoLink$1, isSelectedMixin as isSelectedMixin$1, dateConverter as dateConverter$1, Labelled as Labelled$1, RequiredConstraintValidation as RequiredConstraintValidation$1, Dirty as Dirty$1, Touched as Touched$1, Required as Required$1, ConstraintValidation as ConstraintValidation$1, CheckedIndeterminate as CheckedIndeterminate$1, FormAssociated as FormAssociated$1, HoverController as HoverController$1, formValue as formValue$1, isDisabledMixin as isDisabledMixin$1, isDisabledInteractiveMixin as isDisabledInteractiveMixin$1, isLinkButtonMixin as isLinkButtonMixin$1, getTextContent as getTextContent$1, Vertical as Vertical$1, Selected as Selected$1, ScrollController as ScrollController$1, isReadOnlyMixin as isReadOnlyMixin$1, interceptProperty as interceptProperty$1, computeLineCount as computeLineCount$1, generateClipPaths as generateClipPaths$1, Checked as Checked$1, AnimationLoopController as AnimationLoopController$1, resolveFragmentUrl as resolveFragmentUrl$1, safeStyleMap as safeStyleMap$1, updateLabels as updateLabels$1, guid as guid$1, IntersectionController as IntersectionController$1, LongPressController as LongPressController$1 } from '@m3e/web/core';
|
|
9
|
+
import { DesignToken as DesignToken$1, HtmlFor as HtmlFor$1, Role as Role$1, hasAssignedNodes as hasAssignedNodes$1, debounce as debounce$1, customElement as customElement$1, EventAttribute as EventAttribute$1, MutationController as MutationController$1, setCustomState as setCustomState$1, deleteCustomState as deleteCustomState$1, prefersReducedMotion as prefersReducedMotion$1, scrollIntoViewIfNeeded as scrollIntoViewIfNeeded$1, forcedColorsActive as forcedColorsActive$1, addCustomState as addCustomState$1, ActionElementBase as ActionElementBase$1, ReconnectedCallback as ReconnectedCallback$1, SuppressInitialAnimation as SuppressInitialAnimation$1, AttachInternals as AttachInternals$1, VelocityTracker as VelocityTracker$1, ScrollLockController as ScrollLockController$1, InertController as InertController$1, ResizeController as ResizeController$1, focusWhenReady as focusWhenReady$1, hasCustomState as hasCustomState$1, computeCssSize as computeCssSize$1, registerStyleSheet as registerStyleSheet$1, spaceSeparatedStringConverter as spaceSeparatedStringConverter$1, KeyboardClick as KeyboardClick$1, LinkButton as LinkButton$1, FormSubmitter as FormSubmitter$1, Focusable as Focusable$1, DisabledInteractive as DisabledInteractive$1, Disabled as Disabled$1, FocusController as FocusController$1, PressedController as PressedController$1, renderPseudoLink as renderPseudoLink$1, isSelectedMixin as isSelectedMixin$1, dateConverter as dateConverter$1, Labelled as Labelled$1, RequiredConstraintValidation as RequiredConstraintValidation$1, Dirty as Dirty$1, Touched as Touched$1, Required as Required$1, ConstraintValidation as ConstraintValidation$1, CheckedIndeterminate as CheckedIndeterminate$1, FormAssociated as FormAssociated$1, HoverController as HoverController$1, formValue as formValue$1, isDisabledMixin as isDisabledMixin$1, isDisabledInteractiveMixin as isDisabledInteractiveMixin$1, isLinkButtonMixin as isLinkButtonMixin$1, getTextContent as getTextContent$1, Vertical as Vertical$1, Selected as Selected$1, ScrollController as ScrollController$1, isReadOnlyMixin as isReadOnlyMixin$1, interceptProperty as interceptProperty$1, computeLineCount as computeLineCount$1, generateClipPaths as generateClipPaths$1, Checked as Checked$1, AnimationLoopController as AnimationLoopController$1, resolveFragmentUrl as resolveFragmentUrl$1, safeStyleMap as safeStyleMap$1, updateLabels as updateLabels$1, waitForUpgrade as waitForUpgrade$1, guid as guid$1, IntersectionController as IntersectionController$1, LongPressController as LongPressController$1 } from '@m3e/web/core';
|
|
10
10
|
import { ListKeyManager, M3eLiveAnnouncer, M3eInteractivityChecker, isModifierAllowed, addAriaReferencedId, removeAriaReferencedId, selectionManager, SelectionManager, ListManager, RovingTabIndexManager, M3eAriaDescriber, typeaheadLabel } from '@m3e/web/core/a11y';
|
|
11
11
|
import { M3eOptGroupElement as M3eOptGroupElement$1 } from '@m3e/web/option';
|
|
12
12
|
import { M3eDirectionality } from '@m3e/web/core/bidi';
|
|
@@ -3755,7 +3755,7 @@ class CalendarViewElementBase extends LitElement {
|
|
|
3755
3755
|
}
|
|
3756
3756
|
}
|
|
3757
3757
|
/** The styles of the element. */
|
|
3758
|
-
CalendarViewElementBase.styles = css`:host { display: inline-block; user-select: none; vertical-align: top; } .visually-hidden { position: absolute; appearance: none; visibility: hidden; border: none; outline: none; overflow: hidden; left: 0; height: 1px; width: 1px; margin: -1px; padding: 0; white-space: nowrap; } table { border-collapse: collapse; border-spacing: 0; width: calc(3rem * 7); } td, th { font: inherit; text-align: center; padding: unset; } td { box-sizing: border-box; height: 3rem; padding: 0.25rem; position: relative; } .item, .item > span { position: relative; } .item { display: flex; align-items: center; justify-content: center; border-radius: inherit; outline: none; width: 100%; height: 100%; border-radius: ${DesignToken$1.shape.corner.full}; } .item:not([aria-disabled]) { cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .touch { position: absolute; height: 3rem; width: 3rem; margin: auto; } td:not(:has(.item[aria-disabled])).selected { color: var(--m3e-calendar-item-selected-color, ${DesignToken$1.color.onPrimary}); --m3e-ripple-color: var(--m3e-calendar-item-selected-ripple-color, ${DesignToken$1.color.onPrimary}); --m3e-state-layer-hover-color: var(--m3e-calendar-item-selected-hover-color, ${DesignToken$1.color.onPrimary}); --m3e-state-layer-focus-color: var(--m3e-calendar-item-selected-focus-color, ${DesignToken$1.color.onPrimary}); } td:not(:has(.item[aria-disabled])).selected .state-layer { background-color: var(--m3e-calendar-item-selected-container-color, ${DesignToken$1.color.primary}); } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) { color: var(--m3e-calendar-item-current-outline-color, ${DesignToken$1.color.primary}); } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) .state-layer { outline-style: solid; outline-offset: -1px; outline-width: var(--m3e-calendar-item-current-outline-thickness, 1px); outline-color: var(--m3e-calendar-item-current-outline-color, ${DesignToken$1.color.primary}); } td:has(.item[aria-disabled]) { color: color-mix( in srgb, var(--m3e-calendar-item-disabled-color, ${DesignToken$1.color.onSurface}) var(--m3e-calendar-item-disabled-color-opacity, 38%), transparent ); } @media (forced-colors: active) { td:not(:has(.item[aria-disabled])).selected { forced-color-adjust: none; color: ButtonFace; } td:not(:has(.item[aria-disabled])).selected .state-layer { background-color: ButtonText; } td:has(.item[aria-disabled]) { color: GrayText; } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) { color: ButtonText; } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) .state-layer { border-color: ButtonText; } }`;
|
|
3758
|
+
CalendarViewElementBase.styles = css`:host { display: inline-block; user-select: none; vertical-align: top; } .visually-hidden { position: absolute; appearance: none; visibility: hidden; border: none; outline: none; overflow: hidden; left: 0; height: 1px; width: 1px; margin: -1px; padding: 0; white-space: nowrap; } table { border-collapse: collapse; border-spacing: 0; width: calc(3rem * 7); } td, th { font: inherit; text-align: center; padding: unset; } td { box-sizing: border-box; height: 3rem; padding: 0.25rem; position: relative; color: var(--m3e-calendar-item-color, ${DesignToken$1.color.onSurface}); } .item, .item > span { position: relative; } .item { display: flex; align-items: center; justify-content: center; border-radius: inherit; outline: none; width: 100%; height: 100%; border-radius: ${DesignToken$1.shape.corner.full}; } .item:not([aria-disabled]) { cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .touch { position: absolute; height: 3rem; width: 3rem; margin: auto; } td:not(:has(.item[aria-disabled])).selected { color: var(--m3e-calendar-item-selected-color, ${DesignToken$1.color.onPrimary}); --m3e-ripple-color: var(--m3e-calendar-item-selected-ripple-color, ${DesignToken$1.color.onPrimary}); --m3e-state-layer-hover-color: var(--m3e-calendar-item-selected-hover-color, ${DesignToken$1.color.onPrimary}); --m3e-state-layer-focus-color: var(--m3e-calendar-item-selected-focus-color, ${DesignToken$1.color.onPrimary}); } td:not(:has(.item[aria-disabled])).selected .state-layer { background-color: var(--m3e-calendar-item-selected-container-color, ${DesignToken$1.color.primary}); } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) { color: var(--m3e-calendar-item-current-outline-color, ${DesignToken$1.color.primary}); } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) .state-layer { outline-style: solid; outline-offset: -1px; outline-width: var(--m3e-calendar-item-current-outline-thickness, 1px); outline-color: var(--m3e-calendar-item-current-outline-color, ${DesignToken$1.color.primary}); } td:has(.item[aria-disabled]) { color: color-mix( in srgb, var(--m3e-calendar-item-disabled-color, ${DesignToken$1.color.onSurface}) var(--m3e-calendar-item-disabled-color-opacity, 38%), transparent ); } @media (forced-colors: active) { td:not(:has(.item[aria-disabled])).selected { forced-color-adjust: none; color: ButtonFace; } td:not(:has(.item[aria-disabled])).selected .state-layer { background-color: ButtonText; } td:has(.item[aria-disabled]) { color: GrayText; } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) { color: ButtonText; } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) .state-layer { border-color: ButtonText; } }`;
|
|
3759
3759
|
__decorate([query(".active > .item")], CalendarViewElementBase.prototype, "_activeItem", void 0);
|
|
3760
3760
|
__decorate([property({
|
|
3761
3761
|
converter: dateConverter$1
|
|
@@ -3978,7 +3978,7 @@ _M3eMonthViewElement_clearRangeHighlight = function _M3eMonthViewElement_clearRa
|
|
|
3978
3978
|
}
|
|
3979
3979
|
};
|
|
3980
3980
|
/** The styles of the element. */
|
|
3981
|
-
M3eMonthViewElement.styles = [CalendarViewElementBase.styles, css`thead { font-size: var(--m3e-calendar-weekday-font-size, ${DesignToken$1.typescale.standard.title.small.fontSize}); font-weight: var(--m3e-calendar-weekday-font-weight, ${DesignToken$1.typescale.standard.title.small.fontWeight}); line-height: var(--m3e-calendar-weekday-line-height, ${DesignToken$1.typescale.standard.title.small.lineHeight}); letter-spacing: var(--m3e-calendar-weekday-tracking, ${DesignToken$1.typescale.standard.title.small.tracking}); } th { height: 1.5rem; padding-block-start: 1.875rem; padding-block-end: 1rem; } tbody { font-size: var(--m3e-calendar-date-font-size, ${DesignToken$1.typescale.standard.body.medium.fontSize}); font-weight: var(--m3e-calendar-date-font-weight, ${DesignToken$1.typescale.standard.body.medium.fontWeight}); line-height: var(--m3e-calendar-date-line-height, ${DesignToken$1.typescale.standard.body.medium.lineHeight}); letter-spacing: var(--m3e-calendar-date-tracking, ${DesignToken$1.typescale.standard.body.medium.tracking}); } td:not(:has(.item[aria-disabled])):not(.selected):not(.range-start):not(.range-end).special { color: var(--m3e-calendar-item-special-color, ${DesignToken$1.color.onTertiaryContainer}); --m3e-ripple-color: var(--m3e-calendar-item-special-ripple-color, ${DesignToken$1.color.onTertiaryContainer}); --m3e-state-layer-hover-color: var( --m3e-calendar-item-special-hover-color, ${DesignToken$1.color.onTertiaryContainer} ); --m3e-state-layer-focus-color: var( --m3e-calendar-item-special-focus-color, ${DesignToken$1.color.onTertiaryContainer} ); } td:not(:has(.item[aria-disabled])):not(.selected):not(.range-start):not(.range-end).special .state-layer { background-color: var(--m3e-calendar-item-special-container-color, ${DesignToken$1.color.tertiaryContainer}); } td:not(:has(.item[aria-disabled])).range-start, td:not(:has(.item[aria-disabled])).range-end { color: var(--m3e-calendar-item-selected-color, ${DesignToken$1.color.onPrimary}); --m3e-ripple-color: var(--m3e-calendar-item-selected-ripple-color, ${DesignToken$1.color.onPrimary}); } td:not(:has(.item[aria-disabled])).range-start .state-layer, td:not(:has(.item[aria-disabled])).range-end .state-layer { background-color: var(--m3e-calendar-item-selected-container-color, ${DesignToken$1.color.primary}); } td:not(:has(.item[aria-disabled])).range::before, td:not(:has(.item[aria-disabled])).range-start-range::before, td:not(:has(.item[aria-disabled])).range-end::before { content: ""; position: absolute; left: 0; right: 0; top: 0.25rem; bottom: 0.25rem; background-color: var(--m3e-calendar-range-container-color, ${DesignToken$1.color.primaryContainer}); } td:not(:has(.item[aria-disabled])):not(.selected).range { color: var(--m3e-calendar-range-color, ${DesignToken$1.color.onPrimaryContainer}); } td:not(:has(.item[aria-disabled])).range-start::before { inset-inline-start: 50%; width: 50%; } td:not(:has(.item[aria-disabled])).range-end::before { inset-inline-end: 50%; width: 50%; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after, td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { content: ""; position: absolute; top: 0; left: calc(0px - 0.1875rem); right: calc(0px - 0.1875rem); bottom: 0; border-style: dashed; border-color: ${DesignToken$1.color.primary}; border-width: 1px; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after { margin-inline-start: 50%; } td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { margin-inline-end: 0.1875rem; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after { border-inline-style: none; } td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { border-start-end-radius: ${DesignToken$1.shape.corner.full}; border-end-end-radius: ${DesignToken$1.shape.corner.full}; border-inline-start-style: none; } @media (forced-colors: active) { td:not(:has(.item[aria-disabled])).range-start, td:not(:has(.item[aria-disabled])).range-end { forced-color-adjust: none; color: HighlightText; } td:not(:has(.item[aria-disabled])).range-start .state-layer, td:not(:has(.item[aria-disabled])).range-end .state-layer { background-color: Highlight; } td:not(:has(.item[aria-disabled])).range::before, td:not(:has(.item[aria-disabled])).range-start-range::before, td:not(:has(.item[aria-disabled])).range-end::before { background-color: Highlight; } td:not(:has(.item[aria-disabled])):not(.selected).range { forced-color-adjust: none; color: HighlightText; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after, td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { border-color: GrayText; } }`];
|
|
3981
|
+
M3eMonthViewElement.styles = [CalendarViewElementBase.styles, css`thead { font-size: var(--m3e-calendar-weekday-font-size, ${DesignToken$1.typescale.standard.title.small.fontSize}); font-weight: var(--m3e-calendar-weekday-font-weight, ${DesignToken$1.typescale.standard.title.small.fontWeight}); line-height: var(--m3e-calendar-weekday-line-height, ${DesignToken$1.typescale.standard.title.small.lineHeight}); letter-spacing: var(--m3e-calendar-weekday-tracking, ${DesignToken$1.typescale.standard.title.small.tracking}); color: var(--m3e-calendar-weekday-color, ${DesignToken$1.color.onSurface}); } th { height: 1.5rem; padding-block-start: 1.875rem; padding-block-end: 1rem; } tbody { font-size: var(--m3e-calendar-date-font-size, ${DesignToken$1.typescale.standard.body.medium.fontSize}); font-weight: var(--m3e-calendar-date-font-weight, ${DesignToken$1.typescale.standard.body.medium.fontWeight}); line-height: var(--m3e-calendar-date-line-height, ${DesignToken$1.typescale.standard.body.medium.lineHeight}); letter-spacing: var(--m3e-calendar-date-tracking, ${DesignToken$1.typescale.standard.body.medium.tracking}); } td:not(:has(.item[aria-disabled])):not(.selected):not(.range-start):not(.range-end).special { color: var(--m3e-calendar-item-special-color, ${DesignToken$1.color.onTertiaryContainer}); --m3e-ripple-color: var(--m3e-calendar-item-special-ripple-color, ${DesignToken$1.color.onTertiaryContainer}); --m3e-state-layer-hover-color: var( --m3e-calendar-item-special-hover-color, ${DesignToken$1.color.onTertiaryContainer} ); --m3e-state-layer-focus-color: var( --m3e-calendar-item-special-focus-color, ${DesignToken$1.color.onTertiaryContainer} ); } td:not(:has(.item[aria-disabled])):not(.selected):not(.range-start):not(.range-end).special .state-layer { background-color: var(--m3e-calendar-item-special-container-color, ${DesignToken$1.color.tertiaryContainer}); } td:not(:has(.item[aria-disabled])).range-start, td:not(:has(.item[aria-disabled])).range-end { color: var(--m3e-calendar-item-selected-color, ${DesignToken$1.color.onPrimary}); --m3e-ripple-color: var(--m3e-calendar-item-selected-ripple-color, ${DesignToken$1.color.onPrimary}); } td:not(:has(.item[aria-disabled])).range-start .state-layer, td:not(:has(.item[aria-disabled])).range-end .state-layer { background-color: var(--m3e-calendar-item-selected-container-color, ${DesignToken$1.color.primary}); } td:not(:has(.item[aria-disabled])).range::before, td:not(:has(.item[aria-disabled])).range-start-range::before, td:not(:has(.item[aria-disabled])).range-end::before { content: ""; position: absolute; left: 0; right: 0; top: 0.25rem; bottom: 0.25rem; background-color: var(--m3e-calendar-range-container-color, ${DesignToken$1.color.primaryContainer}); } td:not(:has(.item[aria-disabled])):not(.selected).range { color: var(--m3e-calendar-range-color, ${DesignToken$1.color.onPrimaryContainer}); } td:not(:has(.item[aria-disabled])).range-start::before { inset-inline-start: 50%; width: 50%; } td:not(:has(.item[aria-disabled])).range-end::before { inset-inline-end: 50%; width: 50%; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after, td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { content: ""; position: absolute; top: 0; left: calc(0px - 0.1875rem); right: calc(0px - 0.1875rem); bottom: 0; border-style: dashed; border-color: ${DesignToken$1.color.primary}; border-width: 1px; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after { margin-inline-start: 50%; } td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { margin-inline-end: 0.1875rem; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after { border-inline-style: none; } td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { border-start-end-radius: ${DesignToken$1.shape.corner.full}; border-end-end-radius: ${DesignToken$1.shape.corner.full}; border-inline-start-style: none; } @media (forced-colors: active) { td:not(:has(.item[aria-disabled])).range-start, td:not(:has(.item[aria-disabled])).range-end { forced-color-adjust: none; color: HighlightText; } td:not(:has(.item[aria-disabled])).range-start .state-layer, td:not(:has(.item[aria-disabled])).range-end .state-layer { background-color: Highlight; } td:not(:has(.item[aria-disabled])).range::before, td:not(:has(.item[aria-disabled])).range-start-range::before, td:not(:has(.item[aria-disabled])).range-end::before { background-color: Highlight; } td:not(:has(.item[aria-disabled])):not(.selected).range { forced-color-adjust: none; color: HighlightText; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after, td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { border-color: GrayText; } }`];
|
|
3982
3982
|
__decorate([property({
|
|
3983
3983
|
attribute: "range-start",
|
|
3984
3984
|
converter: dateConverter$1
|
|
@@ -4264,6 +4264,7 @@ var _M3eCalendarElement_instances, _M3eCalendarElement_transitionComplete, _M3eC
|
|
|
4264
4264
|
* @cssprop --m3e-calendar-weekday-font-weight - Font weight of weekday labels in month view.
|
|
4265
4265
|
* @cssprop --m3e-calendar-weekday-line-height - Line height of weekday labels in month view.
|
|
4266
4266
|
* @cssprop --m3e-calendar-weekday-tracking - Letter spacing of weekday labels in month view.
|
|
4267
|
+
* @cssprop --m3e-calendar-weekday-color - Text color for weekday labels in month view.
|
|
4267
4268
|
* @cssprop --m3e-calendar-date-font-size - Font size of date cells in month view.
|
|
4268
4269
|
* @cssprop --m3e-calendar-date-font-weight - Font weight of date cells in month view.
|
|
4269
4270
|
* @cssprop --m3e-calendar-date-line-height - Line height of date cells in month view.
|
|
@@ -4272,6 +4273,7 @@ var _M3eCalendarElement_instances, _M3eCalendarElement_transitionComplete, _M3eC
|
|
|
4272
4273
|
* @cssprop --m3e-calendar-item-font-weight - Font weight of items in year and multi‑year views.
|
|
4273
4274
|
* @cssprop --m3e-calendar-item-line-height - Line height of items in year and multi‑year views.
|
|
4274
4275
|
* @cssprop --m3e-calendar-item-tracking - Letter spacing of items in year and multi‑year views.
|
|
4276
|
+
* @cssprop --m3e-calendar-item-color - Text color for date items.
|
|
4275
4277
|
* @cssprop --m3e-calendar-item-selected-color - Text color for selected date items.
|
|
4276
4278
|
* @cssprop --m3e-calendar-item-selected-container-color - Background color for selected date items.
|
|
4277
4279
|
* @cssprop --m3e-calendar-item-selected-ripple-color - Ripple color used when interacting with selected date items.
|
|
@@ -6985,6 +6987,27 @@ class VelocityTracker {
|
|
|
6985
6987
|
}
|
|
6986
6988
|
_VelocityTracker_samples = new WeakMap(), _VelocityTracker_windowMs = new WeakMap();
|
|
6987
6989
|
|
|
6990
|
+
/**
|
|
6991
|
+
* Determines whether an element is a custom element and waits for it to be upgraded.
|
|
6992
|
+
* @param {Element} el The element for which to wait for upgrade.
|
|
6993
|
+
*/
|
|
6994
|
+
async function waitForUpgrade(el) {
|
|
6995
|
+
const tag = el.tagName.toLowerCase();
|
|
6996
|
+
if (!tag.includes("-")) return;
|
|
6997
|
+
if (!customElements.get(tag)) {
|
|
6998
|
+
await customElements.whenDefined(tag);
|
|
6999
|
+
}
|
|
7000
|
+
const ctor = customElements.get(tag);
|
|
7001
|
+
if (!ctor || el instanceof ctor) {
|
|
7002
|
+
return;
|
|
7003
|
+
}
|
|
7004
|
+
await Promise.resolve();
|
|
7005
|
+
if (el instanceof ctor) {
|
|
7006
|
+
return;
|
|
7007
|
+
}
|
|
7008
|
+
await Promise.resolve();
|
|
7009
|
+
}
|
|
7010
|
+
|
|
6988
7011
|
var _FocusController_instances, _FocusController_touch, _FocusController_callback, _FocusController_keyDownHandler, _FocusController_focusInHandler, _FocusController_focusOutHandler, _FocusController_touchStartHandler, _FocusController_touchEndHandler, _FocusController_hadKeydown, _FocusController_windowKeyDownHandler, _FocusController_windowPointerDownHandler, _FocusController_handleKeyDown, _FocusController_handleFocusIn, _FocusController_handleFocusOut;
|
|
6989
7012
|
/** A `ReactiveController` used to monitor the focused state of one or more elements. */
|
|
6990
7013
|
class FocusController extends MonitorControllerBase {
|
|
@@ -11495,10 +11518,12 @@ var M3eDatepickerElement_1;
|
|
|
11495
11518
|
* @cssprop --m3e-datepicker-container-padding-inline - Inline‑axis padding of the date picker container.
|
|
11496
11519
|
* @cssprop --m3e-datepicker-container-color - Background color of the standard container surface.
|
|
11497
11520
|
* @cssprop --m3e-datepicker-container-elevation - Elevation shadow applied to the container surface.
|
|
11521
|
+
* @cssprop --m3e-datepicker-modal-headline-color - Color used for the modal headline text.
|
|
11498
11522
|
* @cssprop --m3e-datepicker-modal-headline-font-size - Font size used for the modal headline text.
|
|
11499
11523
|
* @cssprop --m3e-datepicker-modal-headline-font-weight - Font weight used for the modal headline text.
|
|
11500
11524
|
* @cssprop --m3e-datepicker-modal-headline-line-height - Line height used for the modal headline text.
|
|
11501
11525
|
* @cssprop --m3e-datepicker-modal-headline-tracking - Letter spacing used for the modal headline text.
|
|
11526
|
+
* @cssprop --m3e-datepicker-modal-supporting-text-color - Color used for supporting text in modal mode.
|
|
11502
11527
|
* @cssprop --m3e-datepicker-modal-supporting-text-font-size - Font size used for supporting text in modal mode.
|
|
11503
11528
|
* @cssprop --m3e-datepicker-modal-supporting-text-font-weight - Font weight used for supporting text in modal mode.
|
|
11504
11529
|
* @cssprop --m3e-datepicker-modal-supporting-text-line-height - Line height used for supporting text in modal mode.
|
|
@@ -11893,7 +11918,7 @@ _M3eDatepickerElement_clearSelectionState = function _M3eDatepickerElement_clear
|
|
|
11893
11918
|
this._date = this._rangeStart = this._rangeEnd = undefined;
|
|
11894
11919
|
};
|
|
11895
11920
|
/** The styles of the element. */
|
|
11896
|
-
M3eDatepickerElement.styles = css`:host { flex-direction: column; margin: unset; border: unset; padding-block: var(--m3e-datepicker-container-padding-block, 0.75rem); padding-inline: var(--m3e-datepicker-container-padding-inline, 0.25rem); background-color: var(--m3e-datepicker-container-color, ${DesignToken$1.color.surfaceContainer}); box-shadow: var(--m3e-datepicker-container-elevation, ${DesignToken$1.elevation.level3}); opacity: 0; display: none; } .calendar { --m3e-calendar-container-color: transparent; --m3e-calendar-container-elevation: ${DesignToken$1.elevation.level0}; --m3e-calendar-container-shape: ${DesignToken$1.shape.corner.none}; } .headline { font-size: var( --m3e-datepicker-modal-headline-font-size, ${DesignToken$1.typescale.standard.headline.large.fontSize} ); font-weight: var( --m3e-datepicker-modal-headline-font-weight, ${DesignToken$1.typescale.standard.headline.large.fontWeight} ); line-height: var( --m3e-datepicker-modal-headline-line-height, ${DesignToken$1.typescale.standard.headline.large.lineHeight} ); letter-spacing: var( --m3e-datepicker-modal-headline-tracking, ${DesignToken$1.typescale.standard.headline.large.tracking} ); margin-block-start: 2.25rem; margin-block-end: 0.75rem; margin-inline: 1.5rem; } .supporting-text { font-size: var( --m3e-datepicker-modal-supporting-text-font-size, ${DesignToken$1.typescale.standard.label.large.fontSize} ); font-weight: var( --m3e-datepicker-modal-supporting-text-font-weight, ${DesignToken$1.typescale.standard.label.large.fontWeight} ); line-height: var( --m3e-datepicker-modal-supporting-text-line-height, ${DesignToken$1.typescale.standard.label.large.lineHeight} ); letter-spacing: var( --m3e-datepicker-modal-supporting-text-tracking, ${DesignToken$1.typescale.standard.label.large.tracking} ); margin-block-start: 1rem; margin-inline: 1.5rem; } .divider { height: var(--m3e-divider-thickness, 1px); width: 100%; position: relative; } .divider::before { content: ""; box-sizing: border-box; position: absolute; border-bottom: var(--m3e-divider-thickness, 1px) solid var(--m3e-divider-color, ${DesignToken$1.color.outlineVariant}); height: inherit; left: -0.25rem; right: -0.25rem; } .actions { display: flex; align-items: center; column-gap: 0.5rem; padding-inline: var(--m3e-datepicker-actions-padding-inline, 0.5rem); } .spacer { flex: 1 1 auto; } :host(:state(-docked)) { position: absolute; background-color: var(--m3e-datepicker-docked-container-color, ${DesignToken$1.color.surfaceContainer}); border-radius: var(--m3e-datepicker-docked-container-shape, ${DesignToken$1.shape.corner.large}); } :host(:state(-modal)) { position: fixed; inset: 0; margin: auto; transform-origin: top; background-color: var(--m3e-datepicker-modal-container-color, ${DesignToken$1.color.surfaceContainerHigh}); border-radius: var(--m3e-datepicker-modal-container-shape, ${DesignToken$1.shape.corner.extraLarge}); } :host(:not(:state(-no-animate))) { transition: ${unsafeCSS(`opacity ${DesignToken$1.motion.duration.short2} ${DesignToken$1.motion.easing.standard},
|
|
11921
|
+
M3eDatepickerElement.styles = css`:host { flex-direction: column; margin: unset; border: unset; padding-block: var(--m3e-datepicker-container-padding-block, 0.75rem); padding-inline: var(--m3e-datepicker-container-padding-inline, 0.25rem); background-color: var(--m3e-datepicker-container-color, ${DesignToken$1.color.surfaceContainer}); box-shadow: var(--m3e-datepicker-container-elevation, ${DesignToken$1.elevation.level3}); opacity: 0; display: none; } .calendar { --m3e-calendar-container-color: transparent; --m3e-calendar-container-elevation: ${DesignToken$1.elevation.level0}; --m3e-calendar-container-shape: ${DesignToken$1.shape.corner.none}; } .headline { color: var(--m3e-datepicker-modal-headline-color, ${DesignToken$1.color.onSurfaceVariant}); font-size: var( --m3e-datepicker-modal-headline-font-size, ${DesignToken$1.typescale.standard.headline.large.fontSize} ); font-weight: var( --m3e-datepicker-modal-headline-font-weight, ${DesignToken$1.typescale.standard.headline.large.fontWeight} ); line-height: var( --m3e-datepicker-modal-headline-line-height, ${DesignToken$1.typescale.standard.headline.large.lineHeight} ); letter-spacing: var( --m3e-datepicker-modal-headline-tracking, ${DesignToken$1.typescale.standard.headline.large.tracking} ); margin-block-start: 2.25rem; margin-block-end: 0.75rem; margin-inline: 1.5rem; } .supporting-text { color: var(--m3e-datepicker-modal-supporting-text-color, ${DesignToken$1.color.onSurfaceVariant}); font-size: var( --m3e-datepicker-modal-supporting-text-font-size, ${DesignToken$1.typescale.standard.label.large.fontSize} ); font-weight: var( --m3e-datepicker-modal-supporting-text-font-weight, ${DesignToken$1.typescale.standard.label.large.fontWeight} ); line-height: var( --m3e-datepicker-modal-supporting-text-line-height, ${DesignToken$1.typescale.standard.label.large.lineHeight} ); letter-spacing: var( --m3e-datepicker-modal-supporting-text-tracking, ${DesignToken$1.typescale.standard.label.large.tracking} ); margin-block-start: 1rem; margin-inline: 1.5rem; } .divider { height: var(--m3e-divider-thickness, 1px); width: 100%; position: relative; } .divider::before { content: ""; box-sizing: border-box; position: absolute; border-bottom: var(--m3e-divider-thickness, 1px) solid var(--m3e-divider-color, ${DesignToken$1.color.outlineVariant}); height: inherit; left: -0.25rem; right: -0.25rem; } .actions { display: flex; align-items: center; column-gap: 0.5rem; padding-inline: var(--m3e-datepicker-actions-padding-inline, 0.5rem); } .spacer { flex: 1 1 auto; } :host(:state(-docked)) { position: absolute; background-color: var(--m3e-datepicker-docked-container-color, ${DesignToken$1.color.surfaceContainer}); border-radius: var(--m3e-datepicker-docked-container-shape, ${DesignToken$1.shape.corner.large}); } :host(:state(-modal)) { position: fixed; inset: 0; margin: auto; transform-origin: top; background-color: var(--m3e-datepicker-modal-container-color, ${DesignToken$1.color.surfaceContainerHigh}); border-radius: var(--m3e-datepicker-modal-container-shape, ${DesignToken$1.shape.corner.extraLarge}); } :host(:not(:state(-no-animate))) { transition: ${unsafeCSS(`opacity ${DesignToken$1.motion.duration.short2} ${DesignToken$1.motion.easing.standard},
|
|
11897
11922
|
transform ${DesignToken$1.motion.duration.short2} ${DesignToken$1.motion.easing.standard},
|
|
11898
11923
|
overlay ${DesignToken$1.motion.duration.short2} ${DesignToken$1.motion.easing.standard} allow-discrete,
|
|
11899
11924
|
display ${DesignToken$1.motion.duration.short2} ${DesignToken$1.motion.easing.standard} allow-discrete`)}; } :host { transform: scaleY(0.8); } :host(:popover-open) { transform: scaleY(1); display: inline-flex; opacity: 1; } :host(:state(-docked))::backdrop { background-color: transparent; } :host(:state(-modal))::backdrop { background-color: color-mix(in srgb, var(--m3e-dialog-scrim-color, ${DesignToken$1.color.scrim}) 0%, transparent); margin-inline-end: -20px; } :host(:state(-modal):not(:popover-open))::backdrop { transition: ${unsafeCSS(`background-color ${DesignToken$1.motion.duration.short3} ${DesignToken$1.motion.easing.standard},
|
|
@@ -23358,6 +23383,146 @@ __decorate([property({
|
|
|
23358
23383
|
})], M3eShapeElement.prototype, "name", void 0);
|
|
23359
23384
|
M3eShapeElement = __decorate([customElement$1("m3e-shape")], M3eShapeElement);
|
|
23360
23385
|
|
|
23386
|
+
var _M3eSkeletonElement_instances, _M3eSkeletonElement_anchoringCleanupMap, _M3eSkeletonElement_handleSlotChange, _M3eSkeletonElement_clearShapes, _M3eSkeletonElement_createShapes, _M3eSkeletonElement_createShape;
|
|
23387
|
+
/**
|
|
23388
|
+
* A visual placeholder that mimics the layout of content while it's still loading.
|
|
23389
|
+
* @description
|
|
23390
|
+
* The `m3e-skeleton` component provides a loading placeholder surface with flexible shape variants and
|
|
23391
|
+
* motion-based animations that communicate loading state while preserving layout stability. It mimics
|
|
23392
|
+
* the layout of content while it's still loading, ensuring a smooth user experience during data fetching
|
|
23393
|
+
* or rendering delays. The component supports different animation effects (`pulse`, `wave`, `none`) and
|
|
23394
|
+
* shape variants (`circular`, `rounded`, `square`, `auto`) to adapt to various content types. When the
|
|
23395
|
+
* content is loaded, the skeleton fades out with a smooth transition.
|
|
23396
|
+
*
|
|
23397
|
+
* @example
|
|
23398
|
+
* The following example illustrates a skeleton shaped and sized by the slotted `m3e-card`.
|
|
23399
|
+
* ```html
|
|
23400
|
+
* <m3e-skeleton>
|
|
23401
|
+
* <m3e-card></m3e-card>
|
|
23402
|
+
* </m3e-skeleton>
|
|
23403
|
+
* ```
|
|
23404
|
+
*
|
|
23405
|
+
* @tag m3e-skeleton
|
|
23406
|
+
*
|
|
23407
|
+
* @attr animation - The animation effect of the skeleton.
|
|
23408
|
+
* @attr shape - The shape of the skeleton.
|
|
23409
|
+
* @attr loaded - Whether the content of the skeleton has been loaded.
|
|
23410
|
+
*
|
|
23411
|
+
* @slot - Renders the content to be mimicked by the skeleton.
|
|
23412
|
+
*
|
|
23413
|
+
* @cssprop --m3e-skeleton-color - Base fill color for the skeleton surface.
|
|
23414
|
+
* @cssprop --m3e-skeleton-tint-color - Tint fill color for the skeleton surface.
|
|
23415
|
+
* @cssprop --m3e-skeleton-tint-opacity - Tint Opacity applied when the skeleton animation is not pulsating.
|
|
23416
|
+
* @cssprop --m3e-skeleton-accent-color - Accent color used in wave animation.
|
|
23417
|
+
* @cssprop --m3e-skeleton-accent-opacity - Opacity of the accent effect in animations.
|
|
23418
|
+
* @cssprop --m3e-skeleton-rounded-shape - Corner radius for the rounded skeleton shape.
|
|
23419
|
+
* @cssprop --m3e-skeleton-circular-shape - Corner radius for the circular skeleton shape.
|
|
23420
|
+
* @cssprop --m3e-skeleton-square-shape - Corner radius for the square skeleton shape.
|
|
23421
|
+
* @cssprop --m3e-skeleton-shape - Corner radius for the skeleton shape.
|
|
23422
|
+
*/
|
|
23423
|
+
let M3eSkeletonElement = class M3eSkeletonElement extends ReconnectedCallback$1(LitElement) {
|
|
23424
|
+
constructor() {
|
|
23425
|
+
super(...arguments);
|
|
23426
|
+
_M3eSkeletonElement_instances.add(this);
|
|
23427
|
+
/** @private */
|
|
23428
|
+
_M3eSkeletonElement_anchoringCleanupMap.set(this, new Map());
|
|
23429
|
+
/**
|
|
23430
|
+
* The shape of the skeleton.
|
|
23431
|
+
* @default "auto"
|
|
23432
|
+
*/
|
|
23433
|
+
this.shape = "auto";
|
|
23434
|
+
/**
|
|
23435
|
+
* The animation effect of the skeleton.
|
|
23436
|
+
* @default "wave"
|
|
23437
|
+
*/
|
|
23438
|
+
this.animation = "wave";
|
|
23439
|
+
/**
|
|
23440
|
+
* Whether the content of the skeleton has been loaded.
|
|
23441
|
+
* @default false
|
|
23442
|
+
*/
|
|
23443
|
+
this.loaded = false;
|
|
23444
|
+
}
|
|
23445
|
+
/** @inheritdoc */
|
|
23446
|
+
disconnectedCallback() {
|
|
23447
|
+
super.disconnectedCallback();
|
|
23448
|
+
__classPrivateFieldGet(this, _M3eSkeletonElement_instances, "m", _M3eSkeletonElement_clearShapes).call(this);
|
|
23449
|
+
}
|
|
23450
|
+
/** @inheritdoc */
|
|
23451
|
+
reconnectedCallback() {
|
|
23452
|
+
super.reconnectedCallback();
|
|
23453
|
+
__classPrivateFieldGet(this, _M3eSkeletonElement_instances, "m", _M3eSkeletonElement_createShapes).call(this);
|
|
23454
|
+
}
|
|
23455
|
+
/** @inheritdoc */
|
|
23456
|
+
render() {
|
|
23457
|
+
return html`<slot ?inert="${!this.loaded}" @slotchange="${__classPrivateFieldGet(this, _M3eSkeletonElement_instances, "m", _M3eSkeletonElement_handleSlotChange)}"></slot>`;
|
|
23458
|
+
}
|
|
23459
|
+
};
|
|
23460
|
+
_M3eSkeletonElement_anchoringCleanupMap = new WeakMap();
|
|
23461
|
+
_M3eSkeletonElement_instances = new WeakSet();
|
|
23462
|
+
_M3eSkeletonElement_handleSlotChange = /** @private */
|
|
23463
|
+
async function _M3eSkeletonElement_handleSlotChange() {
|
|
23464
|
+
__classPrivateFieldGet(this, _M3eSkeletonElement_instances, "m", _M3eSkeletonElement_createShapes).call(this);
|
|
23465
|
+
};
|
|
23466
|
+
_M3eSkeletonElement_clearShapes = function _M3eSkeletonElement_clearShapes() {
|
|
23467
|
+
for (const item of __classPrivateFieldGet(this, _M3eSkeletonElement_anchoringCleanupMap, "f")) {
|
|
23468
|
+
item[0].remove();
|
|
23469
|
+
item[1]();
|
|
23470
|
+
}
|
|
23471
|
+
__classPrivateFieldGet(this, _M3eSkeletonElement_anchoringCleanupMap, "f").clear();
|
|
23472
|
+
};
|
|
23473
|
+
_M3eSkeletonElement_createShapes = /** @private */
|
|
23474
|
+
async function _M3eSkeletonElement_createShapes() {
|
|
23475
|
+
__classPrivateFieldGet(this, _M3eSkeletonElement_instances, "m", _M3eSkeletonElement_clearShapes).call(this);
|
|
23476
|
+
const slot = this.shadowRoot?.querySelector("slot");
|
|
23477
|
+
if (!slot) return;
|
|
23478
|
+
for (const element of slot.assignedElements({
|
|
23479
|
+
flatten: true
|
|
23480
|
+
}).filter(x => x instanceof HTMLElement)) {
|
|
23481
|
+
await __classPrivateFieldGet(this, _M3eSkeletonElement_instances, "m", _M3eSkeletonElement_createShape).call(this, element);
|
|
23482
|
+
}
|
|
23483
|
+
};
|
|
23484
|
+
_M3eSkeletonElement_createShape = /** @private */
|
|
23485
|
+
async function _M3eSkeletonElement_createShape(element) {
|
|
23486
|
+
await waitForUpgrade$1(element);
|
|
23487
|
+
const shape = document.createElement("div");
|
|
23488
|
+
shape.classList.add("shape");
|
|
23489
|
+
if (this.shape === "auto") {
|
|
23490
|
+
let borderRadius = getComputedStyle(element).borderRadius;
|
|
23491
|
+
if (!borderRadius || borderRadius === "0px") {
|
|
23492
|
+
const firstElement = element.shadowRoot?.firstElementChild;
|
|
23493
|
+
if (firstElement && !firstElement.nextElementSibling) {
|
|
23494
|
+
borderRadius = getComputedStyle(firstElement).borderRadius;
|
|
23495
|
+
}
|
|
23496
|
+
}
|
|
23497
|
+
if (borderRadius && borderRadius !== "0px") {
|
|
23498
|
+
shape.style.borderRadius = borderRadius;
|
|
23499
|
+
}
|
|
23500
|
+
}
|
|
23501
|
+
const anchoringCleanup = await positionAnchor(shape, element, {
|
|
23502
|
+
position: "bottom"
|
|
23503
|
+
}, (x, y) => {
|
|
23504
|
+
shape.style.left = `${x}px`;
|
|
23505
|
+
shape.style.top = `${y - element.clientHeight}px`;
|
|
23506
|
+
shape.style.width = `${element.clientWidth}px`;
|
|
23507
|
+
shape.style.height = `${element.clientHeight}px`;
|
|
23508
|
+
});
|
|
23509
|
+
__classPrivateFieldGet(this, _M3eSkeletonElement_anchoringCleanupMap, "f").set(shape, anchoringCleanup);
|
|
23510
|
+
this.shadowRoot?.appendChild(shape);
|
|
23511
|
+
};
|
|
23512
|
+
/** The styles of the element. */
|
|
23513
|
+
M3eSkeletonElement.styles = css`:host { display: contents; } .shape { position: absolute; overflow: hidden; pointer-events: none; opacity: 1; background-color: var(--m3e-skeleton-color, ${DesignToken$1.color.surface}); } .shape::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-color: color-mix( in srgb, var(--m3e-skeleton-tint-color, ${DesignToken$1.color.onSurface}) var(--m3e-skeleton-tint-opacity, 8%), transparent ); } :host(:not([loaded])) slot { visibility: hidden; } :host([loaded]) .shape { opacity: 0; transition: ${unsafeCSS(`opacity ${DesignToken$1.motion.duration.short3} ${DesignToken$1.motion.easing.standard}`)}; } :host([shape="rounded"]) .shape { border-radius: var(--m3e-skeleton-rounded-shape, var(--m3e-skeleton-shape, ${DesignToken$1.shape.corner.large})); } :host([shape="circular"]) .shape { border-radius: var(--m3e-skeleton-circular-shape, var(--m3e-skeleton-shape, ${DesignToken$1.shape.corner.full})); } :host([shape="square"]) .shape { border-radius: var(--m3e-skeleton-square-shape, var(--m3e-skeleton-shape, 0px)); } :host([animation="pulse"]:not([loaded])) .shape::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; animation: pulse 1.2s ease-in-out infinite; background-color: var(--m3e-skeleton-tint-color, ${DesignToken$1.color.surfaceDim}); } :host([animation="wave"]:not([loaded])) .shape::after { content: ""; position: absolute; top: 0; left: -150%; height: 100%; width: 150%; opacity: var(--m3e-skeleton-accent-opacity, 6%); background: linear-gradient( 90deg, transparent, var(--m3e-skeleton-accent-color, ${DesignToken$1.color.onSurface}), transparent ); animation: wave 2.1s linear infinite; } @keyframes pulse { 0% { opacity: 1; } 50% { opacity: var(--m3e-skeleton-accent-opacity, 6%); } 100% { opacity: 1; } } @keyframes wave { 0% { left: -150%; } 100% { left: 100%; } } @media (forced-colors: active) { :host([loaded]) .shape { transition: none; } .shape::after { display: none; } .shape { background-color: GrayText; } } @media (prefers-reduced-motion) { :host([loaded]) .shape { transition: none; } .shape::after { display: none; } }`;
|
|
23514
|
+
__decorate([property({
|
|
23515
|
+
reflect: true
|
|
23516
|
+
})], M3eSkeletonElement.prototype, "shape", void 0);
|
|
23517
|
+
__decorate([property({
|
|
23518
|
+
reflect: true
|
|
23519
|
+
})], M3eSkeletonElement.prototype, "animation", void 0);
|
|
23520
|
+
__decorate([property({
|
|
23521
|
+
type: Boolean,
|
|
23522
|
+
reflect: true
|
|
23523
|
+
})], M3eSkeletonElement.prototype, "loaded", void 0);
|
|
23524
|
+
M3eSkeletonElement = __decorate([customElement$1("m3e-skeleton")], M3eSkeletonElement);
|
|
23525
|
+
|
|
23361
23526
|
var _M3eSlideGroupElement_instances, _M3eSlideGroupElement_directionalitySubscription, _M3eSlideGroupElement_resizeController, _M3eSlideGroupElement_pageStart, _M3eSlideGroupElement_pageEnd;
|
|
23362
23527
|
/**
|
|
23363
23528
|
* Presents pagination controls used to scroll overflowing content.
|
|
@@ -24569,6 +24734,618 @@ __decorate([property({
|
|
|
24569
24734
|
})], M3eSplitButtonElement.prototype, "size", void 0);
|
|
24570
24735
|
M3eSplitButtonElement = __decorate([customElement$1("m3e-split-button")], M3eSplitButtonElement);
|
|
24571
24736
|
|
|
24737
|
+
var _M3eSplitPaneElement_instances, _M3eSplitPaneElement_breakpointUnobserve, _M3eSplitPaneElement_dragPos, _M3eSplitPaneElement_valueChanged, _M3eSplitPaneElement_cachedSize, _M3eSplitPaneElement_snapAnimation, _M3eSplitPaneElement_pressedController, _M3eSplitPaneElement_startMutationController, _M3eSplitPaneElement_endMutationController, _M3eSplitPaneElement_renderDragHandle, _M3eSplitPaneElement_handleStartSlotChange, _M3eSplitPaneElement_handleEndSlotChange, _M3eSplitPaneElement_handleSlotChange, _M3eSplitPaneElement_updatePaneVisibility, _M3eSplitPaneElement_hasVisibleElements, _M3eSplitPaneElement_initialize, _M3eSplitPaneElement_initBreakpointMonitoring, _M3eSplitPaneElement_updateOrientation, _M3eSplitPaneElement_clearOrientation, _M3eSplitPaneElement_handlePointerDown, _M3eSplitPaneElement_handlePointerMove, _M3eSplitPaneElement_handlePointerUp, _M3eSplitPaneElement_handleKeyDown, _M3eSplitPaneElement_changeValue, _M3eSplitPaneElement_getClosestDetent, _M3eSplitPaneElement_getNextHigherDetent, _M3eSplitPaneElement_getNextLowerDetent, _M3eSplitPaneElement_computeDetent, _M3eSplitPaneElement_clearSnapAnimation, _M3eSplitPaneElement_snapToValue, _M3eSplitPaneElement_cycleDetent;
|
|
24738
|
+
/**
|
|
24739
|
+
* A dual-view layout that separates content with a movable drag handle.
|
|
24740
|
+
* @description
|
|
24741
|
+
* The `m3e-split-pane` component delivers a Material 3-inspired split view with a
|
|
24742
|
+
* movable drag handle, enabling responsive layout composition and pane resizing.
|
|
24743
|
+
* It supports keyboard interaction, adaptive orientation, and optional detent snapping
|
|
24744
|
+
* for consistent, accessible content distribution.
|
|
24745
|
+
*
|
|
24746
|
+
* @example
|
|
24747
|
+
* The following example illustrates the basic use of the `m3e-split-pane` with start and end content.
|
|
24748
|
+
* In this example, the start pane occupies 25% of the available width.
|
|
24749
|
+
* ```html
|
|
24750
|
+
* <m3e-split-pane value="25">
|
|
24751
|
+
* <m3e-card slot="start"></m3e-card>
|
|
24752
|
+
* <m3e-card slot="end"></m3e-card>
|
|
24753
|
+
* </m3e-split-pane>
|
|
24754
|
+
* ```
|
|
24755
|
+
*
|
|
24756
|
+
* @example
|
|
24757
|
+
* The next example demonstrates minimum and maximum constraints, where the start pane
|
|
24758
|
+
* may shrink to 25% but cannot grow beyond 50% of the available space.
|
|
24759
|
+
* ```html
|
|
24760
|
+
* <m3e-split-pane value="25" min="25" max="50">
|
|
24761
|
+
* <m3e-card slot="start"></m3e-card>
|
|
24762
|
+
* <m3e-card slot="end"></m3e-card>
|
|
24763
|
+
* </m3e-split-pane>
|
|
24764
|
+
* ```
|
|
24765
|
+
*
|
|
24766
|
+
* @example
|
|
24767
|
+
* The next example demonstrates percentage‑based detents, allowing the drag handle to snap at
|
|
24768
|
+
* 0%, 25%, 50%, 75%, and 100% of the available space.
|
|
24769
|
+
* ```html
|
|
24770
|
+
* <m3e-split-pane value="50" detents="0 25 50 75 100">
|
|
24771
|
+
* <m3e-card slot="start"></m3e-card>
|
|
24772
|
+
* <m3e-card slot="end"></m3e-card>
|
|
24773
|
+
* </m3e-split-pane>
|
|
24774
|
+
* ```
|
|
24775
|
+
*
|
|
24776
|
+
* @tag m3e-split-pane
|
|
24777
|
+
*
|
|
24778
|
+
* @slot start - Renders content at the logical start side of the pane.
|
|
24779
|
+
* @slot end - Renders content at the logical end side of the pane.
|
|
24780
|
+
*
|
|
24781
|
+
* @attr detents - Detents (discrete sizes) the start pane can snap to.
|
|
24782
|
+
* @attr label - The accessible label given to the moveable drag handle.
|
|
24783
|
+
* @attr max - A fractional value, between 0 and 100, indicating the maximum size of the start pane.
|
|
24784
|
+
* @attr min - A fractional value, between 0 and 100, indicating the minimum size of the start pane.
|
|
24785
|
+
* @attr orientation - The orientation of the split.
|
|
24786
|
+
* @attr step - A fractional value, between 0 and 100, indicating the increment by which to adjust the value when resized via keyboard.
|
|
24787
|
+
* @attr value - A fractional value, between 0 and 100, indicating the size of the start pane.
|
|
24788
|
+
* @attr wrap-detents - Whether cycling through detents will wrap.
|
|
24789
|
+
*
|
|
24790
|
+
* @fires input - Fired continuously while the user adjusts the drag handle.
|
|
24791
|
+
* @fires change - Fired when the user finishes adjusting the drag handle.
|
|
24792
|
+
*
|
|
24793
|
+
* @cssprop --m3e-split-pane-drag-handle-hover-color - Color used for the drag handle hover state.
|
|
24794
|
+
* @cssprop --m3e-split-pane-drag-handle-hover-opacity - Opacity used for the drag handle hover state.
|
|
24795
|
+
* @cssprop --m3e-split-pane-drag-handle-focus-color - Color used for the drag handle focus state.
|
|
24796
|
+
* @cssprop --m3e-split-pane-drag-handle-focus-opacity - Opacity used for the drag handle focus state.
|
|
24797
|
+
* @cssprop --m3e-split-pane-drag-handle-color - Background color of the drag handle when not pressed.
|
|
24798
|
+
* @cssprop --m3e-split-pane-drag-handle-shape - Corner shape of the drag handle when not pressed.
|
|
24799
|
+
* @cssprop --m3e-split-pane-drag-handle-pressed-color - Background color of the drag handle when pressed.
|
|
24800
|
+
* @cssprop --m3e-split-pane-drag-handle-pressed-shape - Corner shape of the drag handle when pressed.
|
|
24801
|
+
* @cssprop --m3e-split-pane-drag-handle-container-width - Width of the drag handle container.
|
|
24802
|
+
* @cssprop --m3e-split-pane-drag-handle-width - Thickness of the drag handle when not pressed.
|
|
24803
|
+
* @cssprop --m3e-split-pane-drag-handle-height - Length of the drag handle when not pressed.
|
|
24804
|
+
* @cssprop --m3e-split-pane-drag-handle-pressed-width - Thickness of the drag handle when pressed.
|
|
24805
|
+
* @cssprop --m3e-split-pane-drag-handle-pressed-height - Length of the drag handle when pressed.
|
|
24806
|
+
*/
|
|
24807
|
+
let M3eSplitPaneElement = class M3eSplitPaneElement extends FormAssociated$1(Disabled$1(ReconnectedCallback$1(AttachInternals$1(LitElement)))) {
|
|
24808
|
+
constructor() {
|
|
24809
|
+
super(...arguments);
|
|
24810
|
+
_M3eSplitPaneElement_instances.add(this);
|
|
24811
|
+
/** @private */
|
|
24812
|
+
_M3eSplitPaneElement_breakpointUnobserve.set(this, void 0);
|
|
24813
|
+
/** @private */
|
|
24814
|
+
_M3eSplitPaneElement_dragPos.set(this, 0);
|
|
24815
|
+
/** @private */
|
|
24816
|
+
_M3eSplitPaneElement_valueChanged.set(this, false);
|
|
24817
|
+
/** @private */
|
|
24818
|
+
_M3eSplitPaneElement_cachedSize.set(this, 0);
|
|
24819
|
+
/** @private */
|
|
24820
|
+
_M3eSplitPaneElement_snapAnimation.set(this, void 0);
|
|
24821
|
+
/** @private */
|
|
24822
|
+
_M3eSplitPaneElement_pressedController.set(this, new PressedController$1(this, {
|
|
24823
|
+
target: null,
|
|
24824
|
+
isPressedKey: key => key === " ",
|
|
24825
|
+
minPressedDuration: 150,
|
|
24826
|
+
callback: pressed => setCustomState$1(this, "-pressed", pressed && !this.disabled)
|
|
24827
|
+
}));
|
|
24828
|
+
/** @private */
|
|
24829
|
+
_M3eSplitPaneElement_startMutationController.set(this, new MutationController$1(this, {
|
|
24830
|
+
target: null,
|
|
24831
|
+
config: {
|
|
24832
|
+
attributeFilter: ["hidden"]
|
|
24833
|
+
},
|
|
24834
|
+
callback: () => __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_updatePaneVisibility).call(this, "start")
|
|
24835
|
+
}));
|
|
24836
|
+
/** @private */
|
|
24837
|
+
_M3eSplitPaneElement_endMutationController.set(this, new MutationController$1(this, {
|
|
24838
|
+
target: null,
|
|
24839
|
+
config: {
|
|
24840
|
+
attributeFilter: ["hidden"]
|
|
24841
|
+
},
|
|
24842
|
+
callback: () => __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_updatePaneVisibility).call(this, "end")
|
|
24843
|
+
}));
|
|
24844
|
+
/**
|
|
24845
|
+
* A fractional value, between 0 and 100, indicating the size of the start pane.
|
|
24846
|
+
* @default 50
|
|
24847
|
+
*/
|
|
24848
|
+
this.value = 50;
|
|
24849
|
+
/**
|
|
24850
|
+
* A fractional value, between 0 and 100, indicating the minimum size of the start pane.
|
|
24851
|
+
* @default 0
|
|
24852
|
+
*/
|
|
24853
|
+
this.min = 0;
|
|
24854
|
+
/**
|
|
24855
|
+
* A fractional value, between 0 and 100, indicating the maximum size of the start pane.
|
|
24856
|
+
* @default 100
|
|
24857
|
+
*/
|
|
24858
|
+
this.max = 100;
|
|
24859
|
+
/**
|
|
24860
|
+
* A fractional value, between 0 and 100, indicating the increment by which to adjust the value when resized via keyboard.
|
|
24861
|
+
* @default 1
|
|
24862
|
+
*/
|
|
24863
|
+
this.step = 1;
|
|
24864
|
+
/**
|
|
24865
|
+
* Detents (discrete sizes) the start pane can snap to.
|
|
24866
|
+
* @default []
|
|
24867
|
+
*/
|
|
24868
|
+
this.detents = [];
|
|
24869
|
+
/**
|
|
24870
|
+
* Whether cycling through detents will wrap.
|
|
24871
|
+
* @default false
|
|
24872
|
+
*/
|
|
24873
|
+
this.wrapDetents = false;
|
|
24874
|
+
/**
|
|
24875
|
+
* The orientation of the split.
|
|
24876
|
+
* @default "horizontal"
|
|
24877
|
+
*/
|
|
24878
|
+
this.orientation = "horizontal";
|
|
24879
|
+
/**
|
|
24880
|
+
* The accessible label given to the movable drag handle.
|
|
24881
|
+
* @default "Resize panes"
|
|
24882
|
+
*/
|
|
24883
|
+
this.label = "Resize panes";
|
|
24884
|
+
/** A function used to generates human readable text for the accessible value (`aria-valuetext`) of the drag handle. */
|
|
24885
|
+
this.valueFormatter = (value, orientation, dir) => {
|
|
24886
|
+
value = Math.round(value);
|
|
24887
|
+
if (value >= 48 && value <= 52) {
|
|
24888
|
+
return "Panes equally sized";
|
|
24889
|
+
}
|
|
24890
|
+
switch (value) {
|
|
24891
|
+
case 0:
|
|
24892
|
+
return orientation === "horizontal" ? dir === "ltr" ? "Left pane collapsed" : "Right pane collapsed" : "Top pane collapsed";
|
|
24893
|
+
case 100:
|
|
24894
|
+
return orientation === "horizontal" ? dir === "ltr" ? "Right pane collapsed" : "Left pane collapsed" : "Bottom pane collapsed";
|
|
24895
|
+
default:
|
|
24896
|
+
return orientation === "horizontal" ? dir === "ltr" ? `Left pane ${value}%, right pane ${100 - value}%` : `Left pane ${100 - value}%, right pane ${value}%` : `Top pane ${value}%, bottom pane ${100 - value}%`;
|
|
24897
|
+
}
|
|
24898
|
+
};
|
|
24899
|
+
}
|
|
24900
|
+
/** The current orientation of the split. */
|
|
24901
|
+
get currentOrientation() {
|
|
24902
|
+
return this._orientation ?? (this.orientation !== "vertical" ? "horizontal" : "vertical");
|
|
24903
|
+
}
|
|
24904
|
+
/** @inheritdoc */
|
|
24905
|
+
get [(_M3eSplitPaneElement_breakpointUnobserve = new WeakMap(), _M3eSplitPaneElement_dragPos = new WeakMap(), _M3eSplitPaneElement_valueChanged = new WeakMap(), _M3eSplitPaneElement_cachedSize = new WeakMap(), _M3eSplitPaneElement_snapAnimation = new WeakMap(), _M3eSplitPaneElement_pressedController = new WeakMap(), _M3eSplitPaneElement_startMutationController = new WeakMap(), _M3eSplitPaneElement_endMutationController = new WeakMap(), _M3eSplitPaneElement_instances = new WeakSet(), formValue$1)]() {
|
|
24906
|
+
return this.value?.toString() ?? null;
|
|
24907
|
+
}
|
|
24908
|
+
/**
|
|
24909
|
+
* Moves the drag handle to the collapsed position. If detents exist, snaps to the collapsed detent.
|
|
24910
|
+
* If no detents exist, moves to the minimum allowed value.
|
|
24911
|
+
*/
|
|
24912
|
+
collapse() {
|
|
24913
|
+
this.snapToValue(this.min);
|
|
24914
|
+
}
|
|
24915
|
+
/**
|
|
24916
|
+
* Moves the drag handle to the expanded position. If detents exist, snaps to the expanded detent.
|
|
24917
|
+
* If no detents exist, moves to the maximum allowed value.
|
|
24918
|
+
*/
|
|
24919
|
+
expand() {
|
|
24920
|
+
this.snapToValue(this.max);
|
|
24921
|
+
}
|
|
24922
|
+
/**
|
|
24923
|
+
* Moves the drag handle to the specified position. If detents exist, snaps to the closest detent.
|
|
24924
|
+
* If no detents exist, moves to the specified value.
|
|
24925
|
+
* @param {number} value A fractional value, between 0 and 100, indicating the size of the start pane.
|
|
24926
|
+
*/
|
|
24927
|
+
snapToValue(value) {
|
|
24928
|
+
const detent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getClosestDetent).call(this, value);
|
|
24929
|
+
value = detent > -1 ? __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[detent]) : value;
|
|
24930
|
+
if (!__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
24931
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, value);
|
|
24932
|
+
} else {
|
|
24933
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_changeValue).call(this, value);
|
|
24934
|
+
}
|
|
24935
|
+
}
|
|
24936
|
+
/** @inheritdoc */
|
|
24937
|
+
disconnectedCallback() {
|
|
24938
|
+
super.disconnectedCallback();
|
|
24939
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_clearOrientation).call(this);
|
|
24940
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_pressedController, "f").unobserve(this._dragHandle);
|
|
24941
|
+
}
|
|
24942
|
+
/** @inheritdoc */
|
|
24943
|
+
reconnectedCallback() {
|
|
24944
|
+
super.reconnectedCallback();
|
|
24945
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_initialize).call(this);
|
|
24946
|
+
if (this.orientation === "auto") {
|
|
24947
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_initBreakpointMonitoring).call(this);
|
|
24948
|
+
}
|
|
24949
|
+
}
|
|
24950
|
+
/** @inheritdoc */
|
|
24951
|
+
willUpdate(changedProperties) {
|
|
24952
|
+
super.willUpdate(changedProperties);
|
|
24953
|
+
if (changedProperties.has("orientation")) {
|
|
24954
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_breakpointUnobserve, "f")?.call(this);
|
|
24955
|
+
if (this.orientation === "auto") {
|
|
24956
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_initBreakpointMonitoring).call(this);
|
|
24957
|
+
} else {
|
|
24958
|
+
this._orientation = undefined;
|
|
24959
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_updateOrientation).call(this);
|
|
24960
|
+
}
|
|
24961
|
+
}
|
|
24962
|
+
}
|
|
24963
|
+
/** @inheritdoc */
|
|
24964
|
+
updated(_changedProperties) {
|
|
24965
|
+
super.updated(_changedProperties);
|
|
24966
|
+
if (_changedProperties.has("value")) {
|
|
24967
|
+
this._base.style.setProperty("--_split-pane-value", `${this.value}%`);
|
|
24968
|
+
}
|
|
24969
|
+
}
|
|
24970
|
+
/** @inheritdoc */
|
|
24971
|
+
firstUpdated(_changedProperties) {
|
|
24972
|
+
super.firstUpdated(_changedProperties);
|
|
24973
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_initialize).call(this);
|
|
24974
|
+
}
|
|
24975
|
+
/** @inheritdoc */
|
|
24976
|
+
render() {
|
|
24977
|
+
return html`<div class="base"><div class="start" id="start" ?inert="${this.value <= 0}"><slot name="start" @slotchange="${__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_handleStartSlotChange)}"></slot></div>${__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_renderDragHandle).call(this)}<div class="end" ?inert="${this.value >= 100}"><slot name="end" @slotchange="${__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_handleEndSlotChange)}"></slot></div></div>`;
|
|
24978
|
+
}
|
|
24979
|
+
};
|
|
24980
|
+
_M3eSplitPaneElement_renderDragHandle = function _M3eSplitPaneElement_renderDragHandle() {
|
|
24981
|
+
return html`<div id="drag-handle" class="drag-handle" role="separator" ?hidden="${this.disabled}" tabindex="0" aria-label="${this.label}" aria-controls="start" aria-orientation="${this.currentOrientation === "horizontal" ? "vertical" : "horizontal"}" aria-valuemin="${this.min}" aria-valuemax="${this.max}" aria-valuenow="${this.value}" aria-valuetext="${ifDefined(this.valueFormatter?.(this.value, this.currentOrientation, M3eDirectionality.current))}" @pointerdown="${__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_handlePointerDown)}" @pointerup="${__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_handlePointerUp)}" @pointermove="${__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_handlePointerMove)}" @keydown="${__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_handleKeyDown)}" @dblclick="${__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_cycleDetent)}"><div class="handle"><m3e-focus-ring for="drag-handle"></m3e-focus-ring><m3e-state-layer for="drag-handle"></m3e-state-layer></div><div class="touch"></div></div>`;
|
|
24982
|
+
};
|
|
24983
|
+
_M3eSplitPaneElement_handleStartSlotChange = function _M3eSplitPaneElement_handleStartSlotChange(e) {
|
|
24984
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_handleSlotChange).call(this, e.target, __classPrivateFieldGet(this, _M3eSplitPaneElement_startMutationController, "f"), "-with-start");
|
|
24985
|
+
};
|
|
24986
|
+
_M3eSplitPaneElement_handleEndSlotChange = function _M3eSplitPaneElement_handleEndSlotChange(e) {
|
|
24987
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_handleSlotChange).call(this, e.target, __classPrivateFieldGet(this, _M3eSplitPaneElement_endMutationController, "f"), "-with-end");
|
|
24988
|
+
};
|
|
24989
|
+
_M3eSplitPaneElement_handleSlotChange = function _M3eSplitPaneElement_handleSlotChange(slot, mutationController, state) {
|
|
24990
|
+
for (const target of mutationController.targets) {
|
|
24991
|
+
mutationController.unobserve(target);
|
|
24992
|
+
}
|
|
24993
|
+
const assignedElements = new Array();
|
|
24994
|
+
setCustomState$1(this, state, __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_hasVisibleElements).call(this, slot, assignedElements));
|
|
24995
|
+
for (const element of assignedElements) {
|
|
24996
|
+
if (element instanceof HTMLElement) {
|
|
24997
|
+
mutationController.observe(element);
|
|
24998
|
+
}
|
|
24999
|
+
}
|
|
25000
|
+
};
|
|
25001
|
+
_M3eSplitPaneElement_updatePaneVisibility = function _M3eSplitPaneElement_updatePaneVisibility(pane) {
|
|
25002
|
+
setCustomState$1(this, `-with-${pane}`, __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_hasVisibleElements).call(this, this.shadowRoot?.querySelector(`slot[name='${pane}']`)));
|
|
25003
|
+
};
|
|
25004
|
+
_M3eSplitPaneElement_hasVisibleElements = function _M3eSplitPaneElement_hasVisibleElements(slot, assignedElements) {
|
|
25005
|
+
assignedElements = assignedElements ?? [];
|
|
25006
|
+
assignedElements.push(...(slot?.assignedElements({
|
|
25007
|
+
flatten: true
|
|
25008
|
+
}) ?? []));
|
|
25009
|
+
return assignedElements.length > 0 && !assignedElements.every(x => x.hasAttribute("hidden"));
|
|
25010
|
+
};
|
|
25011
|
+
_M3eSplitPaneElement_initialize = function _M3eSplitPaneElement_initialize() {
|
|
25012
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_pressedController, "f").observe(this._dragHandle);
|
|
25013
|
+
};
|
|
25014
|
+
_M3eSplitPaneElement_initBreakpointMonitoring = function _M3eSplitPaneElement_initBreakpointMonitoring() {
|
|
25015
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_breakpointUnobserve, M3eBreakpointObserver.observe([Breakpoint.XSmall], matches => {
|
|
25016
|
+
this._orientation = matches.get(Breakpoint.XSmall) ? "vertical" : "horizontal";
|
|
25017
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_updateOrientation).call(this);
|
|
25018
|
+
}), "f");
|
|
25019
|
+
};
|
|
25020
|
+
_M3eSplitPaneElement_updateOrientation = function _M3eSplitPaneElement_updateOrientation() {
|
|
25021
|
+
setCustomState$1(this, "-vertical", this.currentOrientation === "vertical");
|
|
25022
|
+
};
|
|
25023
|
+
_M3eSplitPaneElement_clearOrientation = function _M3eSplitPaneElement_clearOrientation() {
|
|
25024
|
+
deleteCustomState$1(this, "-vertical");
|
|
25025
|
+
this._orientation = undefined;
|
|
25026
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_breakpointUnobserve, "f")?.call(this);
|
|
25027
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_breakpointUnobserve, undefined, "f");
|
|
25028
|
+
};
|
|
25029
|
+
_M3eSplitPaneElement_handlePointerDown = function _M3eSplitPaneElement_handlePointerDown(e) {
|
|
25030
|
+
if (e.pointerType === "mouse" && e.button > 1) return;
|
|
25031
|
+
if (this.disabled) return;
|
|
25032
|
+
this._dragHandle.setPointerCapture(e.pointerId);
|
|
25033
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_valueChanged, false, "f");
|
|
25034
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_dragPos, this.currentOrientation === "vertical" ? e.clientY : e.clientX, "f");
|
|
25035
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_cachedSize, this.currentOrientation === "vertical" ? this.clientHeight : this.clientWidth, "f");
|
|
25036
|
+
};
|
|
25037
|
+
_M3eSplitPaneElement_handlePointerMove = function _M3eSplitPaneElement_handlePointerMove(e) {
|
|
25038
|
+
if (!this._dragHandle.hasPointerCapture(e.pointerId)) return;
|
|
25039
|
+
const pos = this.currentOrientation === "vertical" ? e.clientY : e.clientX;
|
|
25040
|
+
let delta = __classPrivateFieldGet(this, _M3eSplitPaneElement_cachedSize, "f") > 0 ? (pos - __classPrivateFieldGet(this, _M3eSplitPaneElement_dragPos, "f")) / __classPrivateFieldGet(this, _M3eSplitPaneElement_cachedSize, "f") * 100 : 0;
|
|
25041
|
+
if (M3eDirectionality.current === "rtl" && this.currentOrientation !== "vertical") {
|
|
25042
|
+
delta = -delta;
|
|
25043
|
+
}
|
|
25044
|
+
if (__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_changeValue).call(this, this.value + delta, false)) {
|
|
25045
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_dragPos, pos, "f");
|
|
25046
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_valueChanged, true, "f");
|
|
25047
|
+
}
|
|
25048
|
+
};
|
|
25049
|
+
_M3eSplitPaneElement_handlePointerUp = function _M3eSplitPaneElement_handlePointerUp(e) {
|
|
25050
|
+
if (e.pointerType === "mouse" && e.button > 1) return;
|
|
25051
|
+
if (this._dragHandle.hasPointerCapture(e.pointerId)) {
|
|
25052
|
+
this._dragHandle.releasePointerCapture(e.pointerId);
|
|
25053
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_dragPos, 0, "f");
|
|
25054
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_cachedSize, 0, "f");
|
|
25055
|
+
const detent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getClosestDetent).call(this, this.value);
|
|
25056
|
+
if (detent >= 0) {
|
|
25057
|
+
const value = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[detent]);
|
|
25058
|
+
if (value !== undefined) {
|
|
25059
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, value, false);
|
|
25060
|
+
}
|
|
25061
|
+
}
|
|
25062
|
+
if (__classPrivateFieldGet(this, _M3eSplitPaneElement_valueChanged, "f")) {
|
|
25063
|
+
this.dispatchEvent(new Event("change", {
|
|
25064
|
+
bubbles: true,
|
|
25065
|
+
composed: true
|
|
25066
|
+
}));
|
|
25067
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_valueChanged, false, "f");
|
|
25068
|
+
}
|
|
25069
|
+
}
|
|
25070
|
+
};
|
|
25071
|
+
_M3eSplitPaneElement_handleKeyDown = function _M3eSplitPaneElement_handleKeyDown(e) {
|
|
25072
|
+
const ltr = M3eDirectionality.current === "ltr" || this.currentOrientation === "vertical";
|
|
25073
|
+
switch (e.key) {
|
|
25074
|
+
case "Up":
|
|
25075
|
+
case "ArrowUp":
|
|
25076
|
+
case "Left":
|
|
25077
|
+
case "ArrowLeft":
|
|
25078
|
+
{
|
|
25079
|
+
e.preventDefault();
|
|
25080
|
+
const detent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getClosestDetent).call(this, this.value);
|
|
25081
|
+
if (detent >= 0) {
|
|
25082
|
+
const nextDetent = ltr ? __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getNextLowerDetent).call(this, detent) : __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getNextHigherDetent).call(this, detent);
|
|
25083
|
+
if (nextDetent !== detent && !__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
25084
|
+
const value = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[nextDetent]);
|
|
25085
|
+
if (value !== undefined) {
|
|
25086
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, value);
|
|
25087
|
+
}
|
|
25088
|
+
}
|
|
25089
|
+
} else if (this.step > 1) {
|
|
25090
|
+
if (!__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
25091
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, this.value + (ltr ? -this.step : this.step));
|
|
25092
|
+
}
|
|
25093
|
+
} else {
|
|
25094
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_changeValue).call(this, this.value + (ltr ? -this.step : this.step));
|
|
25095
|
+
}
|
|
25096
|
+
break;
|
|
25097
|
+
}
|
|
25098
|
+
case "Down":
|
|
25099
|
+
case "ArrowDown":
|
|
25100
|
+
case "Right":
|
|
25101
|
+
case "ArrowRight":
|
|
25102
|
+
{
|
|
25103
|
+
e.preventDefault();
|
|
25104
|
+
const detent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getClosestDetent).call(this, this.value);
|
|
25105
|
+
if (detent >= 0) {
|
|
25106
|
+
const nextDetent = ltr ? __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getNextHigherDetent).call(this, detent) : __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getNextLowerDetent).call(this, detent);
|
|
25107
|
+
if (nextDetent !== detent && !__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
25108
|
+
const value = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[nextDetent]);
|
|
25109
|
+
if (value !== undefined) {
|
|
25110
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, value);
|
|
25111
|
+
}
|
|
25112
|
+
}
|
|
25113
|
+
} else if (this.step > 1) {
|
|
25114
|
+
if (!__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
25115
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, this.value + (ltr ? this.step : -this.step));
|
|
25116
|
+
}
|
|
25117
|
+
} else {
|
|
25118
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_changeValue).call(this, this.value + (ltr ? this.step : -this.step));
|
|
25119
|
+
}
|
|
25120
|
+
break;
|
|
25121
|
+
}
|
|
25122
|
+
case "Home":
|
|
25123
|
+
{
|
|
25124
|
+
e.preventDefault();
|
|
25125
|
+
if (!__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
25126
|
+
const next = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getClosestDetent).call(this, this.min);
|
|
25127
|
+
if (next > -1) {
|
|
25128
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[next]));
|
|
25129
|
+
} else {
|
|
25130
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, this.min);
|
|
25131
|
+
}
|
|
25132
|
+
}
|
|
25133
|
+
break;
|
|
25134
|
+
}
|
|
25135
|
+
case "End":
|
|
25136
|
+
{
|
|
25137
|
+
e.preventDefault();
|
|
25138
|
+
if (!__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
25139
|
+
const next = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getClosestDetent).call(this, this.max);
|
|
25140
|
+
if (next > -1) {
|
|
25141
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[next]));
|
|
25142
|
+
} else {
|
|
25143
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, this.max);
|
|
25144
|
+
}
|
|
25145
|
+
}
|
|
25146
|
+
break;
|
|
25147
|
+
}
|
|
25148
|
+
case "PageUp":
|
|
25149
|
+
{
|
|
25150
|
+
e.preventDefault();
|
|
25151
|
+
if (!__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
25152
|
+
const detent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getClosestDetent).call(this, this.value);
|
|
25153
|
+
if (detent >= 0) {
|
|
25154
|
+
const nextDetent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getNextLowerDetent).call(this, detent);
|
|
25155
|
+
if (nextDetent !== detent) {
|
|
25156
|
+
const value = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[nextDetent]);
|
|
25157
|
+
if (value !== undefined) {
|
|
25158
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, value);
|
|
25159
|
+
}
|
|
25160
|
+
}
|
|
25161
|
+
} else {
|
|
25162
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, this.value - Math.max(10, this.step));
|
|
25163
|
+
}
|
|
25164
|
+
}
|
|
25165
|
+
break;
|
|
25166
|
+
}
|
|
25167
|
+
case "PageDown":
|
|
25168
|
+
{
|
|
25169
|
+
e.preventDefault();
|
|
25170
|
+
if (!__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
25171
|
+
const detent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getClosestDetent).call(this, this.value);
|
|
25172
|
+
if (detent >= 0) {
|
|
25173
|
+
const nextDetent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getNextHigherDetent).call(this, detent);
|
|
25174
|
+
if (nextDetent !== detent) {
|
|
25175
|
+
const value = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[nextDetent]);
|
|
25176
|
+
if (value !== undefined) {
|
|
25177
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, value);
|
|
25178
|
+
}
|
|
25179
|
+
}
|
|
25180
|
+
} else {
|
|
25181
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, this.value + Math.max(10, this.step));
|
|
25182
|
+
}
|
|
25183
|
+
}
|
|
25184
|
+
break;
|
|
25185
|
+
}
|
|
25186
|
+
case "Enter":
|
|
25187
|
+
if (!__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
25188
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_cycleDetent).call(this);
|
|
25189
|
+
}
|
|
25190
|
+
break;
|
|
25191
|
+
case " ":
|
|
25192
|
+
e.preventDefault();
|
|
25193
|
+
if (!__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")) {
|
|
25194
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_cycleDetent).call(this);
|
|
25195
|
+
}
|
|
25196
|
+
break;
|
|
25197
|
+
}
|
|
25198
|
+
};
|
|
25199
|
+
_M3eSplitPaneElement_changeValue = function _M3eSplitPaneElement_changeValue(value, emitChange = true) {
|
|
25200
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_clearSnapAnimation).call(this);
|
|
25201
|
+
value = Math.max(this.min, Math.min(this.max, value));
|
|
25202
|
+
if (value != this.value) {
|
|
25203
|
+
const prev = this.value;
|
|
25204
|
+
this.value = value;
|
|
25205
|
+
if (this.dispatchEvent(new Event("input", {
|
|
25206
|
+
bubbles: true,
|
|
25207
|
+
composed: true,
|
|
25208
|
+
cancelable: true
|
|
25209
|
+
}))) {
|
|
25210
|
+
this._base.style.setProperty("--_split-pane-value", `${this.value}%`);
|
|
25211
|
+
if (emitChange) {
|
|
25212
|
+
this.dispatchEvent(new Event("change", {
|
|
25213
|
+
bubbles: true,
|
|
25214
|
+
composed: true
|
|
25215
|
+
}));
|
|
25216
|
+
}
|
|
25217
|
+
return true;
|
|
25218
|
+
} else {
|
|
25219
|
+
this.value = prev;
|
|
25220
|
+
}
|
|
25221
|
+
}
|
|
25222
|
+
return false;
|
|
25223
|
+
};
|
|
25224
|
+
_M3eSplitPaneElement_getClosestDetent = function _M3eSplitPaneElement_getClosestDetent(value) {
|
|
25225
|
+
let closestDetent = -1;
|
|
25226
|
+
let closestDistance = Infinity;
|
|
25227
|
+
for (let i = 0; i < this.detents.length; i++) {
|
|
25228
|
+
const detent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[i]);
|
|
25229
|
+
if (detent === undefined) continue;
|
|
25230
|
+
const distance = Math.abs(value - detent);
|
|
25231
|
+
if (distance < closestDistance) {
|
|
25232
|
+
closestDistance = distance;
|
|
25233
|
+
closestDetent = i;
|
|
25234
|
+
}
|
|
25235
|
+
}
|
|
25236
|
+
return closestDetent;
|
|
25237
|
+
};
|
|
25238
|
+
_M3eSplitPaneElement_getNextHigherDetent = function _M3eSplitPaneElement_getNextHigherDetent(detentIndex) {
|
|
25239
|
+
const currentValue = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[detentIndex]);
|
|
25240
|
+
if (currentValue === undefined) return detentIndex;
|
|
25241
|
+
let value = Infinity;
|
|
25242
|
+
let nextDetent = detentIndex;
|
|
25243
|
+
for (let i = 0; i < this.detents.length; i++) {
|
|
25244
|
+
if (i === detentIndex) continue;
|
|
25245
|
+
const detent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[i]);
|
|
25246
|
+
if (detent === undefined) continue;
|
|
25247
|
+
if (detent > currentValue && detent < value) {
|
|
25248
|
+
value = detent;
|
|
25249
|
+
nextDetent = i;
|
|
25250
|
+
}
|
|
25251
|
+
}
|
|
25252
|
+
return nextDetent;
|
|
25253
|
+
};
|
|
25254
|
+
_M3eSplitPaneElement_getNextLowerDetent = function _M3eSplitPaneElement_getNextLowerDetent(detentIndex) {
|
|
25255
|
+
const currentValue = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[detentIndex]);
|
|
25256
|
+
if (currentValue === undefined) return detentIndex;
|
|
25257
|
+
let value = -Infinity;
|
|
25258
|
+
let nextDetent = detentIndex;
|
|
25259
|
+
for (let i = 0; i < this.detents.length; i++) {
|
|
25260
|
+
if (i === detentIndex) continue;
|
|
25261
|
+
const detent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[i]);
|
|
25262
|
+
if (detent === undefined) continue;
|
|
25263
|
+
if (detent < currentValue && detent > value) {
|
|
25264
|
+
value = detent;
|
|
25265
|
+
nextDetent = i;
|
|
25266
|
+
}
|
|
25267
|
+
}
|
|
25268
|
+
return nextDetent;
|
|
25269
|
+
};
|
|
25270
|
+
_M3eSplitPaneElement_computeDetent = function _M3eSplitPaneElement_computeDetent(detent) {
|
|
25271
|
+
const value = detent.endsWith("px") ? this.clientWidth / parseFloat(detent) : parseFloat(detent);
|
|
25272
|
+
return !isNaN(value) ? value : undefined;
|
|
25273
|
+
};
|
|
25274
|
+
_M3eSplitPaneElement_clearSnapAnimation = function _M3eSplitPaneElement_clearSnapAnimation() {
|
|
25275
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f")?.cancel();
|
|
25276
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_snapAnimation, undefined, "f");
|
|
25277
|
+
};
|
|
25278
|
+
_M3eSplitPaneElement_snapToValue = function _M3eSplitPaneElement_snapToValue(value, emitChange = true) {
|
|
25279
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_clearSnapAnimation).call(this);
|
|
25280
|
+
value = Math.max(this.min, Math.min(this.max, value));
|
|
25281
|
+
if (value === this.value) return;
|
|
25282
|
+
if (!prefersReducedMotion$1()) {
|
|
25283
|
+
addCustomState$1(this, "-animating");
|
|
25284
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_snapAnimation, this._base.animate([{
|
|
25285
|
+
"--_split-pane-value": `${this.value}%`
|
|
25286
|
+
}, {
|
|
25287
|
+
"--_split-pane-value": `${value}%`
|
|
25288
|
+
}], {
|
|
25289
|
+
duration: 250,
|
|
25290
|
+
easing: "cubic-bezier(0.2, 0.0, 0, 1.0)"
|
|
25291
|
+
}), "f");
|
|
25292
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_snapAnimation, "f").onfinish = () => {
|
|
25293
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_changeValue).call(this, value, emitChange);
|
|
25294
|
+
__classPrivateFieldSet(this, _M3eSplitPaneElement_snapAnimation, undefined, "f");
|
|
25295
|
+
deleteCustomState$1(this, "-animating");
|
|
25296
|
+
};
|
|
25297
|
+
} else {
|
|
25298
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_changeValue).call(this, value, emitChange);
|
|
25299
|
+
}
|
|
25300
|
+
};
|
|
25301
|
+
_M3eSplitPaneElement_cycleDetent = function _M3eSplitPaneElement_cycleDetent() {
|
|
25302
|
+
if (this.detents.length === 0) return;
|
|
25303
|
+
const detent = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getClosestDetent).call(this, this.value);
|
|
25304
|
+
if (detent === -1) return;
|
|
25305
|
+
let next = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getNextHigherDetent).call(this, detent);
|
|
25306
|
+
if (next === detent && this.wrapDetents) {
|
|
25307
|
+
next = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_getClosestDetent).call(this, 0);
|
|
25308
|
+
if (next === -1) return;
|
|
25309
|
+
}
|
|
25310
|
+
const value = __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_computeDetent).call(this, this.detents[next]);
|
|
25311
|
+
if (value !== undefined) {
|
|
25312
|
+
__classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_snapToValue).call(this, value);
|
|
25313
|
+
}
|
|
25314
|
+
};
|
|
25315
|
+
(() => {
|
|
25316
|
+
registerStyleSheet$1(css`@property --_split-pane-value { syntax: "<length-percentage>"; inherits: true; initial-value: 50%; }</length-percentage>`);
|
|
25317
|
+
})();
|
|
25318
|
+
/** The styles of the element. */
|
|
25319
|
+
M3eSplitPaneElement.styles = css`:host { display: block; } .base { display: flex; width: 100%; height: 100%; overflow: hidden; } :host(:not(:state(-vertical))) .base { flex-direction: row; } :host(:state(-vertical)) .base { flex-direction: column; } :host(:state(-with-start):state(-with-end)) .base:not(:has(.drag-handle[hidden])) .start { flex: 0 1 calc(var(--_split-pane-value) - calc(var(--m3e-split-pane-drag-handle-container-width, 1.5rem) / 2)); } :host(:state(-with-start):state(-with-end)) .base:has(.drag-handle[hidden]) .start { flex: 0 1 var(--_split-pane-value); } :host(:not(:state(-with-end))) .start { flex: 1 1 auto; } :host(:state(-with-end)) .end { flex: 1 1 auto; } :host(:not(:state(-with-end))) .end { display: none; } :host(:not(:state(-animating))) .start[inert], :host(:not(:state(-animating))) .end[inert] { visibility: hidden; } .drag-handle { flex: none; display: flex; align-items: center; justify-content: center; outline: none; touch-action: none; user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); --m3e-state-layer-hover-color: var(--m3e-split-pane-drag-handle-hover-color, ${DesignToken$1.color.onSurface}); --m3e-state-layer-hover-opacity: var(--m3e-split-pane-drag-handle-hover-opacity, 8%); --m3e-state-layer-focus-color: var(--m3e-split-pane-drag-handle-focus-color, ${DesignToken$1.color.onSurface}); --m3e-state-layer-focus-opacity: var(--m3e-split-pane-drag-handle-focus-opacity, 10%); } :host(:is(:not(:state(-with-start)), :not(:state(-with-end)))) .drag-handle, .drag-handle[hidden] { display: none; } :host(:not(:state(-pressed))) .drag-handle:not([aria-disabled]) { cursor: grab; } :host(:state(-pressed)) .drag-handle:not([aria-disabled]) { cursor: grabbing; } .handle { position: relative; transition: ${unsafeCSS(`background-color ${DesignToken$1.motion.duration.short4} ${DesignToken$1.motion.easing.standard},
|
|
25320
|
+
width ${DesignToken$1.motion.spring.fastEffects}, height ${DesignToken$1.motion.spring.fastEffects}`)}; } .touch { z-index: 1; position: absolute; height: 3rem; width: 3rem; margin: auto; touch-action: none; user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } :host(:not(:state(-pressed))) .handle { background-color: var(--m3e-split-pane-drag-handle-color, ${DesignToken$1.color.outline}); border-radius: var(--m3e-split-pane-drag-handle-shape, ${DesignToken$1.shape.corner.full}); } :host(:state(-pressed)) .handle { background-color: var(--m3e-split-pane-drag-handle-pressed-color, ${DesignToken$1.color.onSurface}); border-radius: var(--m3e-split-pane-drag-handle-pressed-shape, ${DesignToken$1.shape.corner.medium}); } :host(:not(:state(-vertical))) .drag-handle { flex-direction: column; width: var(--m3e-split-pane-drag-handle-container-width, 1.5rem); } :host(:not(:state(-vertical)):not(:state(-pressed))) .handle { width: var(--m3e-split-pane-drag-handle-width, 0.25rem); height: var(--m3e-split-pane-drag-handle-height, 3rem); } :host(:not(:state(-vertical)):state(-pressed)) .handle { width: var(--m3e-split-pane-drag-handle-pressed-width, 0.75rem); height: var(--m3e-split-pane-drag-handle-pressed-height, 3.25rem); } :host(:state(-vertical)) .drag-handle { height: var(--m3e-split-pane-drag-handle-container-width, 1.5rem); } :host(:state(-vertical):not(:state(-pressed))) .handle { width: var(--m3e-split-pane-drag-handle-height, 3rem); height: var(--m3e-split-pane-drag-handle-width, 0.25rem); } :host(:state(-vertical):state(-pressed)) .handle { width: var(--m3e-split-pane-drag-handle-pressed-height, 3.25rem); height: var(--m3e-split-pane-drag-handle-pressed-width, 0.75rem); } @media (prefers-reduced-motion) { .handle { transition: none; } } @media (forced-colors: active) { :host(:state(-pressed)) .handle, :host(:not(:state(-pressed))) .handle { background-color: ButtonText; } }`;
|
|
25321
|
+
__decorate([state()], M3eSplitPaneElement.prototype, "_orientation", void 0);
|
|
25322
|
+
__decorate([query(".base")], M3eSplitPaneElement.prototype, "_base", void 0);
|
|
25323
|
+
__decorate([query(".drag-handle")], M3eSplitPaneElement.prototype, "_dragHandle", void 0);
|
|
25324
|
+
__decorate([property({
|
|
25325
|
+
type: Number
|
|
25326
|
+
})], M3eSplitPaneElement.prototype, "value", void 0);
|
|
25327
|
+
__decorate([property({
|
|
25328
|
+
type: Number
|
|
25329
|
+
})], M3eSplitPaneElement.prototype, "min", void 0);
|
|
25330
|
+
__decorate([property({
|
|
25331
|
+
type: Number
|
|
25332
|
+
})], M3eSplitPaneElement.prototype, "max", void 0);
|
|
25333
|
+
__decorate([property({
|
|
25334
|
+
type: Number
|
|
25335
|
+
})], M3eSplitPaneElement.prototype, "step", void 0);
|
|
25336
|
+
__decorate([property({
|
|
25337
|
+
attribute: "detents",
|
|
25338
|
+
converter: spaceSeparatedStringConverter$1
|
|
25339
|
+
})], M3eSplitPaneElement.prototype, "detents", void 0);
|
|
25340
|
+
__decorate([property({
|
|
25341
|
+
attribute: "wrap-detents",
|
|
25342
|
+
type: Boolean
|
|
25343
|
+
})], M3eSplitPaneElement.prototype, "wrapDetents", void 0);
|
|
25344
|
+
__decorate([property()], M3eSplitPaneElement.prototype, "orientation", void 0);
|
|
25345
|
+
__decorate([property()], M3eSplitPaneElement.prototype, "label", void 0);
|
|
25346
|
+
__decorate([property()], M3eSplitPaneElement.prototype, "valueFormatter", void 0);
|
|
25347
|
+
M3eSplitPaneElement = __decorate([customElement$1("m3e-split-pane")], M3eSplitPaneElement);
|
|
25348
|
+
|
|
24572
25349
|
/**
|
|
24573
25350
|
* A panel presented for a step in a wizard-like workflow.
|
|
24574
25351
|
*
|
|
@@ -30707,5 +31484,5 @@ M3eTooltipElement.styles = css`:host { display: contents; } .base { position: ab
|
|
|
30707
31484
|
__decorate([property()], M3eTooltipElement.prototype, "position", void 0);
|
|
30708
31485
|
M3eTooltipElement = __decorate([customElement$1("m3e-tooltip")], M3eTooltipElement);
|
|
30709
31486
|
|
|
30710
|
-
export { ActionElementBase, AnimationLoopController, AttachInternals, CalendarViewElementBase, Checked, CheckedIndeterminate, ConstraintValidation, DesignToken, Dirty, Disabled, DisabledInteractive, EventAttribute, FocusController, Focusable, FormAssociated, FormSubmitter, HoverController, HtmlFor, InertController, IntersectionController, KeyboardClick, Labelled, LinkButton, LongPressController, M3eAccordionElement, M3eActionListElement, M3eAppBarElement, M3eAssistChipElement, M3eAutocompleteElement, M3eAvatarElement, M3eBadgeElement, M3eBottomSheetActionElement, M3eBottomSheetElement, M3eBottomSheetTriggerElement, M3eButtonElement, M3eButtonGroupElement, M3eButtonSegmentElement, M3eCalendarElement, M3eCardElement, M3eCheckboxElement, M3eChipElement, M3eChipSetElement, M3eCircularProgressIndicatorElement, M3eCollapsibleElement, M3eDatepickerElement, M3eDatepickerToggleElement, M3eDialogActionElement, M3eDialogElement, M3eDialogTriggerElement, M3eDividerElement, M3eDrawerContainerElement, M3eDrawerToggleElement, M3eElevationElement, M3eExpandableListItemElement, M3eExpansionHeaderElement, M3eExpansionPanelElement, M3eFabElement, M3eFabMenuElement, M3eFabMenuItemElement, M3eFabMenuTriggerElement, M3eFilterChipElement, M3eFilterChipSetElement, M3eFocusRingElement, M3eFormFieldElement, M3eHeadingElement, M3eIconButtonElement, M3eIconElement, M3eInputChipElement, M3eInputChipSetElement, M3eLinearProgressIndicatorElement, M3eListActionElement, M3eListElement, M3eListItemButtonElement, M3eListItemElement, M3eListOptionElement, M3eLoadingIndicatorElement, M3eMenuElement, M3eMenuItemCheckboxElement, M3eMenuItemElement, M3eMenuItemGroupElement, M3eMenuItemRadioElement, M3eMenuTriggerElement, M3eMonthViewElement, M3eMultiYearViewElement, M3eNavBarElement, M3eNavItemElement, M3eNavMenuElement, M3eNavMenuItemElement, M3eNavMenuItemGroupElement, M3eNavRailElement, M3eNavRailToggleElement, M3eOptGroupElement, M3eOptionElement, M3eOptionPanelElement, M3ePaginatorElement, M3ePseudoCheckboxElement, M3ePseudoRadioElement, M3eRadioElement, M3eRadioGroupElement, M3eRichTooltipActionElement, M3eRichTooltipElement, M3eRippleElement, M3eScrollContainerElement, M3eSearchBarElement, M3eSearchViewElement, M3eSegmentedButtonElement, M3eSelectElement, M3eSelectionListElement, M3eShapeElement, M3eSlideElement, M3eSlideGroupElement, M3eSliderElement, M3eSliderThumbElement, M3eSnackbar, M3eSnackbarElement, M3eSplitButtonElement, M3eStateLayerElement, M3eStepElement, M3eStepPanelElement, M3eStepperElement, M3eStepperNextElement, M3eStepperPreviousElement, M3eStepperResetElement, M3eSuggestionChipElement, M3eSwitchElement, M3eTabElement, M3eTabPanelElement, M3eTabsElement, M3eTextHighlightElement, M3eTextOverflowElement, M3eTextareaAutosizeElement, M3eThemeElement, M3eTocElement, M3eTocItemElement, M3eToolbarElement, M3eTooltipElement, M3eYearViewElement, MutationController, PressedController, ProgressElementIndicatorBase, ReadOnly, ReconnectedCallback, Required, RequiredConstraintValidation, ResizeController, Role, ScrollController, ScrollLockController, Selected, StepperButtonElementBase, SuppressInitialAnimation, TocGenerator, TooltipElementBase, Touched, VelocityTracker, Vertical, addCustomState, checkOrSelect, computeCssSize, computeLineCount, customElement, dateConverter, debounce, defaultValue, deleteCustomState, findFormFieldControl, focusWhenReady, forcedColorsActive, formValue, generateClipPaths, getTextContent, guid, hasAssignedNodes, hasCustomState, hasKeys, interceptProperty, internals, isAttachInternalsMixin, isCheckedIndeterminateMixin, isCheckedMixin, isCheckedOrSelected, isCheckedOrSelectedMixin, isConstraintValidationMixin, isDirtyMixin, isDisabledInteractiveMixin, isDisabledMixin, isFormAssociatedMixin, isFormFieldControl, isFormSubmitterMixin, isHtmlForMixin, isLabelledMixin, isLinkButtonMixin, isReadOnlyMixin, isRequiredConstraintValidationMixin, isRequiredMixin, isSelectedMixin, isTouchedMixin, isVerticalMixin, prefersReducedMotion, registerStyleSheet, renderPseudoLink, resolveElementById, resolveFragmentUrl, safeStyleMap, scrollIntoViewIfNeeded, setCustomState, spaceSeparatedStringConverter, updateLabels, validate };
|
|
31487
|
+
export { ActionElementBase, AnimationLoopController, AttachInternals, CalendarViewElementBase, Checked, CheckedIndeterminate, ConstraintValidation, DesignToken, Dirty, Disabled, DisabledInteractive, EventAttribute, FocusController, Focusable, FormAssociated, FormSubmitter, HoverController, HtmlFor, InertController, IntersectionController, KeyboardClick, Labelled, LinkButton, LongPressController, M3eAccordionElement, M3eActionListElement, M3eAppBarElement, M3eAssistChipElement, M3eAutocompleteElement, M3eAvatarElement, M3eBadgeElement, M3eBottomSheetActionElement, M3eBottomSheetElement, M3eBottomSheetTriggerElement, M3eButtonElement, M3eButtonGroupElement, M3eButtonSegmentElement, M3eCalendarElement, M3eCardElement, M3eCheckboxElement, M3eChipElement, M3eChipSetElement, M3eCircularProgressIndicatorElement, M3eCollapsibleElement, M3eDatepickerElement, M3eDatepickerToggleElement, M3eDialogActionElement, M3eDialogElement, M3eDialogTriggerElement, M3eDividerElement, M3eDrawerContainerElement, M3eDrawerToggleElement, M3eElevationElement, M3eExpandableListItemElement, M3eExpansionHeaderElement, M3eExpansionPanelElement, M3eFabElement, M3eFabMenuElement, M3eFabMenuItemElement, M3eFabMenuTriggerElement, M3eFilterChipElement, M3eFilterChipSetElement, M3eFocusRingElement, M3eFormFieldElement, M3eHeadingElement, M3eIconButtonElement, M3eIconElement, M3eInputChipElement, M3eInputChipSetElement, M3eLinearProgressIndicatorElement, M3eListActionElement, M3eListElement, M3eListItemButtonElement, M3eListItemElement, M3eListOptionElement, M3eLoadingIndicatorElement, M3eMenuElement, M3eMenuItemCheckboxElement, M3eMenuItemElement, M3eMenuItemGroupElement, M3eMenuItemRadioElement, M3eMenuTriggerElement, M3eMonthViewElement, M3eMultiYearViewElement, M3eNavBarElement, M3eNavItemElement, M3eNavMenuElement, M3eNavMenuItemElement, M3eNavMenuItemGroupElement, M3eNavRailElement, M3eNavRailToggleElement, M3eOptGroupElement, M3eOptionElement, M3eOptionPanelElement, M3ePaginatorElement, M3ePseudoCheckboxElement, M3ePseudoRadioElement, M3eRadioElement, M3eRadioGroupElement, M3eRichTooltipActionElement, M3eRichTooltipElement, M3eRippleElement, M3eScrollContainerElement, M3eSearchBarElement, M3eSearchViewElement, M3eSegmentedButtonElement, M3eSelectElement, M3eSelectionListElement, M3eShapeElement, M3eSkeletonElement, M3eSlideElement, M3eSlideGroupElement, M3eSliderElement, M3eSliderThumbElement, M3eSnackbar, M3eSnackbarElement, M3eSplitButtonElement, M3eSplitPaneElement, M3eStateLayerElement, M3eStepElement, M3eStepPanelElement, M3eStepperElement, M3eStepperNextElement, M3eStepperPreviousElement, M3eStepperResetElement, M3eSuggestionChipElement, M3eSwitchElement, M3eTabElement, M3eTabPanelElement, M3eTabsElement, M3eTextHighlightElement, M3eTextOverflowElement, M3eTextareaAutosizeElement, M3eThemeElement, M3eTocElement, M3eTocItemElement, M3eToolbarElement, M3eTooltipElement, M3eYearViewElement, MutationController, PressedController, ProgressElementIndicatorBase, ReadOnly, ReconnectedCallback, Required, RequiredConstraintValidation, ResizeController, Role, ScrollController, ScrollLockController, Selected, StepperButtonElementBase, SuppressInitialAnimation, TocGenerator, TooltipElementBase, Touched, VelocityTracker, Vertical, addCustomState, checkOrSelect, computeCssSize, computeLineCount, customElement, dateConverter, debounce, defaultValue, deleteCustomState, findFormFieldControl, focusWhenReady, forcedColorsActive, formValue, generateClipPaths, getTextContent, guid, hasAssignedNodes, hasCustomState, hasKeys, interceptProperty, internals, isAttachInternalsMixin, isCheckedIndeterminateMixin, isCheckedMixin, isCheckedOrSelected, isCheckedOrSelectedMixin, isConstraintValidationMixin, isDirtyMixin, isDisabledInteractiveMixin, isDisabledMixin, isFormAssociatedMixin, isFormFieldControl, isFormSubmitterMixin, isHtmlForMixin, isLabelledMixin, isLinkButtonMixin, isReadOnlyMixin, isRequiredConstraintValidationMixin, isRequiredMixin, isSelectedMixin, isTouchedMixin, isVerticalMixin, prefersReducedMotion, registerStyleSheet, renderPseudoLink, resolveElementById, resolveFragmentUrl, safeStyleMap, scrollIntoViewIfNeeded, setCustomState, spaceSeparatedStringConverter, updateLabels, validate, waitForUpgrade };
|
|
30711
31488
|
//# sourceMappingURL=all.js.map
|