reka-ui 2.9.0 → 2.9.1
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/dist/Calendar/CalendarGrid.cjs +3 -3
- package/dist/Calendar/CalendarGrid.cjs.map +1 -1
- package/dist/Calendar/CalendarGrid.js +4 -4
- package/dist/Calendar/CalendarGrid.js.map +1 -1
- package/dist/Combobox/ComboboxInput.cjs +10 -1
- package/dist/Combobox/ComboboxInput.cjs.map +1 -1
- package/dist/Combobox/ComboboxInput.js +10 -1
- package/dist/Combobox/ComboboxInput.js.map +1 -1
- package/dist/DismissableLayer/utils.cjs +1 -0
- package/dist/DismissableLayer/utils.cjs.map +1 -1
- package/dist/DismissableLayer/utils.js +1 -0
- package/dist/DismissableLayer/utils.js.map +1 -1
- package/dist/Menu/MenuGroup.cjs +13 -2
- package/dist/Menu/MenuGroup.cjs.map +1 -1
- package/dist/Menu/MenuGroup.js +8 -3
- package/dist/Menu/MenuGroup.js.map +1 -1
- package/dist/Menu/MenuItemImpl.cjs +3 -2
- package/dist/Menu/MenuItemImpl.cjs.map +1 -1
- package/dist/Menu/MenuItemImpl.js +3 -2
- package/dist/Menu/MenuItemImpl.js.map +1 -1
- package/dist/Menu/MenuLabel.cjs +4 -2
- package/dist/Menu/MenuLabel.cjs.map +1 -1
- package/dist/Menu/MenuLabel.js +5 -3
- package/dist/Menu/MenuLabel.js.map +1 -1
- package/dist/MonthPicker/MonthPickerGrid.cjs +3 -3
- package/dist/MonthPicker/MonthPickerGrid.cjs.map +1 -1
- package/dist/MonthPicker/MonthPickerGrid.js +4 -4
- package/dist/MonthPicker/MonthPickerGrid.js.map +1 -1
- package/dist/MonthRangePicker/MonthRangePickerGrid.cjs +3 -3
- package/dist/MonthRangePicker/MonthRangePickerGrid.cjs.map +1 -1
- package/dist/MonthRangePicker/MonthRangePickerGrid.js +4 -4
- package/dist/MonthRangePicker/MonthRangePickerGrid.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.cjs +3 -3
- package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.js +4 -4
- package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
- package/dist/Splitter/SplitterGroup.cjs +23 -13
- package/dist/Splitter/SplitterGroup.cjs.map +1 -1
- package/dist/Splitter/SplitterGroup.js +23 -13
- package/dist/Splitter/SplitterGroup.js.map +1 -1
- package/dist/Toast/FocusProxy.cjs +0 -1
- package/dist/Toast/FocusProxy.cjs.map +1 -1
- package/dist/Toast/FocusProxy.js +0 -1
- package/dist/Toast/FocusProxy.js.map +1 -1
- package/dist/Toast/ToastRootImpl.cjs +1 -5
- package/dist/Toast/ToastRootImpl.cjs.map +1 -1
- package/dist/Toast/ToastRootImpl.js +1 -5
- package/dist/Toast/ToastRootImpl.js.map +1 -1
- package/dist/YearPicker/YearPickerGrid.cjs +3 -3
- package/dist/YearPicker/YearPickerGrid.cjs.map +1 -1
- package/dist/YearPicker/YearPickerGrid.js +4 -4
- package/dist/YearPicker/YearPickerGrid.js.map +1 -1
- package/dist/YearRangePicker/YearRangePickerGrid.cjs +3 -3
- package/dist/YearRangePicker/YearRangePickerGrid.cjs.map +1 -1
- package/dist/YearRangePicker/YearRangePickerGrid.js +4 -4
- package/dist/YearRangePicker/YearRangePickerGrid.js.map +1 -1
- package/dist/constant.d.cts.map +1 -1
- package/dist/date/useDateField.cjs +1 -0
- package/dist/date/useDateField.cjs.map +1 -1
- package/dist/date/useDateField.js +1 -0
- package/dist/date/useDateField.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index3.d.cts +1007 -1006
- package/dist/index3.d.cts.map +1 -1
- package/dist/index3.d.ts +83 -82
- package/dist/index3.d.ts.map +1 -1
- package/dist/internal.d.cts +2 -4
- package/dist/internal.d.cts.map +1 -1
- package/dist/internal.d.ts +2 -4
- package/dist/shared/useBodyScrollLock.cjs +1 -0
- package/dist/shared/useBodyScrollLock.cjs.map +1 -1
- package/dist/shared/useBodyScrollLock.js +1 -0
- package/dist/shared/useBodyScrollLock.js.map +1 -1
- package/dist/shared/useHideOthers.cjs +1 -1
- package/dist/shared/useHideOthers.cjs.map +1 -1
- package/dist/shared/useHideOthers.js +1 -1
- package/dist/shared/useHideOthers.js.map +1 -1
- package/dist/utils/callPanelCallbacks.cjs +10 -7
- package/dist/utils/callPanelCallbacks.cjs.map +1 -1
- package/dist/utils/callPanelCallbacks.js +10 -7
- package/dist/utils/callPanelCallbacks.js.map +1 -1
- package/package.json +2 -2
- package/src/Calendar/CalendarGrid.vue +6 -1
- package/src/Combobox/ComboboxInput.vue +19 -0
- package/src/DismissableLayer/utils.ts +4 -1
- package/src/Menu/MenuGroup.vue +12 -0
- package/src/Menu/MenuItemImpl.vue +4 -4
- package/src/Menu/MenuLabel.vue +7 -1
- package/src/MonthPicker/MonthPickerGrid.vue +6 -1
- package/src/MonthRangePicker/MonthRangePickerGrid.vue +6 -1
- package/src/RangeCalendar/RangeCalendarGrid.vue +6 -1
- package/src/Splitter/SplitterGroup.vue +26 -6
- package/src/Splitter/utils/callPanelCallbacks.ts +16 -8
- package/src/Toast/FocusProxy.vue +0 -1
- package/src/Toast/ToastRootImpl.vue +0 -4
- package/src/YearPicker/YearPickerGrid.vue +6 -1
- package/src/YearRangePicker/YearRangePickerGrid.vue +6 -1
- package/src/shared/date/useDateField.ts +2 -1
- package/src/shared/useBodyScrollLock.ts +2 -0
- package/src/shared/useHideOthers.ts +2 -1
package/dist/internal.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./index2.cjs";
|
|
2
2
|
import { MenuArrowProps, MenuCheckboxItemEmits, MenuCheckboxItemProps, MenuContentEmits, MenuContentProps, MenuEmits, MenuGroupProps, MenuItemEmits, MenuItemIndicatorProps, MenuItemProps, MenuLabelProps, MenuPortalProps, MenuProps, MenuRadioGroupEmits, MenuRadioGroupProps, MenuRadioItemEmits, MenuRadioItemProps, MenuSeparatorProps, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, MenuSubTriggerProps, PopperAnchorProps, _default$277 as _default$13, _default$278 as _default$8, _default$279 as _default, _default$280 as _default$6, _default$281 as _default$10, _default$282 as _default$3, _default$283 as _default$14, _default$284 as _default$12, _default$285 as _default$2, _default$286 as _default$1, _default$287 as _default$11, _default$288 as _default$7, _default$290 as _default$9, _default$291 as _default$4, _default$292 as _default$5, injectMenuContext, injectMenuRootContext } from "./index3.cjs";
|
|
3
|
-
import * as
|
|
3
|
+
import * as vue13 from "vue";
|
|
4
4
|
|
|
5
5
|
//#region src/Menu/MenuAnchor.vue.d.ts
|
|
6
6
|
interface MenuAnchorProps extends PopperAnchorProps {}
|
|
@@ -8,15 +8,13 @@ declare var __VLS_6: {};
|
|
|
8
8
|
type __VLS_Slots = {} & {
|
|
9
9
|
default?: (props: typeof __VLS_6) => any;
|
|
10
10
|
};
|
|
11
|
-
declare const __VLS_component:
|
|
11
|
+
declare const __VLS_component: vue13.DefineComponent<MenuAnchorProps, {}, {}, {}, {}, vue13.ComponentOptionsMixin, vue13.ComponentOptionsMixin, {}, string, vue13.PublicProps, Readonly<MenuAnchorProps> & Readonly<{}>, {}, {}, {}, {}, string, vue13.ComponentProvideOptions, false, {}, any>;
|
|
12
12
|
declare const _default$15: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
13
13
|
type __VLS_WithSlots<T, S> = T & {
|
|
14
14
|
new (): {
|
|
15
15
|
$slots: S;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=MenuAnchor.vue.d.ts.map
|
|
19
|
-
|
|
20
18
|
//#endregion
|
|
21
19
|
export { _default$15 as MenuAnchor, _default$5 as MenuArrow, MenuArrowProps, _default$9 as MenuCheckboxItem, MenuCheckboxItemEmits, MenuCheckboxItemProps, _default$7 as MenuContent, MenuContentEmits, MenuContentProps, MenuEmits, _default$11 as MenuGroup, MenuGroupProps, _default$4 as MenuItem, MenuItemEmits, _default$1 as MenuItemIndicator, MenuItemIndicatorProps, MenuItemProps, _default$2 as MenuLabel, MenuLabelProps, _default$12 as MenuPortal, MenuPortalProps, MenuProps, _default$14 as MenuRadioGroup, MenuRadioGroupEmits, MenuRadioGroupProps, _default$3 as MenuRadioItem, MenuRadioItemEmits, MenuRadioItemProps, _default$10 as MenuRoot, _default$6 as MenuSeparator, MenuSeparatorProps, _default as MenuSub, _default$8 as MenuSubContent, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, _default$13 as MenuSubTrigger, MenuSubTriggerProps, injectMenuContext, injectMenuRootContext };
|
|
22
20
|
//# sourceMappingURL=internal.d.cts.map
|
package/dist/internal.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.cts","names":[],"sources":["../src/Menu/MenuAnchor.vue"],"sourcesContent":[],"mappings":";;;;;UAkBU,eAAA,SAAwB;YA4B9B;KACC,WAAA;EA7BK,OAAA,CAAA,EAAA,CAAA,KAAA,EAAgB,OA8BG,OA9BK,EAAA,GAAA,GAAA;AAAiB,CAAA;AA4B7B,cAsBhB,eApBuB,EAoBR,
|
|
1
|
+
{"version":3,"file":"internal.d.cts","names":[],"sources":["../src/Menu/MenuAnchor.vue"],"sourcesContent":[],"mappings":";;;;;UAkBU,eAAA,SAAwB;YA4B9B;KACC,WAAA;EA7BK,OAAA,CAAA,EAAA,CAAA,KAAA,EAAgB,OA8BG,OA9BK,EAAA,GAAA,GAAA;AAAiB,CAAA;AA4B7B,cAsBhB,eApBuB,EAoBR,KAAA,CAAA,eApBe,CAoBf,eApBe,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAoBf,KAAA,CAAA,qBAAA,EAAA,KAAA,CAAA,qBAAA,EApBe,CAAA,CAAA,EAAA,MAAA,EAoBf,KAAA,CAAA,WAAA,EAAA,QApBe,CAoBf,eApBe,CAAA,GAoBf,QApBe,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAoBf,KAAA,CAAA,uBAAA,EApBe,KAAA,EAAA,CAAA,CAAA,EAAA,GAAA,CAAA;AAAA,cAoBf,WAMnB,EACmB,eADnB,CAAA,OAC0C,eAD1C,EAC2D,WAD3D,CAAA;KASG,eAfgB,CAAA,CAAA,EAAA,CAAA,CAAA,GAeQ,CAfR,GAAA;EAAA,MAAA,EAAA;IAAA,MAAA,EAiBX,CAjBW;EAAA,CAAA;CAAA"}
|
package/dist/internal.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./index2.js";
|
|
2
2
|
import { MenuArrowProps, MenuCheckboxItemEmits, MenuCheckboxItemProps, MenuContentEmits, MenuContentProps, MenuEmits, MenuGroupProps, MenuItemEmits, MenuItemIndicatorProps, MenuItemProps, MenuLabelProps, MenuPortalProps, MenuProps, MenuRadioGroupEmits, MenuRadioGroupProps, MenuRadioItemEmits, MenuRadioItemProps, MenuSeparatorProps, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, MenuSubTriggerProps, PopperAnchorProps, _default$277 as _default$13, _default$278 as _default$8, _default$279 as _default, _default$280 as _default$6, _default$281 as _default$10, _default$282 as _default$3, _default$283 as _default$14, _default$284 as _default$12, _default$285 as _default$2, _default$286 as _default$1, _default$287 as _default$11, _default$288 as _default$7, _default$290 as _default$9, _default$291 as _default$4, _default$292 as _default$5, injectMenuContext, injectMenuRootContext } from "./index3.js";
|
|
3
|
-
import * as
|
|
3
|
+
import * as vue105 from "vue";
|
|
4
4
|
|
|
5
5
|
//#region src/Menu/MenuAnchor.vue.d.ts
|
|
6
6
|
interface MenuAnchorProps extends PopperAnchorProps {}
|
|
@@ -8,15 +8,13 @@ declare var __VLS_6: {};
|
|
|
8
8
|
type __VLS_Slots = {} & {
|
|
9
9
|
default?: (props: typeof __VLS_6) => any;
|
|
10
10
|
};
|
|
11
|
-
declare const __VLS_component:
|
|
11
|
+
declare const __VLS_component: vue105.DefineComponent<MenuAnchorProps, {}, {}, {}, {}, vue105.ComponentOptionsMixin, vue105.ComponentOptionsMixin, {}, string, vue105.PublicProps, Readonly<MenuAnchorProps> & Readonly<{}>, {}, {}, {}, {}, string, vue105.ComponentProvideOptions, false, {}, any>;
|
|
12
12
|
declare const _default$15: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
13
13
|
type __VLS_WithSlots<T, S> = T & {
|
|
14
14
|
new (): {
|
|
15
15
|
$slots: S;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=MenuAnchor.vue.d.ts.map
|
|
19
|
-
|
|
20
18
|
//#endregion
|
|
21
19
|
export { _default$15 as MenuAnchor, _default$5 as MenuArrow, MenuArrowProps, _default$9 as MenuCheckboxItem, MenuCheckboxItemEmits, MenuCheckboxItemProps, _default$7 as MenuContent, MenuContentEmits, MenuContentProps, MenuEmits, _default$11 as MenuGroup, MenuGroupProps, _default$4 as MenuItem, MenuItemEmits, _default$1 as MenuItemIndicator, MenuItemIndicatorProps, MenuItemProps, _default$2 as MenuLabel, MenuLabelProps, _default$12 as MenuPortal, MenuPortalProps, MenuProps, _default$14 as MenuRadioGroup, MenuRadioGroupEmits, MenuRadioGroupProps, _default$3 as MenuRadioItem, MenuRadioItemEmits, MenuRadioItemProps, _default$10 as MenuRoot, _default$6 as MenuSeparator, MenuSeparatorProps, _default as MenuSub, _default$8 as MenuSubContent, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, _default$13 as MenuSubTrigger, MenuSubTriggerProps, injectMenuContext, injectMenuRootContext };
|
|
22
20
|
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -51,6 +51,7 @@ const useBodyLockStackCount = (0, __vueuse_core.createSharedComposable)(() => {
|
|
|
51
51
|
}
|
|
52
52
|
if (__vueuse_shared.isIOS) stopTouchMoveListener = (0, __vueuse_core.useEventListener)(document, "touchmove", (e) => preventDefault(e), { passive: false });
|
|
53
53
|
(0, vue.nextTick)(() => {
|
|
54
|
+
if (!locked.value) return;
|
|
54
55
|
document.body.style.pointerEvents = "none";
|
|
55
56
|
document.body.style.overflow = "hidden";
|
|
56
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBodyScrollLock.cjs","names":["stopTouchMoveListener: Fn | null","isClient","isIOS","e: TouchEvent","initialState?: boolean | undefined","ele: Element","rawEvent: TouchEvent"],"sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useBodyScrollLock.cjs","names":["stopTouchMoveListener: Fn | null","isClient","isIOS","e: TouchEvent","initialState?: boolean | undefined","ele: Element","rawEvent: TouchEvent"],"sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -50,6 +50,7 @@ const useBodyLockStackCount = createSharedComposable(() => {
|
|
|
50
50
|
}
|
|
51
51
|
if (isIOS) stopTouchMoveListener = useEventListener(document, "touchmove", (e) => preventDefault(e), { passive: false });
|
|
52
52
|
nextTick(() => {
|
|
53
|
+
if (!locked.value) return;
|
|
53
54
|
document.body.style.pointerEvents = "none";
|
|
54
55
|
document.body.style.overflow = "hidden";
|
|
55
56
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBodyScrollLock.js","names":["stopTouchMoveListener: Fn | null","e: TouchEvent","initialState?: boolean | undefined","ele: Element","rawEvent: TouchEvent"],"sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useBodyScrollLock.js","names":["stopTouchMoveListener: Fn | null","e: TouchEvent","initialState?: boolean | undefined","ele: Element","rawEvent: TouchEvent"],"sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ const aria_hidden = require_rolldown_runtime.__toESM(require("aria-hidden"));
|
|
|
14
14
|
function useHideOthers(target) {
|
|
15
15
|
let undo;
|
|
16
16
|
(0, vue.watch)(() => (0, __vueuse_core.unrefElement)(target), (el) => {
|
|
17
|
-
if (el) undo = (0, aria_hidden.hideOthers)(el);
|
|
17
|
+
if (el && !el.closest("[popover]:not(:popover-open)")) undo = (0, aria_hidden.hideOthers)(el);
|
|
18
18
|
else if (undo) undo();
|
|
19
19
|
});
|
|
20
20
|
(0, vue.onUnmounted)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHideOthers.cjs","names":["target: MaybeElementRef","undo: ReturnType<typeof hideOthers>"],"sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AAYA,SAAgB,cAAcA,QAAyB;CACrD,IAAIC;AACJ,gBAAM,MAAM,gCAAa,OAAO,EAAE,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"useHideOthers.cjs","names":["target: MaybeElementRef","undo: ReturnType<typeof hideOthers>"],"sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AAYA,SAAgB,cAAcA,QAAyB;CACrD,IAAIC;AACJ,gBAAM,MAAM,gCAAa,OAAO,EAAE,CAAC,OAAO;AAKxC,MAAI,OAAO,GAAG,QAAQ,+BAA+B,CACnD,QAAO,4BAAW,GAAG;WACd,KACP,OAAM;CACT,EAAC;AAEF,sBAAY,MAAM;AAChB,MAAI,KACF,OAAM;CACT,EAAC;AACH"}
|
|
@@ -13,7 +13,7 @@ import { hideOthers } from "aria-hidden";
|
|
|
13
13
|
function useHideOthers(target) {
|
|
14
14
|
let undo;
|
|
15
15
|
watch(() => unrefElement(target), (el) => {
|
|
16
|
-
if (el) undo = hideOthers(el);
|
|
16
|
+
if (el && !el.closest("[popover]:not(:popover-open)")) undo = hideOthers(el);
|
|
17
17
|
else if (undo) undo();
|
|
18
18
|
});
|
|
19
19
|
onUnmounted(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHideOthers.js","names":["target: MaybeElementRef","undo: ReturnType<typeof hideOthers>"],"sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;AAYA,SAAgB,cAAcA,QAAyB;CACrD,IAAIC;AACJ,OAAM,MAAM,aAAa,OAAO,EAAE,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"useHideOthers.js","names":["target: MaybeElementRef","undo: ReturnType<typeof hideOthers>"],"sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;AAYA,SAAgB,cAAcA,QAAyB;CACrD,IAAIC;AACJ,OAAM,MAAM,aAAa,OAAO,EAAE,CAAC,OAAO;AAKxC,MAAI,OAAO,GAAG,QAAQ,+BAA+B,CACnD,QAAO,WAAW,GAAG;WACd,KACP,OAAM;CACT,EAAC;AAEF,aAAY,MAAM;AAChB,MAAI,KACF,OAAM;CACT,EAAC;AACH"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
const require_utils_assert = require('./assert.cjs');
|
|
2
|
+
const require_utils_compare = require('./compare.cjs');
|
|
2
3
|
|
|
3
4
|
//#region src/Splitter/utils/callPanelCallbacks.ts
|
|
4
|
-
function callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap) {
|
|
5
|
+
function callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap, groupSizeInPixels) {
|
|
5
6
|
layout.forEach((size, index) => {
|
|
6
7
|
const panelData = panelsArray[index];
|
|
7
8
|
require_utils_assert.assert(panelData);
|
|
8
9
|
const { callbacks, constraints, id: panelId } = panelData;
|
|
9
|
-
const { collapsedSize = 0, collapsible } = constraints;
|
|
10
|
+
const { collapsedSize = 0, collapsible, sizeUnit } = constraints;
|
|
11
|
+
let displaySize = size;
|
|
12
|
+
if (sizeUnit === "px" && groupSizeInPixels != null) displaySize = size / 100 * groupSizeInPixels;
|
|
10
13
|
const lastNotifiedSize = panelIdToLastNotifiedSizeMap[panelId];
|
|
11
|
-
if (lastNotifiedSize == null ||
|
|
12
|
-
panelIdToLastNotifiedSizeMap[panelId] =
|
|
14
|
+
if (lastNotifiedSize == null || !require_utils_compare.fuzzyNumbersEqual(displaySize, lastNotifiedSize)) {
|
|
15
|
+
panelIdToLastNotifiedSizeMap[panelId] = displaySize;
|
|
13
16
|
const { onCollapse, onExpand, onResize } = callbacks;
|
|
14
|
-
if (onResize) onResize(
|
|
17
|
+
if (onResize) onResize(displaySize, lastNotifiedSize);
|
|
15
18
|
if (collapsible && (onCollapse || onExpand)) {
|
|
16
|
-
if (onExpand && (lastNotifiedSize == null || lastNotifiedSize
|
|
17
|
-
if (onCollapse && (lastNotifiedSize == null || lastNotifiedSize
|
|
19
|
+
if (onExpand && (lastNotifiedSize == null || require_utils_compare.fuzzyNumbersEqual(lastNotifiedSize, collapsedSize)) && !require_utils_compare.fuzzyNumbersEqual(displaySize, collapsedSize)) onExpand();
|
|
20
|
+
if (onCollapse && (lastNotifiedSize == null || !require_utils_compare.fuzzyNumbersEqual(lastNotifiedSize, collapsedSize)) && require_utils_compare.fuzzyNumbersEqual(displaySize, collapsedSize)) onCollapse();
|
|
18
21
|
}
|
|
19
22
|
}
|
|
20
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callPanelCallbacks.cjs","names":["panelsArray: PanelData[]","layout: number[]","panelIdToLastNotifiedSizeMap: Record<string, number>"],"sources":["../../src/Splitter/utils/callPanelCallbacks.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"callPanelCallbacks.cjs","names":["panelsArray: PanelData[]","layout: number[]","panelIdToLastNotifiedSizeMap: Record<string, number>","groupSizeInPixels?: number | null"],"sources":["../../src/Splitter/utils/callPanelCallbacks.ts"],"sourcesContent":[],"mappings":";;;;AAKA,SAAgB,mBACdA,aACAC,QACAC,8BACAC,mBACA;AACA,QAAO,QAAQ,CAAC,MAAM,UAAU;EAC9B,MAAM,YAAY,YAAY;AAC9B,8BAAO,UAAU;EAEjB,MAAM,EAAE,WAAW,aAAa,IAAI,SAAS,GAAG;EAChD,MAAM,EAAE,gBAAgB,GAAG,aAAa,UAAU,GAAG;EAGrD,IAAI,cAAc;AAClB,MAAI,aAAa,QAAQ,qBAAqB,KAC5C,eAAe,OAAO,MAAO;EAG/B,MAAM,mBAAmB,6BAA6B;AACtD,MAAI,oBAAoB,SAAS,wCAAkB,aAAa,iBAAiB,EAAE;AACjF,gCAA6B,WAAW;GAExC,MAAM,EAAE,YAAY,UAAU,UAAU,GAAG;AAE3C,OAAI,SACF,UAAS,aAAa,iBAAiB;AAEzC,OAAI,gBAAgB,cAAc,WAAW;AAC3C,QACE,aACI,oBAAoB,QAAQ,wCAAkB,kBAAkB,cAAc,MAC9E,wCAAkB,aAAa,cAAc,CAEjD,WAAU;AAGZ,QACE,eACI,oBAAoB,SAAS,wCAAkB,kBAAkB,cAAc,KAChF,wCAAkB,aAAa,cAAc,CAEhD,aAAY;GAEf;EACF;CACF,EAAC;AACH"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { assert } from "./assert.js";
|
|
2
|
+
import { fuzzyNumbersEqual } from "./compare.js";
|
|
2
3
|
|
|
3
4
|
//#region src/Splitter/utils/callPanelCallbacks.ts
|
|
4
|
-
function callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap) {
|
|
5
|
+
function callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap, groupSizeInPixels) {
|
|
5
6
|
layout.forEach((size, index) => {
|
|
6
7
|
const panelData = panelsArray[index];
|
|
7
8
|
assert(panelData);
|
|
8
9
|
const { callbacks, constraints, id: panelId } = panelData;
|
|
9
|
-
const { collapsedSize = 0, collapsible } = constraints;
|
|
10
|
+
const { collapsedSize = 0, collapsible, sizeUnit } = constraints;
|
|
11
|
+
let displaySize = size;
|
|
12
|
+
if (sizeUnit === "px" && groupSizeInPixels != null) displaySize = size / 100 * groupSizeInPixels;
|
|
10
13
|
const lastNotifiedSize = panelIdToLastNotifiedSizeMap[panelId];
|
|
11
|
-
if (lastNotifiedSize == null ||
|
|
12
|
-
panelIdToLastNotifiedSizeMap[panelId] =
|
|
14
|
+
if (lastNotifiedSize == null || !fuzzyNumbersEqual(displaySize, lastNotifiedSize)) {
|
|
15
|
+
panelIdToLastNotifiedSizeMap[panelId] = displaySize;
|
|
13
16
|
const { onCollapse, onExpand, onResize } = callbacks;
|
|
14
|
-
if (onResize) onResize(
|
|
17
|
+
if (onResize) onResize(displaySize, lastNotifiedSize);
|
|
15
18
|
if (collapsible && (onCollapse || onExpand)) {
|
|
16
|
-
if (onExpand && (lastNotifiedSize == null || lastNotifiedSize
|
|
17
|
-
if (onCollapse && (lastNotifiedSize == null || lastNotifiedSize
|
|
19
|
+
if (onExpand && (lastNotifiedSize == null || fuzzyNumbersEqual(lastNotifiedSize, collapsedSize)) && !fuzzyNumbersEqual(displaySize, collapsedSize)) onExpand();
|
|
20
|
+
if (onCollapse && (lastNotifiedSize == null || !fuzzyNumbersEqual(lastNotifiedSize, collapsedSize)) && fuzzyNumbersEqual(displaySize, collapsedSize)) onCollapse();
|
|
18
21
|
}
|
|
19
22
|
}
|
|
20
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callPanelCallbacks.js","names":["panelsArray: PanelData[]","layout: number[]","panelIdToLastNotifiedSizeMap: Record<string, number>"],"sources":["../../src/Splitter/utils/callPanelCallbacks.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"callPanelCallbacks.js","names":["panelsArray: PanelData[]","layout: number[]","panelIdToLastNotifiedSizeMap: Record<string, number>","groupSizeInPixels?: number | null"],"sources":["../../src/Splitter/utils/callPanelCallbacks.ts"],"sourcesContent":[],"mappings":";;;;AAKA,SAAgB,mBACdA,aACAC,QACAC,8BACAC,mBACA;AACA,QAAO,QAAQ,CAAC,MAAM,UAAU;EAC9B,MAAM,YAAY,YAAY;AAC9B,SAAO,UAAU;EAEjB,MAAM,EAAE,WAAW,aAAa,IAAI,SAAS,GAAG;EAChD,MAAM,EAAE,gBAAgB,GAAG,aAAa,UAAU,GAAG;EAGrD,IAAI,cAAc;AAClB,MAAI,aAAa,QAAQ,qBAAqB,KAC5C,eAAe,OAAO,MAAO;EAG/B,MAAM,mBAAmB,6BAA6B;AACtD,MAAI,oBAAoB,SAAS,kBAAkB,aAAa,iBAAiB,EAAE;AACjF,gCAA6B,WAAW;GAExC,MAAM,EAAE,YAAY,UAAU,UAAU,GAAG;AAE3C,OAAI,SACF,UAAS,aAAa,iBAAiB;AAEzC,OAAI,gBAAgB,cAAc,WAAW;AAC3C,QACE,aACI,oBAAoB,QAAQ,kBAAkB,kBAAkB,cAAc,MAC9E,kBAAkB,aAAa,cAAc,CAEjD,WAAU;AAGZ,QACE,eACI,oBAAoB,SAAS,kBAAkB,kBAAkB,cAAc,KAChF,kBAAkB,aAAa,cAAc,CAEhD,aAAY;GAEf;EACF;CACF,EAAC;AACH"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reka-ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.9.
|
|
4
|
+
"version": "2.9.1",
|
|
5
5
|
"description": "Vue port for Radix UI Primitives.",
|
|
6
6
|
"author": "UnoVue Contributors (https://github.com/unovue)",
|
|
7
7
|
"license": "MIT",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"@testing-library/user-event": "^14.6.1",
|
|
107
107
|
"@testing-library/vue": "^8.1.0",
|
|
108
108
|
"@tsconfig/node24": "^24.0.0",
|
|
109
|
-
"@types/jsdom": "^
|
|
109
|
+
"@types/jsdom": "^28.0.0",
|
|
110
110
|
"@types/node": "^24.0.13",
|
|
111
111
|
"@vitejs/plugin-vue": "^6.0.4",
|
|
112
112
|
"@vitest/coverage-istanbul": "^3.2.4",
|
|
@@ -17,10 +17,15 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
|
|
|
17
17
|
</script>
|
|
18
18
|
|
|
19
19
|
<template>
|
|
20
|
+
<!--
|
|
21
|
+
role="application" is intentional: it ensures screen readers like NVDA pass
|
|
22
|
+
keyboard events (arrow keys) to the web app instead of intercepting them
|
|
23
|
+
for virtual cursor navigation. This is the same pattern used by React Aria.
|
|
24
|
+
-->
|
|
20
25
|
<Primitive
|
|
21
26
|
v-bind="props"
|
|
22
27
|
tabindex="-1"
|
|
23
|
-
role="
|
|
28
|
+
role="application"
|
|
24
29
|
:aria-readonly="readonly"
|
|
25
30
|
:aria-disabled="disabled"
|
|
26
31
|
:data-readonly="readonly && ''"
|
|
@@ -60,6 +60,24 @@ function handleFocus() {
|
|
|
60
60
|
rootContext.onOpenChange(true)
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
function handleBlur(ev: FocusEvent) {
|
|
64
|
+
if (!rootContext.open.value)
|
|
65
|
+
return
|
|
66
|
+
|
|
67
|
+
const nextFocus = ev.relatedTarget as Element | null
|
|
68
|
+
|
|
69
|
+
// If focus moves to nothing (e.g. click on non-focusable area), let DismissableLayer handle it
|
|
70
|
+
if (!nextFocus)
|
|
71
|
+
return
|
|
72
|
+
|
|
73
|
+
const isInsideRoot = rootContext.parentElement.value?.contains(nextFocus)
|
|
74
|
+
const isInsideContent = document.getElementById(rootContext.contentId)?.contains(nextFocus)
|
|
75
|
+
|
|
76
|
+
if (!isInsideRoot && !isInsideContent) {
|
|
77
|
+
rootContext.onOpenChange(false)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
63
81
|
function handleClick() {
|
|
64
82
|
if (rootContext.openOnClick.value && !rootContext.open.value)
|
|
65
83
|
rootContext.onOpenChange(true)
|
|
@@ -122,6 +140,7 @@ watch(rootContext.filterState, (_newValue, oldValue) => {
|
|
|
122
140
|
@input="handleInput"
|
|
123
141
|
@keydown.down.up.prevent="handleKeyDown"
|
|
124
142
|
@focus="handleFocus"
|
|
143
|
+
@blur="handleBlur"
|
|
125
144
|
>
|
|
126
145
|
<slot />
|
|
127
146
|
</ListboxFilter>
|
|
@@ -13,7 +13,10 @@ export const CONTEXT_UPDATE = 'dismissableLayer.update'
|
|
|
13
13
|
export const POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside'
|
|
14
14
|
export const FOCUS_OUTSIDE = 'dismissableLayer.focusOutside'
|
|
15
15
|
|
|
16
|
-
function isLayerExist(layerElement: HTMLElement, targetElement: HTMLElement) {
|
|
16
|
+
export function isLayerExist(layerElement: HTMLElement, targetElement: HTMLElement) {
|
|
17
|
+
if (!(targetElement instanceof Element))
|
|
18
|
+
return false
|
|
19
|
+
|
|
17
20
|
const targetLayer = targetElement.closest(
|
|
18
21
|
'[data-dismissable-layer]',
|
|
19
22
|
)
|
package/src/Menu/MenuGroup.vue
CHANGED
|
@@ -1,19 +1,31 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { PrimitiveProps } from '@/Primitive'
|
|
3
|
+
import { createContext, useId } from '@/shared'
|
|
3
4
|
|
|
4
5
|
export interface MenuGroupProps extends PrimitiveProps {}
|
|
6
|
+
|
|
7
|
+
interface MenuGroupContext {
|
|
8
|
+
id: string
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const [injectMenuGroupContext, provideMenuGroupContext]
|
|
12
|
+
= createContext<MenuGroupContext>('MenuGroup')
|
|
5
13
|
</script>
|
|
6
14
|
|
|
7
15
|
<script setup lang="ts">
|
|
8
16
|
import { Primitive } from '@/Primitive'
|
|
9
17
|
|
|
10
18
|
const props = defineProps<MenuGroupProps>()
|
|
19
|
+
|
|
20
|
+
const id = useId(undefined, 'reka-menu-group')
|
|
21
|
+
provideMenuGroupContext({ id })
|
|
11
22
|
</script>
|
|
12
23
|
|
|
13
24
|
<template>
|
|
14
25
|
<Primitive
|
|
15
26
|
role="group"
|
|
16
27
|
v-bind="props"
|
|
28
|
+
:aria-labelledby="id"
|
|
17
29
|
>
|
|
18
30
|
<slot />
|
|
19
31
|
</Primitive>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { PrimitiveProps } from '@/Primitive'
|
|
3
|
+
import { injectMenuContext } from './MenuRoot.vue'
|
|
3
4
|
|
|
4
5
|
export interface MenuItemImplProps extends PrimitiveProps {
|
|
5
6
|
/** When `true`, prevents the user from interacting with the item. */
|
|
@@ -28,6 +29,7 @@ defineOptions({
|
|
|
28
29
|
|
|
29
30
|
const props = defineProps<MenuItemImplProps>()
|
|
30
31
|
|
|
32
|
+
const menuContext = injectMenuContext()
|
|
31
33
|
const contentContext = injectMenuContentContext()
|
|
32
34
|
const { forwardRef, currentElement } = useForwardExpose()
|
|
33
35
|
const { CollectionItem } = useCollection()
|
|
@@ -36,11 +38,9 @@ const isFocused = ref(false)
|
|
|
36
38
|
const isHighlighted = computed(() => isFocused.value || (contentContext.highlightedElement.value === currentElement.value))
|
|
37
39
|
|
|
38
40
|
async function handlePointerMove(event: PointerEvent) {
|
|
39
|
-
if (event.defaultPrevented)
|
|
40
|
-
return
|
|
41
|
-
if (!isMouseEvent(event))
|
|
41
|
+
if (event.defaultPrevented || !isMouseEvent(event) || !menuContext.open.value) {
|
|
42
42
|
return
|
|
43
|
-
|
|
43
|
+
}
|
|
44
44
|
if (props.disabled) {
|
|
45
45
|
contentContext.onItemLeave(event)
|
|
46
46
|
}
|
package/src/Menu/MenuLabel.vue
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { PrimitiveProps } from '@/Primitive'
|
|
3
|
+
import { injectMenuGroupContext } from './MenuGroup.vue'
|
|
3
4
|
|
|
4
5
|
export interface MenuLabelProps extends PrimitiveProps {}
|
|
5
6
|
</script>
|
|
@@ -10,10 +11,15 @@ import { Primitive } from '@/Primitive'
|
|
|
10
11
|
const props = withDefaults(defineProps<MenuLabelProps>(), {
|
|
11
12
|
as: 'div',
|
|
12
13
|
})
|
|
14
|
+
|
|
15
|
+
const groupContext = injectMenuGroupContext({ id: '' })
|
|
13
16
|
</script>
|
|
14
17
|
|
|
15
18
|
<template>
|
|
16
|
-
<Primitive
|
|
19
|
+
<Primitive
|
|
20
|
+
v-bind="props"
|
|
21
|
+
:id="groupContext.id || undefined"
|
|
22
|
+
>
|
|
17
23
|
<slot />
|
|
18
24
|
</Primitive>
|
|
19
25
|
</template>
|
|
@@ -17,10 +17,15 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
|
|
|
17
17
|
</script>
|
|
18
18
|
|
|
19
19
|
<template>
|
|
20
|
+
<!--
|
|
21
|
+
role="application" is intentional: it ensures screen readers like NVDA pass
|
|
22
|
+
keyboard events (arrow keys) to the web app instead of intercepting them
|
|
23
|
+
for virtual cursor navigation. This is the same pattern used by React Aria.
|
|
24
|
+
-->
|
|
20
25
|
<Primitive
|
|
21
26
|
v-bind="props"
|
|
22
27
|
tabindex="-1"
|
|
23
|
-
role="
|
|
28
|
+
role="application"
|
|
24
29
|
:aria-labelledby="rootContext.headingId"
|
|
25
30
|
:aria-readonly="readonly"
|
|
26
31
|
:aria-disabled="disabled"
|
|
@@ -17,10 +17,15 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
|
|
|
17
17
|
</script>
|
|
18
18
|
|
|
19
19
|
<template>
|
|
20
|
+
<!--
|
|
21
|
+
role="application" is intentional: it ensures screen readers like NVDA pass
|
|
22
|
+
keyboard events (arrow keys) to the web app instead of intercepting them
|
|
23
|
+
for virtual cursor navigation. This is the same pattern used by React Aria.
|
|
24
|
+
-->
|
|
20
25
|
<Primitive
|
|
21
26
|
v-bind="props"
|
|
22
27
|
tabindex="-1"
|
|
23
|
-
role="
|
|
28
|
+
role="application"
|
|
24
29
|
:aria-labelledby="rootContext.headingId"
|
|
25
30
|
:aria-readonly="readonly"
|
|
26
31
|
:aria-disabled="disabled"
|
|
@@ -18,10 +18,15 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
|
|
|
18
18
|
</script>
|
|
19
19
|
|
|
20
20
|
<template>
|
|
21
|
+
<!--
|
|
22
|
+
role="application" is intentional: it ensures screen readers like NVDA pass
|
|
23
|
+
keyboard events (arrow keys) to the web app instead of intercepting them
|
|
24
|
+
for virtual cursor navigation. This is the same pattern used by React Aria.
|
|
25
|
+
-->
|
|
21
26
|
<Primitive
|
|
22
27
|
v-bind="props"
|
|
23
28
|
tabindex="-1"
|
|
24
|
-
role="
|
|
29
|
+
role="application"
|
|
25
30
|
:aria-readonly="readonly"
|
|
26
31
|
:aria-disabled="disabled"
|
|
27
32
|
:data-readonly="readonly && ''"
|
|
@@ -193,6 +193,20 @@ function getPanelDataWithPercentConstraints(groupSizeOverride?: number | null) {
|
|
|
193
193
|
|
|
194
194
|
const setLayout = (val: number[]) => layout.value = val
|
|
195
195
|
|
|
196
|
+
/** Convert internal layout (always in %) to native units for each panel */
|
|
197
|
+
function convertLayoutToNativeUnits(internalLayout: number[]): number[] {
|
|
198
|
+
const { panelDataArray } = eagerValuesRef.value
|
|
199
|
+
const groupSize = getGroupSizeInPixels()
|
|
200
|
+
|
|
201
|
+
return internalLayout.map((size, index) => {
|
|
202
|
+
const panelData = panelDataArray[index]
|
|
203
|
+
if (panelData && (panelData.constraints.sizeUnit ?? '%') === 'px' && groupSize != null) {
|
|
204
|
+
return (size / 100) * groupSize
|
|
205
|
+
}
|
|
206
|
+
return size
|
|
207
|
+
})
|
|
208
|
+
}
|
|
209
|
+
|
|
196
210
|
useWindowSplitterPanelGroupBehavior({
|
|
197
211
|
eagerValuesRef,
|
|
198
212
|
groupId,
|
|
@@ -347,12 +361,13 @@ watch(() => eagerValuesRef.value.panelDataArrayChanged, () => {
|
|
|
347
361
|
setLayout(nextLayout)
|
|
348
362
|
|
|
349
363
|
eagerValuesRef.value.layout = nextLayout
|
|
350
|
-
emits('layout', nextLayout)
|
|
364
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
351
365
|
|
|
352
366
|
callPanelCallbacks(
|
|
353
367
|
panelDataArray,
|
|
354
368
|
nextLayout,
|
|
355
369
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
370
|
+
getGroupSizeInPixels(),
|
|
356
371
|
)
|
|
357
372
|
}
|
|
358
373
|
}
|
|
@@ -391,12 +406,13 @@ watch(groupSizeInPixels, (nextSize, prevSize) => {
|
|
|
391
406
|
setLayout(nextLayout)
|
|
392
407
|
|
|
393
408
|
eagerValuesRef.value.layout = nextLayout
|
|
394
|
-
emits('layout', nextLayout)
|
|
409
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
395
410
|
|
|
396
411
|
callPanelCallbacks(
|
|
397
412
|
panelDataArray,
|
|
398
413
|
nextLayout,
|
|
399
414
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
415
|
+
getGroupSizeInPixels(),
|
|
400
416
|
)
|
|
401
417
|
}
|
|
402
418
|
})
|
|
@@ -484,12 +500,13 @@ function registerResizeHandle(dragHandleId: string) {
|
|
|
484
500
|
setLayout(nextLayout)
|
|
485
501
|
|
|
486
502
|
eagerValuesRef.value.layout = nextLayout
|
|
487
|
-
emits('layout', nextLayout)
|
|
503
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
488
504
|
|
|
489
505
|
callPanelCallbacks(
|
|
490
506
|
panelDataArray,
|
|
491
507
|
nextLayout,
|
|
492
508
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
509
|
+
getGroupSizeInPixels(),
|
|
493
510
|
)
|
|
494
511
|
}
|
|
495
512
|
}
|
|
@@ -540,12 +557,13 @@ function resizePanel(panelData: PanelData, unsafePanelSize: number) {
|
|
|
540
557
|
setLayout(nextLayout)
|
|
541
558
|
|
|
542
559
|
eagerValuesRef.value.layout = nextLayout
|
|
543
|
-
emits('layout', nextLayout)
|
|
560
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
544
561
|
|
|
545
562
|
callPanelCallbacks(
|
|
546
563
|
panelDataArray,
|
|
547
564
|
nextLayout,
|
|
548
565
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
566
|
+
getGroupSizeInPixels(),
|
|
549
567
|
)
|
|
550
568
|
}
|
|
551
569
|
}
|
|
@@ -682,12 +700,13 @@ function collapsePanel(panelData: PanelData) {
|
|
|
682
700
|
|
|
683
701
|
eagerValuesRef.value.layout = nextLayout
|
|
684
702
|
|
|
685
|
-
emits('layout', nextLayout)
|
|
703
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
686
704
|
|
|
687
705
|
callPanelCallbacks(
|
|
688
706
|
panelDataArray,
|
|
689
707
|
nextLayout,
|
|
690
708
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
709
|
+
getGroupSizeInPixels(),
|
|
691
710
|
)
|
|
692
711
|
}
|
|
693
712
|
}
|
|
@@ -747,12 +766,13 @@ function expandPanel(panelData: PanelData) {
|
|
|
747
766
|
|
|
748
767
|
eagerValuesRef.value.layout = nextLayout
|
|
749
768
|
|
|
750
|
-
emits('layout', nextLayout)
|
|
769
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
751
770
|
|
|
752
771
|
callPanelCallbacks(
|
|
753
772
|
panelDataArray,
|
|
754
773
|
nextLayout,
|
|
755
774
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
775
|
+
getGroupSizeInPixels(),
|
|
756
776
|
)
|
|
757
777
|
}
|
|
758
778
|
}
|
|
@@ -1,41 +1,49 @@
|
|
|
1
1
|
import type { PanelData } from '../SplitterPanel.vue'
|
|
2
2
|
import { assert } from './assert'
|
|
3
|
+
import { fuzzyNumbersEqual } from './compare'
|
|
3
4
|
|
|
4
5
|
// Layout should be pre-converted into percentages
|
|
5
6
|
export function callPanelCallbacks(
|
|
6
7
|
panelsArray: PanelData[],
|
|
7
8
|
layout: number[],
|
|
8
9
|
panelIdToLastNotifiedSizeMap: Record<string, number>,
|
|
10
|
+
groupSizeInPixels?: number | null,
|
|
9
11
|
) {
|
|
10
12
|
layout.forEach((size, index) => {
|
|
11
13
|
const panelData = panelsArray[index]
|
|
12
14
|
assert(panelData)
|
|
13
15
|
|
|
14
16
|
const { callbacks, constraints, id: panelId } = panelData
|
|
15
|
-
const { collapsedSize = 0, collapsible } = constraints
|
|
17
|
+
const { collapsedSize = 0, collapsible, sizeUnit } = constraints
|
|
18
|
+
|
|
19
|
+
// Convert size to native units for px panels
|
|
20
|
+
let displaySize = size
|
|
21
|
+
if (sizeUnit === 'px' && groupSizeInPixels != null) {
|
|
22
|
+
displaySize = (size / 100) * groupSizeInPixels
|
|
23
|
+
}
|
|
16
24
|
|
|
17
25
|
const lastNotifiedSize = panelIdToLastNotifiedSizeMap[panelId]
|
|
18
|
-
if (lastNotifiedSize == null ||
|
|
19
|
-
panelIdToLastNotifiedSizeMap[panelId] =
|
|
26
|
+
if (lastNotifiedSize == null || !fuzzyNumbersEqual(displaySize, lastNotifiedSize)) {
|
|
27
|
+
panelIdToLastNotifiedSizeMap[panelId] = displaySize
|
|
20
28
|
|
|
21
29
|
const { onCollapse, onExpand, onResize } = callbacks
|
|
22
30
|
|
|
23
31
|
if (onResize)
|
|
24
|
-
onResize(
|
|
32
|
+
onResize(displaySize, lastNotifiedSize)
|
|
25
33
|
|
|
26
34
|
if (collapsible && (onCollapse || onExpand)) {
|
|
27
35
|
if (
|
|
28
36
|
onExpand
|
|
29
|
-
&& (lastNotifiedSize == null || lastNotifiedSize
|
|
30
|
-
&&
|
|
37
|
+
&& (lastNotifiedSize == null || fuzzyNumbersEqual(lastNotifiedSize, collapsedSize))
|
|
38
|
+
&& !fuzzyNumbersEqual(displaySize, collapsedSize)
|
|
31
39
|
) {
|
|
32
40
|
onExpand()
|
|
33
41
|
}
|
|
34
42
|
|
|
35
43
|
if (
|
|
36
44
|
onCollapse
|
|
37
|
-
&& (lastNotifiedSize == null || lastNotifiedSize
|
|
38
|
-
&&
|
|
45
|
+
&& (lastNotifiedSize == null || !fuzzyNumbersEqual(lastNotifiedSize, collapsedSize))
|
|
46
|
+
&& fuzzyNumbersEqual(displaySize, collapsedSize)
|
|
39
47
|
) {
|
|
40
48
|
onCollapse()
|
|
41
49
|
}
|