@monstermann/signals-modal 0.1.3 → 0.2.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/anchor/withAnchorElement.d.ts +1 -1
- package/dist/floating/withFloatingElement.d.ts +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +6 -1
- package/dist/position/getModalPlacement.d.ts +6 -0
- package/dist/position/getModalPlacement.js +9 -0
- package/dist/status/closeLastModal.d.ts +4 -0
- package/dist/status/closeLastModal.js +11 -0
- package/dist/status/getOpenModals.d.ts +4 -0
- package/dist/status/getOpenModals.js +12 -0
- package/dist/status/internals.js +5 -5
- package/dist/status/isAnyModalOpen.d.ts +4 -0
- package/dist/status/isAnyModalOpen.js +9 -0
- package/dist/status/isModalOpen.d.ts +4 -0
- package/dist/status/isModalOpen.js +10 -0
- package/dist/status/onModalClosed.d.ts +2 -2
- package/dist/status/onModalClosing.d.ts +2 -2
- package/dist/status/withModalStatus.d.ts +7 -2
- package/dist/status/withModalStatus.js +17 -4
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Signal } from "@monstermann/signals";
|
|
2
2
|
|
|
3
3
|
//#region src/anchor/withAnchorElement.d.ts
|
|
4
|
-
declare function withAnchorElement(anchorElement?: HTMLElement): Signal<HTMLElement | null>;
|
|
4
|
+
declare function withAnchorElement(anchorElement?: HTMLElement | null): Signal<HTMLElement | null>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { withAnchorElement };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Signal } from "@monstermann/signals";
|
|
2
2
|
|
|
3
3
|
//#region src/floating/withFloatingElement.d.ts
|
|
4
|
-
declare function withFloatingElement(anchorElement?: HTMLElement): Signal<HTMLElement | null>;
|
|
4
|
+
declare function withFloatingElement(anchorElement?: HTMLElement | null): Signal<HTMLElement | null>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { withFloatingElement };
|
package/dist/index.d.ts
CHANGED
|
@@ -23,24 +23,29 @@ import { isTooltip } from "./groups/isTooltip.js";
|
|
|
23
23
|
import { modalGroups } from "./groups/modalGroups.js";
|
|
24
24
|
import { withModalGroups } from "./groups/withModalGroups.js";
|
|
25
25
|
import { ModalPlacement, ModalPlacementOption, withPlacement } from "./position/withPlacement.js";
|
|
26
|
+
import { getModalPlacement } from "./position/getModalPlacement.js";
|
|
26
27
|
import { ModalPosition, withPosition } from "./position/withPosition.js";
|
|
27
28
|
import { getModalPosition } from "./position/getModalPosition.js";
|
|
28
29
|
import { withBoundary } from "./position/withBoundary.js";
|
|
29
30
|
import { closeAllModals } from "./status/closeAllModals.js";
|
|
31
|
+
import { closeLastModal } from "./status/closeLastModal.js";
|
|
30
32
|
import { closeModal } from "./status/closeModal.js";
|
|
31
33
|
import { getClosedModals } from "./status/getClosedModals.js";
|
|
32
34
|
import { getClosingModals } from "./status/getClosingModals.js";
|
|
33
35
|
import { getModalStatus } from "./status/getModalStatus.js";
|
|
34
36
|
import { getOpenedModals } from "./status/getOpenedModals.js";
|
|
35
37
|
import { getOpeningModals } from "./status/getOpeningModals.js";
|
|
38
|
+
import { getOpenModals } from "./status/getOpenModals.js";
|
|
36
39
|
import { getVisibleModals } from "./status/getVisibleModals.js";
|
|
37
40
|
import { isAnyModalClosed } from "./status/isAnyModalClosed.js";
|
|
38
41
|
import { isAnyModalClosing } from "./status/isAnyModalClosing.js";
|
|
42
|
+
import { isAnyModalOpen } from "./status/isAnyModalOpen.js";
|
|
39
43
|
import { isAnyModalOpened } from "./status/isAnyModalOpened.js";
|
|
40
44
|
import { isAnyModalOpening } from "./status/isAnyModalOpening.js";
|
|
41
45
|
import { isAnyModalVisible } from "./status/isAnyModalVisible.js";
|
|
42
46
|
import { isModalClosed } from "./status/isModalClosed.js";
|
|
43
47
|
import { isModalClosing } from "./status/isModalClosing.js";
|
|
48
|
+
import { isModalOpen } from "./status/isModalOpen.js";
|
|
44
49
|
import { isModalOpened } from "./status/isModalOpened.js";
|
|
45
50
|
import { isModalOpening } from "./status/isModalOpening.js";
|
|
46
51
|
import { isModalVisible } from "./status/isModalVisible.js";
|
|
@@ -54,4 +59,4 @@ import { withModalStatus } from "./status/withModalStatus.js";
|
|
|
54
59
|
import { closeLastModalOnClickOutside } from "./utils/closeLastModalOnClickOutside.js";
|
|
55
60
|
import { closeLastModalOnEsc } from "./utils/closeLastModalOnEsc.js";
|
|
56
61
|
import { syncModalGroupsToBody } from "./utils/syncModalGroupsToBody.js";
|
|
57
|
-
export { ModalContext, ModalPlacement, ModalPlacementOption, ModalPosition, ModalStatus, closeAllModals, closeLastModalOnClickOutside, closeLastModalOnEsc, closeModal, createModal, currentModal, getAnchorElement, getAnchorMeasurement, getClosedModals, getClosingModals, getDialogs, getFloatingElement, getFloatingMeasurement, getGroupsForModal, getModalPosition, getModalStatus, getModalsForGroup, getOpenedModals, getOpeningModals, getPopovers, getTooltips, getVisibleModals, isAnyModalClosed, isAnyModalClosing, isAnyModalOpened, isAnyModalOpening, isAnyModalVisible, isDialog, isModalClosed, isModalClosing, isModalInGroup, isModalOpened, isModalOpening, isModalVisible, isPopover, isTooltip, modalGroups, onModalClosed, onModalClosing, onModalDisposed, onModalOpened, onModalOpening, openModal, setAnchorElement, setFloatingElement, setModalStatus, syncModalGroupsToBody, withAnchorElement, withAnchorMeasurement, withBoundary, withFloatingElement, withFloatingMeasurement, withModalGroups, withModalStatus, withMouseAnchor, withPlacement, withPosition };
|
|
62
|
+
export { ModalContext, ModalPlacement, ModalPlacementOption, ModalPosition, ModalStatus, closeAllModals, closeLastModal, closeLastModalOnClickOutside, closeLastModalOnEsc, closeModal, createModal, currentModal, getAnchorElement, getAnchorMeasurement, getClosedModals, getClosingModals, getDialogs, getFloatingElement, getFloatingMeasurement, getGroupsForModal, getModalPlacement, getModalPosition, getModalStatus, getModalsForGroup, getOpenModals, getOpenedModals, getOpeningModals, getPopovers, getTooltips, getVisibleModals, isAnyModalClosed, isAnyModalClosing, isAnyModalOpen, isAnyModalOpened, isAnyModalOpening, isAnyModalVisible, isDialog, isModalClosed, isModalClosing, isModalInGroup, isModalOpen, isModalOpened, isModalOpening, isModalVisible, isPopover, isTooltip, modalGroups, onModalClosed, onModalClosing, onModalDisposed, onModalOpened, onModalOpening, openModal, setAnchorElement, setFloatingElement, setModalStatus, syncModalGroupsToBody, withAnchorElement, withAnchorMeasurement, withBoundary, withFloatingElement, withFloatingMeasurement, withModalGroups, withModalStatus, withMouseAnchor, withPlacement, withPosition };
|
package/dist/index.js
CHANGED
|
@@ -26,25 +26,30 @@ import { isModalInGroup } from "./groups/isModalInGroup.js";
|
|
|
26
26
|
import { isPopover } from "./groups/isPopover.js";
|
|
27
27
|
import { isTooltip } from "./groups/isTooltip.js";
|
|
28
28
|
import { withModalGroups } from "./groups/withModalGroups.js";
|
|
29
|
+
import { getModalPlacement } from "./position/getModalPlacement.js";
|
|
29
30
|
import { getModalPosition } from "./position/getModalPosition.js";
|
|
30
31
|
import { withBoundary } from "./position/withBoundary.js";
|
|
31
32
|
import { withPlacement } from "./position/withPlacement.js";
|
|
32
33
|
import { withPosition } from "./position/withPosition.js";
|
|
33
34
|
import { closeAllModals } from "./status/closeAllModals.js";
|
|
35
|
+
import { closeLastModal } from "./status/closeLastModal.js";
|
|
34
36
|
import { getClosedModals } from "./status/getClosedModals.js";
|
|
35
37
|
import { getClosingModals } from "./status/getClosingModals.js";
|
|
36
38
|
import { getModalStatus } from "./status/getModalStatus.js";
|
|
37
39
|
import { getOpenedModals } from "./status/getOpenedModals.js";
|
|
38
40
|
import { getOpeningModals } from "./status/getOpeningModals.js";
|
|
41
|
+
import { getOpenModals } from "./status/getOpenModals.js";
|
|
39
42
|
import { getVisibleModals } from "./status/getVisibleModals.js";
|
|
40
43
|
import { isAnyModalClosed } from "./status/isAnyModalClosed.js";
|
|
41
44
|
import { isAnyModalClosing } from "./status/isAnyModalClosing.js";
|
|
45
|
+
import { isAnyModalOpen } from "./status/isAnyModalOpen.js";
|
|
42
46
|
import { isAnyModalOpened } from "./status/isAnyModalOpened.js";
|
|
43
47
|
import { isAnyModalOpening } from "./status/isAnyModalOpening.js";
|
|
44
48
|
import { isAnyModalVisible } from "./status/isAnyModalVisible.js";
|
|
45
49
|
import { isModalClosing } from "./status/isModalClosing.js";
|
|
46
50
|
import { isModalOpened } from "./status/isModalOpened.js";
|
|
47
51
|
import { isModalOpening } from "./status/isModalOpening.js";
|
|
52
|
+
import { isModalOpen } from "./status/isModalOpen.js";
|
|
48
53
|
import { isModalVisible } from "./status/isModalVisible.js";
|
|
49
54
|
import { onModalClosing } from "./status/onModalClosing.js";
|
|
50
55
|
import { openModal } from "./status/openModal.js";
|
|
@@ -54,4 +59,4 @@ import { closeLastModalOnClickOutside } from "./utils/closeLastModalOnClickOutsi
|
|
|
54
59
|
import { closeLastModalOnEsc } from "./utils/closeLastModalOnEsc.js";
|
|
55
60
|
import { syncModalGroupsToBody } from "./utils/syncModalGroupsToBody.js";
|
|
56
61
|
|
|
57
|
-
export { closeAllModals, closeLastModalOnClickOutside, closeLastModalOnEsc, closeModal, createModal, currentModal, getAnchorElement, getAnchorMeasurement, getClosedModals, getClosingModals, getDialogs, getFloatingElement, getFloatingMeasurement, getGroupsForModal, getModalPosition, getModalStatus, getModalsForGroup, getOpenedModals, getOpeningModals, getPopovers, getTooltips, getVisibleModals, isAnyModalClosed, isAnyModalClosing, isAnyModalOpened, isAnyModalOpening, isAnyModalVisible, isDialog, isModalClosed, isModalClosing, isModalInGroup, isModalOpened, isModalOpening, isModalVisible, isPopover, isTooltip, modalGroups, onModalClosed, onModalClosing, onModalDisposed, onModalOpened, onModalOpening, openModal, setAnchorElement, setFloatingElement, setModalStatus, syncModalGroupsToBody, withAnchorElement, withAnchorMeasurement, withBoundary, withFloatingElement, withFloatingMeasurement, withModalGroups, withModalStatus, withMouseAnchor, withPlacement, withPosition };
|
|
62
|
+
export { closeAllModals, closeLastModal, closeLastModalOnClickOutside, closeLastModalOnEsc, closeModal, createModal, currentModal, getAnchorElement, getAnchorMeasurement, getClosedModals, getClosingModals, getDialogs, getFloatingElement, getFloatingMeasurement, getGroupsForModal, getModalPlacement, getModalPosition, getModalStatus, getModalsForGroup, getOpenModals, getOpenedModals, getOpeningModals, getPopovers, getTooltips, getVisibleModals, isAnyModalClosed, isAnyModalClosing, isAnyModalOpen, isAnyModalOpened, isAnyModalOpening, isAnyModalVisible, isDialog, isModalClosed, isModalClosing, isModalInGroup, isModalOpen, isModalOpened, isModalOpening, isModalVisible, isPopover, isTooltip, modalGroups, onModalClosed, onModalClosing, onModalDisposed, onModalOpened, onModalOpening, openModal, setAnchorElement, setFloatingElement, setModalStatus, syncModalGroupsToBody, withAnchorElement, withAnchorMeasurement, withBoundary, withFloatingElement, withFloatingMeasurement, withModalGroups, withModalStatus, withMouseAnchor, withPlacement, withPosition };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { $openedModals } from "./internals.js";
|
|
2
|
+
import { closeModal } from "./closeModal.js";
|
|
3
|
+
|
|
4
|
+
//#region src/status/closeLastModal.ts
|
|
5
|
+
function closeLastModal() {
|
|
6
|
+
const key = Array.from($openedModals()).at(-1);
|
|
7
|
+
if (key) closeModal(key);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { closeLastModal };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { $keysToStatus } from "./internals.js";
|
|
2
|
+
|
|
3
|
+
//#region src/status/getOpenModals.ts
|
|
4
|
+
function getOpenModals() {
|
|
5
|
+
const result = [];
|
|
6
|
+
const map = $keysToStatus();
|
|
7
|
+
for (const [key, $status] of map) if ($status() === "opening" || $status() === "opened") result.push(key);
|
|
8
|
+
return result;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { getOpenModals };
|
package/dist/status/internals.js
CHANGED
|
@@ -4,8 +4,8 @@ import { onModalOpening } from "./onModalOpening.js";
|
|
|
4
4
|
import { onModalDisposed } from "../createModal.js";
|
|
5
5
|
import { INTERNAL, SILENT, signal } from "@monstermann/signals";
|
|
6
6
|
import { create } from "@monstermann/set/Set/create.js";
|
|
7
|
-
import { remove } from "@monstermann/set/Set/remove.js";
|
|
8
7
|
import { add } from "@monstermann/set/Set/add.js";
|
|
8
|
+
import { remove } from "@monstermann/set/Set/remove.js";
|
|
9
9
|
|
|
10
10
|
//#region src/status/internals.ts
|
|
11
11
|
const path = "@signals-modal/status/internals.ts";
|
|
@@ -21,10 +21,10 @@ const meta1 = {
|
|
|
21
21
|
};
|
|
22
22
|
const $keysToStatus = signal(/* @__PURE__ */ new Map(), SILENT, meta);
|
|
23
23
|
const $openedModals = signal(create(), INTERNAL, meta1);
|
|
24
|
-
onModalOpening((key) => $openedModals((m) =>
|
|
25
|
-
onModalOpened((key) => $openedModals((m) =>
|
|
26
|
-
onModalClosed((key) => $openedModals((m) =>
|
|
27
|
-
onModalDisposed((key) => $openedModals((m) =>
|
|
24
|
+
onModalOpening((key) => $openedModals((m) => add(m, key)));
|
|
25
|
+
onModalOpened((key) => $openedModals((m) => add(m, key)));
|
|
26
|
+
onModalClosed((key) => $openedModals((m) => remove(m, key)));
|
|
27
|
+
onModalDisposed((key) => $openedModals((m) => remove(m, key)));
|
|
28
28
|
|
|
29
29
|
//#endregion
|
|
30
30
|
export { $keysToStatus, $openedModals };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { isModalOpened } from "./isModalOpened.js";
|
|
2
|
+
import { isModalOpening } from "./isModalOpening.js";
|
|
3
|
+
|
|
4
|
+
//#region src/status/isModalOpen.ts
|
|
5
|
+
function isModalOpen(key) {
|
|
6
|
+
return isModalOpening(key) || isModalOpened(key);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { isModalOpen };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _monstermann_signals0 from "@monstermann/signals";
|
|
2
2
|
|
|
3
3
|
//#region src/status/onModalClosed.d.ts
|
|
4
|
-
declare const onModalClosed:
|
|
4
|
+
declare const onModalClosed: _monstermann_signals0.Emitter<string>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { onModalClosed };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _monstermann_signals1 from "@monstermann/signals";
|
|
2
2
|
|
|
3
3
|
//#region src/status/onModalClosing.d.ts
|
|
4
|
-
declare const onModalClosing:
|
|
4
|
+
declare const onModalClosing: _monstermann_signals1.Emitter<string>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { onModalClosing };
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { ModalStatus } from "./types.js";
|
|
2
|
-
import { Signal } from "@monstermann/signals";
|
|
2
|
+
import { Memo, Signal } from "@monstermann/signals";
|
|
3
3
|
|
|
4
4
|
//#region src/status/withModalStatus.d.ts
|
|
5
|
-
declare function withModalStatus(status?: ModalStatus):
|
|
5
|
+
declare function withModalStatus(status?: ModalStatus): {
|
|
6
|
+
$isOpen: Memo<boolean>;
|
|
7
|
+
$status: Signal<ModalStatus>;
|
|
8
|
+
close: () => void;
|
|
9
|
+
open: () => void;
|
|
10
|
+
};
|
|
6
11
|
//#endregion
|
|
7
12
|
export { withModalStatus };
|
|
@@ -2,9 +2,12 @@ import { onModalClosed } from "./onModalClosed.js";
|
|
|
2
2
|
import { onModalOpened } from "./onModalOpened.js";
|
|
3
3
|
import { onModalOpening } from "./onModalOpening.js";
|
|
4
4
|
import { $keysToStatus } from "./internals.js";
|
|
5
|
+
import { closeModal } from "./closeModal.js";
|
|
5
6
|
import { currentModal } from "../createModal.js";
|
|
7
|
+
import { isModalOpen } from "./isModalOpen.js";
|
|
6
8
|
import { onModalClosing } from "./onModalClosing.js";
|
|
7
|
-
import {
|
|
9
|
+
import { openModal } from "./openModal.js";
|
|
10
|
+
import { INTERNAL, memo, signal, watch } from "@monstermann/signals";
|
|
8
11
|
import { set } from "@monstermann/map/Map/set.js";
|
|
9
12
|
import { remove } from "@monstermann/map/Map/remove.js";
|
|
10
13
|
|
|
@@ -12,14 +15,19 @@ import { remove } from "@monstermann/map/Map/remove.js";
|
|
|
12
15
|
const path = "@signals-modal/status/withModalStatus.ts";
|
|
13
16
|
const meta = {
|
|
14
17
|
path,
|
|
15
|
-
line:
|
|
18
|
+
line: 23,
|
|
16
19
|
name: "withModalStatus.$status"
|
|
17
20
|
};
|
|
18
21
|
const meta1 = {
|
|
19
22
|
path,
|
|
20
|
-
line:
|
|
23
|
+
line: 28,
|
|
21
24
|
name: "withModalStatus"
|
|
22
25
|
};
|
|
26
|
+
const meta2 = {
|
|
27
|
+
path,
|
|
28
|
+
line: 36,
|
|
29
|
+
name: "withModalStatus.$isOpen"
|
|
30
|
+
};
|
|
23
31
|
function withModalStatus(status = "closed") {
|
|
24
32
|
const modal = currentModal();
|
|
25
33
|
const $status = signal(status, INTERNAL, meta);
|
|
@@ -31,7 +39,12 @@ function withModalStatus(status = "closed") {
|
|
|
31
39
|
else if (status$1 === "opening") onModalOpening(modal.key);
|
|
32
40
|
else if (status$1 === "opened") onModalOpened(modal.key);
|
|
33
41
|
}, INTERNAL, meta1));
|
|
34
|
-
return
|
|
42
|
+
return {
|
|
43
|
+
$isOpen: memo(() => isModalOpen(modal.key), void 0, meta2),
|
|
44
|
+
$status,
|
|
45
|
+
close: () => closeModal(modal.key),
|
|
46
|
+
open: () => openModal(modal.key)
|
|
47
|
+
};
|
|
35
48
|
}
|
|
36
49
|
|
|
37
50
|
//#endregion
|