@oscarpalmer/oui 0.39.0 → 0.41.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 +1 -1
- package/dist/css/color-picker.css +80 -69
- package/dist/css/listbox.css +169 -0
- package/dist/js/color-picker/color-picker.constants.d.mts +2 -0
- package/dist/js/color-picker/{constants.color-picker.mjs → color-picker.constants.mjs} +7 -4
- package/dist/js/color-picker/{dom.color-picker.d.mts → color-picker.dom.d.mts} +2 -2
- package/dist/js/color-picker/{dom.color-picker.mjs → color-picker.dom.mjs} +33 -16
- package/dist/js/color-picker/{event.color-picker.d.mts → color-picker.event.d.mts} +3 -3
- package/dist/js/color-picker/color-picker.event.mjs +233 -0
- package/dist/js/color-picker/{form.color-picker.d.mts → color-picker.form.d.mts} +2 -2
- package/dist/js/color-picker/{form.color-picker.mjs → color-picker.form.mjs} +9 -8
- package/dist/js/color-picker/color-picker.misc.d.mts +2 -0
- package/dist/js/color-picker/color-picker.misc.mjs +104 -0
- package/dist/js/color-picker/color-picker.model.d.mts +2 -0
- package/dist/js/color-picker/{models.color-picker.mjs → color-picker.model.mjs} +1 -1
- package/dist/js/color-picker/{output.color-picker.d.mts → color-picker.output.d.mts} +2 -2
- package/dist/js/color-picker/{output.color-picker.mjs → color-picker.output.mjs} +19 -18
- package/dist/js/color-picker/color-picker.state.d.mts +8 -0
- package/dist/js/color-picker/color-picker.state.mjs +168 -0
- package/dist/js/color-picker/index.d.mts +172 -2
- package/dist/js/color-picker/index.mjs +66 -59
- package/dist/js/color-picker.constants-BZgXQr5o.d.mts +177 -0
- package/dist/js/color-picker.misc-BIS3R6jk.d.mts +31 -0
- package/dist/js/combobox/combobox.constants.d.mts +2 -0
- package/dist/js/combobox/{constants.combobox.mjs → combobox.constants.mjs} +21 -21
- package/dist/js/combobox/combobox.dom.d.mts +25 -0
- package/dist/js/combobox/{dom.combobox.mjs → combobox.dom.mjs} +51 -49
- package/dist/js/combobox/{event.combobox.d.mts → combobox.event.d.mts} +9 -9
- package/dist/js/combobox/{event.combobox.mjs → combobox.event.mjs} +1 -1
- package/dist/js/combobox/combobox.misc.d.mts +2 -0
- package/dist/js/combobox/combobox.misc.mjs +2 -0
- package/dist/js/combobox/combobox.model.d.mts +2 -0
- package/dist/js/combobox/combobox.state.d.mts +9 -0
- package/dist/js/combobox/combobox.state.mjs +2 -0
- package/dist/js/combobox/index.d.mts +152 -2
- package/dist/js/combobox/index.mjs +54 -55
- package/dist/js/combobox.constants-Hb3bqqQJ.d.mts +19 -0
- package/dist/js/combobox.misc-DRDFk6X8.d.mts +26 -0
- package/dist/js/combobox.model-gjEI2VqZ.d.mts +46 -0
- package/dist/js/{state.combobox-BWDFHwoi.mjs → combobox.state-AstCICiH.mjs} +109 -106
- package/dist/js/dialog/dialog.model.d.mts +2 -0
- package/dist/js/dialog/dialog.model.mjs +11 -0
- package/dist/js/dialog/index.d.mts +12 -0
- package/dist/js/dialog/index.mjs +123 -0
- package/dist/js/dialog.model-HVzYWoDo.d.mts +45 -0
- package/dist/js/floatable/floatable.embedded.d.mts +2 -2
- package/dist/js/floatable/floatable.embedded.mjs +64 -92
- package/dist/js/floatable/floatable.model.d.mts +2 -0
- package/dist/js/floatable/floatable.model.mjs +23 -0
- package/dist/js/floatable/floatable.standalone.d.mts +2 -1
- package/dist/js/floatable.embedded-ncshL3Sa.d.mts +17 -0
- package/dist/js/{floatable.embedded-DQYkXt8X.d.mts → floatable.model-DXsQgoU7.d.mts} +13 -20
- package/dist/js/focus-trap/focus-trap.embedded.d.mts +2 -2
- package/dist/js/focus-trap/focus-trap.embedded.mjs +117 -138
- package/dist/js/focus-trap/focus-trap.model.d.mts +2 -0
- package/dist/js/focus-trap/focus-trap.model.mjs +15 -0
- package/dist/js/focus-trap/focus-trap.standalone.d.mts +2 -1
- package/dist/js/focus-trap.embedded-DpcPkP7c.d.mts +13 -0
- package/dist/js/{focus-trap.embedded-CjyFQYow.d.mts → focus-trap.model-CpltX5B5.d.mts} +16 -18
- package/dist/js/index.d.mts +26 -14
- package/dist/js/index.mjs +18 -17
- package/dist/js/internal/attributable.d.mts +1 -1
- package/dist/js/internal/attributable.mjs +3 -2
- package/dist/js/internal/draggable/draggable.model.d.mts +2 -0
- package/dist/js/internal/draggable/draggable.model.mjs +37 -0
- package/dist/js/internal/draggable/index.d.mts +13 -0
- package/dist/js/internal/draggable/index.mjs +243 -0
- package/dist/js/internal/l10n/index.d.mts +5 -0
- package/dist/js/internal/l10n/index.mjs +147 -0
- package/dist/js/internal/l10n/l10n.model.d.mts +2 -0
- package/dist/js/internal/l10n/l10n.model.mjs +12 -0
- package/dist/js/internal/misc.d.mts +3 -2
- package/dist/js/internal/misc.mjs +4 -6
- package/dist/js/internal/navigable/index.d.mts +6 -0
- package/dist/js/internal/navigable/index.mjs +125 -0
- package/dist/js/internal/navigable/navigable.model.d.mts +2 -0
- package/dist/js/internal/navigable/navigable.model.mjs +18 -0
- package/dist/js/internal/option-list/option-list.constants.d.mts +8 -0
- package/dist/js/internal/option-list/option-list.constants.mjs +22 -0
- package/dist/js/internal/option-list/option-list.data.d.mts +21 -0
- package/dist/js/internal/option-list/option-list.data.mjs +2 -0
- package/dist/js/internal/option-list/option-list.dom.d.mts +18 -0
- package/dist/js/internal/option-list/option-list.dom.mjs +2 -0
- package/dist/js/internal/option-list/option-list.event.d.mts +6 -0
- package/dist/js/internal/option-list/option-list.event.mjs +66 -0
- package/dist/js/internal/option-list/option-list.form.d.mts +7 -0
- package/dist/js/internal/option-list/option-list.form.mjs +53 -0
- package/dist/js/internal/option-list/option-list.misc.d.mts +13 -0
- package/dist/js/internal/option-list/option-list.misc.mjs +2 -0
- package/dist/js/internal/option-list/option-list.model.d.mts +2 -0
- package/dist/js/internal/option-list/option-list.state.d.mts +8 -0
- package/dist/js/internal/option-list/option-list.state.mjs +39 -0
- package/dist/js/l10n/index.d.mts +3 -0
- package/dist/js/l10n/index.mjs +2 -0
- package/dist/js/l10n.model-D1E1u35L.d.mts +54 -0
- package/dist/js/listbox/index.d.mts +9 -18
- package/dist/js/listbox/index.mjs +49 -52
- package/dist/js/listbox/listbox.constants.d.mts +2 -0
- package/dist/js/listbox/{constants.listbox.mjs → listbox.constants.mjs} +11 -15
- package/dist/js/listbox/listbox.dom.d.mts +5 -0
- package/dist/js/listbox/listbox.dom.mjs +2 -0
- package/dist/js/listbox/listbox.event.d.mts +9 -0
- package/dist/js/listbox/listbox.event.mjs +2 -0
- package/dist/js/listbox/listbox.misc.d.mts +2 -0
- package/dist/js/listbox/listbox.misc.mjs +2 -0
- package/dist/js/listbox/listbox.model.d.mts +2 -0
- package/dist/js/listbox/listbox.model.mjs +1 -0
- package/dist/js/listbox/listbox.state.d.mts +9 -0
- package/dist/js/listbox/listbox.state.mjs +2 -0
- package/dist/js/listbox.constants-DOBMwKup.d.mts +9 -0
- package/dist/js/listbox.misc-DwfB4Mu_.d.mts +24 -0
- package/dist/js/listbox.model-C0MYWXZe.d.mts +20 -0
- package/dist/js/listbox.state-BrN296BM.mjs +240 -0
- package/dist/js/menu/index.mjs +171 -0
- package/dist/js/menu/menu.model.d.mts +33 -0
- package/dist/js/menu/menu.model.mjs +15 -0
- package/dist/js/movable/movable.embedded.d.mts +2 -2
- package/dist/js/movable/movable.embedded.mjs +77 -86
- package/dist/js/movable/movable.model.d.mts +2 -0
- package/dist/js/movable/movable.model.mjs +12 -0
- package/dist/js/movable/movable.standalone.d.mts +2 -1
- package/dist/js/movable.embedded-C1bDTLGs.d.mts +11 -0
- package/dist/js/movable.model-D9nnPWKk.d.mts +186 -0
- package/dist/js/navigable.model-BqoR6iBv.d.mts +44 -0
- package/dist/js/option-list.data-CgMyUwPc.mjs +441 -0
- package/dist/js/option-list.model-CCPUlPeX.d.mts +169 -0
- package/dist/js/popover/index.d.mts +12 -0
- package/dist/js/{popover.mjs → popover/index.mjs} +41 -51
- package/dist/js/popover/popover.model.d.mts +2 -0
- package/dist/js/popover/popover.model.mjs +12 -0
- package/dist/js/popover.model-DiLdz0Hc.d.mts +38 -0
- package/dist/js/resizable/resizable.embedded.d.mts +2 -2
- package/dist/js/resizable/resizable.embedded.mjs +43 -58
- package/dist/js/resizable/resizable.model.d.mts +2 -0
- package/dist/js/resizable/resizable.model.mjs +21 -0
- package/dist/js/resizable/resizable.standalone.d.mts +2 -1
- package/dist/js/resizable.embedded-BemH-7Re.d.mts +11 -0
- package/dist/js/resizable.model-YEtcC9li.d.mts +46 -0
- package/dist/js/sortable/sortable.embedded.d.mts +2 -2
- package/dist/js/sortable/sortable.embedded.mjs +111 -116
- package/dist/js/sortable/sortable.model.d.mts +2 -0
- package/dist/js/sortable/sortable.model.mjs +24 -0
- package/dist/js/sortable/sortable.standalone.d.mts +2 -1
- package/dist/js/sortable.embedded-CrEGff9k.d.mts +11 -0
- package/dist/js/{splitter.d.mts → splitter/index.d.mts} +6 -4
- package/dist/js/{splitter.mjs → splitter/index.mjs} +90 -128
- package/dist/js/splitter/splitter.model.d.mts +2 -0
- package/dist/js/splitter/splitter.model.mjs +37 -0
- package/dist/js/splitter.model-C24W6eZ7.d.mts +57 -0
- package/dist/js/{tabs.d.mts → tabs/index.d.mts} +8 -8
- package/dist/js/{tabs.mjs → tabs/index.mjs} +58 -58
- package/dist/js/tabs/tabs.model.d.mts +2 -0
- package/dist/js/tabs/tabs.model.mjs +18 -0
- package/dist/js/tabs.model-BHPy7fPo.d.mts +40 -0
- package/dist/js/toolbar/index.mjs +27 -0
- package/dist/js/toolbar/toolbar.model.d.mts +11 -0
- package/dist/js/toolbar/toolbar.model.mjs +7 -0
- package/dist/js/tooltip/index.d.mts +19 -0
- package/dist/js/{tooltip.mjs → tooltip/index.mjs} +61 -86
- package/dist/js/tooltip/tooltip.model.d.mts +2 -0
- package/dist/js/tooltip/tooltip.model.mjs +15 -0
- package/dist/js/tooltip.model-BpNStw5z.d.mts +37 -0
- package/package.json +30 -24
- package/dist/js/color-picker/constants.color-picker.d.mts +0 -2
- package/dist/js/color-picker/event.color-picker.mjs +0 -2
- package/dist/js/color-picker/misc.color-picker.d.mts +0 -2
- package/dist/js/color-picker/misc.color-picker.mjs +0 -2
- package/dist/js/color-picker/models.color-picker.d.mts +0 -2
- package/dist/js/color-picker/state.color-picker.d.mts +0 -8
- package/dist/js/color-picker/state.color-picker.mjs +0 -2
- package/dist/js/combobox/constants.combobox.d.mts +0 -2
- package/dist/js/combobox/dom.combobox.d.mts +0 -26
- package/dist/js/combobox/misc.combobox.d.mts +0 -2
- package/dist/js/combobox/misc.combobox.mjs +0 -2
- package/dist/js/combobox/models.combobox.d.mts +0 -43
- package/dist/js/combobox/state.combobox.d.mts +0 -11
- package/dist/js/combobox/state.combobox.mjs +0 -2
- package/dist/js/constants.color-picker-B-gFjL8m.d.mts +0 -364
- package/dist/js/constants.combobox-8EMRmv09.d.mts +0 -18
- package/dist/js/constants.listbox-DGnX32kv.d.mts +0 -8
- package/dist/js/dialog.d.mts +0 -47
- package/dist/js/dialog.mjs +0 -131
- package/dist/js/draggable-B5-70SZm.d.mts +0 -155
- package/dist/js/event.color-picker-BEpq0Adu.mjs +0 -485
- package/dist/js/index-C5D3-oiI.d.mts +0 -177
- package/dist/js/internal/draggable.d.mts +0 -2
- package/dist/js/internal/draggable.mjs +0 -265
- package/dist/js/internal/listbox/listbox.constants.d.mts +0 -8
- package/dist/js/internal/listbox/listbox.constants.mjs +0 -22
- package/dist/js/internal/listbox/listbox.data.d.mts +0 -19
- package/dist/js/internal/listbox/listbox.data.mjs +0 -2
- package/dist/js/internal/listbox/listbox.dom.d.mts +0 -65
- package/dist/js/internal/listbox/listbox.dom.mjs +0 -2
- package/dist/js/internal/listbox/listbox.event.d.mts +0 -4
- package/dist/js/internal/listbox/listbox.event.mjs +0 -63
- package/dist/js/internal/listbox/listbox.form.d.mts +0 -5
- package/dist/js/internal/listbox/listbox.form.mjs +0 -53
- package/dist/js/internal/listbox/listbox.misc.d.mts +0 -11
- package/dist/js/internal/listbox/listbox.misc.mjs +0 -2
- package/dist/js/internal/listbox/listbox.model.d.mts +0 -2
- package/dist/js/internal/listbox/listbox.state.d.mts +0 -6
- package/dist/js/internal/listbox/listbox.state.mjs +0 -40
- package/dist/js/internal/navigable.d.mts +0 -36
- package/dist/js/internal/navigable.mjs +0 -135
- package/dist/js/l10n-Bn-7RcwR.d.mts +0 -20
- package/dist/js/l10n.d.mts +0 -2
- package/dist/js/l10n.mjs +0 -80
- package/dist/js/listbox/constants.listbox.d.mts +0 -2
- package/dist/js/listbox/event.listbox.d.mts +0 -7
- package/dist/js/listbox/event.listbox.mjs +0 -2
- package/dist/js/listbox/misc.listbox.d.mts +0 -2
- package/dist/js/listbox/misc.listbox.mjs +0 -2
- package/dist/js/listbox/state.listbox.d.mts +0 -10
- package/dist/js/listbox/state.listbox.mjs +0 -2
- package/dist/js/listbox.data-DQ7-x2uY.mjs +0 -425
- package/dist/js/listbox.model-BHPA7GM4.d.mts +0 -125
- package/dist/js/menu.mjs +0 -172
- package/dist/js/misc.listbox-DKB-j0UK.mjs +0 -196
- package/dist/js/misc.listbox-mZMuYOxg.d.mts +0 -20
- package/dist/js/popover.d.mts +0 -38
- package/dist/js/resizable.embedded-dvhdfQgt.d.mts +0 -34
- package/dist/js/toolbar.mjs +0 -31
- package/dist/js/tooltip.d.mts +0 -45
- /package/dist/js/combobox/{models.combobox.mjs → combobox.model.mjs} +0 -0
- /package/dist/js/internal/{listbox/listbox.model.mjs → option-list/option-list.model.mjs} +0 -0
- /package/dist/js/{menu.d.mts → menu/index.d.mts} +0 -0
- /package/dist/js/{toolbar.d.mts → toolbar/index.d.mts} +0 -0
|
@@ -1,100 +1,41 @@
|
|
|
1
1
|
import { attributable } from "../internal/attributable.mjs";
|
|
2
|
+
import { FOCUSTRAP_ATTRIBUTE, FOCUSTRAP_ATTRIBUTE_CONTAIN, FOCUSTRAP_ATTRIBUTE_NOESCAPE, FOCUSTRAP_EVENT_OPTIONS, FOCUSTRAP_MESSAGE, FOCUSTRAP_SELECTOR, FOCUSTRAP_SYMBOL, disabledFocusTraps, focusTraps } from "./focus-trap.model.mjs";
|
|
3
|
+
import { setAttribute } from "@oscarpalmer/toretto/attribute";
|
|
2
4
|
import { dispatch, on } from "@oscarpalmer/toretto/event";
|
|
5
|
+
import { findAncestor } from "@oscarpalmer/toretto/find";
|
|
3
6
|
import { isPlainObject } from "@oscarpalmer/atoms/is";
|
|
4
|
-
import { setAttribute } from "@oscarpalmer/toretto/attribute";
|
|
5
7
|
import { isHTMLOrSVGElement } from "@oscarpalmer/toretto/is";
|
|
6
8
|
import { clamp } from "@oscarpalmer/atoms/number";
|
|
7
|
-
import { findAncestor } from "@oscarpalmer/toretto/find";
|
|
8
9
|
import { getFocusable } from "@oscarpalmer/toretto/focusable";
|
|
9
10
|
//#region src/js/focus-trap/focus-trap.embedded.ts
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
else if (value === false) this.enable();
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Is focus allowed to escape when pressing _Escape_ within the _focus trap_?
|
|
42
|
-
*/
|
|
43
|
-
get noescape() {
|
|
44
|
-
return this.#state.element.hasAttribute(ATTRIBUTE_FOCUSTRAP_NOESCAPE);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Should the _focus trap_ allow focus to escape when pressing _Escape_?
|
|
48
|
-
*/
|
|
49
|
-
set noescape(value) {
|
|
50
|
-
if (value === true) setAttribute(this.#state.element, ATTRIBUTE_FOCUSTRAP_NOESCAPE, "");
|
|
51
|
-
else if (value === false) setAttribute(this.#state.element, ATTRIBUTE_FOCUSTRAP_NOESCAPE, void 0);
|
|
52
|
-
}
|
|
53
|
-
constructor(state) {
|
|
54
|
-
this.#state = state;
|
|
55
|
-
this.#tabIndex = state.element.tabIndex;
|
|
56
|
-
state.element.tabIndex = -1;
|
|
57
|
-
setAttribute(state.element, ATTRIBUTE_FOCUSTRAP, "");
|
|
58
|
-
this.contain = state.options.contain;
|
|
59
|
-
this.noescape = state.options.noescape;
|
|
60
|
-
states.set(this, state);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Destroys the _focus trap_
|
|
64
|
-
*/
|
|
65
|
-
destroy() {
|
|
66
|
-
if (this.#destroyed) return;
|
|
67
|
-
this.#destroyed = true;
|
|
68
|
-
disabled.delete(this);
|
|
69
|
-
instances.delete(this.#state.element);
|
|
70
|
-
states.delete(this);
|
|
71
|
-
this.#state.element.tabIndex = this.#tabIndex;
|
|
72
|
-
this.#state.element.removeAttribute(ATTRIBUTE_FOCUSTRAP);
|
|
73
|
-
this.#state.element.removeAttribute(ATTRIBUTE_FOCUSTRAP_CONTAIN);
|
|
74
|
-
this.#state.element.removeAttribute(ATTRIBUTE_FOCUSTRAP_NOESCAPE);
|
|
75
|
-
this.#state.element = void 0;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Disables the _focus trap_
|
|
79
|
-
*/
|
|
80
|
-
disable() {
|
|
81
|
-
if (!this.#destroyed && !(this.disabled || this.#state.options.noescape)) setDisabled(this, this.#state, true);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Enables the _focus trap_
|
|
85
|
-
*/
|
|
86
|
-
enable() {
|
|
87
|
-
if (!this.#destroyed && this.disabled) setDisabled(this, this.#state, false);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Focuses the _focus trap_
|
|
91
|
-
*
|
|
92
|
-
* @param last When `true`, focuses the last focusable element within the _focus trap_ instead of the first
|
|
93
|
-
*/
|
|
94
|
-
focus(last) {
|
|
95
|
-
if (!this.#destroyed && !this.disabled) tabToTrap(this, getFocusable(this.#state.element), this.#state.element, last ? -1 : 0);
|
|
96
|
-
}
|
|
97
|
-
};
|
|
11
|
+
function OuiFocusTrap(state) {
|
|
12
|
+
this[FOCUSTRAP_SYMBOL] = state;
|
|
13
|
+
state.element.tabIndex = -1;
|
|
14
|
+
setAttribute(state.element, FOCUSTRAP_ATTRIBUTE, "");
|
|
15
|
+
this.contain = state.options.contain;
|
|
16
|
+
this.noescape = state.options.noescape;
|
|
17
|
+
}
|
|
18
|
+
OuiFocusTrap.prototype.destroy = destroyFocusTrap;
|
|
19
|
+
OuiFocusTrap.prototype.disable = disableFocusTrap;
|
|
20
|
+
OuiFocusTrap.prototype.enable = enableFocusTrap;
|
|
21
|
+
OuiFocusTrap.prototype.focus = focusFocusTrap;
|
|
22
|
+
Object.defineProperties(OuiFocusTrap.prototype, {
|
|
23
|
+
contain: {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: getContain,
|
|
26
|
+
set: setContain
|
|
27
|
+
},
|
|
28
|
+
disabled: {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: getDisabled,
|
|
31
|
+
set: setDisabled
|
|
32
|
+
},
|
|
33
|
+
noescape: {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: getNoEscape,
|
|
36
|
+
set: setNoEscape
|
|
37
|
+
}
|
|
38
|
+
});
|
|
98
39
|
/**
|
|
99
40
|
* Creates _(or retrieves)_ a _focus trap_ for an element
|
|
100
41
|
*
|
|
@@ -103,44 +44,80 @@ var OuiFocusTrap = class {
|
|
|
103
44
|
* @returns _Focus trap_ instance
|
|
104
45
|
*/
|
|
105
46
|
function createFocusTrap(element, options) {
|
|
106
|
-
if (!isHTMLOrSVGElement(element)) throw new TypeError(
|
|
107
|
-
let instance =
|
|
47
|
+
if (!isHTMLOrSVGElement(element)) throw new TypeError(FOCUSTRAP_MESSAGE);
|
|
48
|
+
let instance = focusTraps.get(element);
|
|
108
49
|
if (instance == null) {
|
|
109
50
|
instance = new OuiFocusTrap(getState(element, options));
|
|
110
|
-
|
|
51
|
+
focusTraps.set(element, instance);
|
|
111
52
|
}
|
|
112
53
|
return instance;
|
|
113
54
|
}
|
|
55
|
+
function destroyFocusTrap() {
|
|
56
|
+
const state = this[FOCUSTRAP_SYMBOL];
|
|
57
|
+
if (state.destroyed) return;
|
|
58
|
+
state.destroyed = true;
|
|
59
|
+
disabledFocusTraps.delete(this);
|
|
60
|
+
focusTraps.delete(state.element);
|
|
61
|
+
state.element.tabIndex = state.tabIndex;
|
|
62
|
+
state.element.removeAttribute(FOCUSTRAP_ATTRIBUTE);
|
|
63
|
+
state.element.removeAttribute(FOCUSTRAP_ATTRIBUTE_CONTAIN);
|
|
64
|
+
state.element.removeAttribute(FOCUSTRAP_ATTRIBUTE_NOESCAPE);
|
|
65
|
+
state.element = void 0;
|
|
66
|
+
}
|
|
67
|
+
function disableFocusTrap() {
|
|
68
|
+
const state = this[FOCUSTRAP_SYMBOL];
|
|
69
|
+
if (!state.destroyed && !(this.disabled || state.options.noescape)) setDisabledState(this, state, true);
|
|
70
|
+
}
|
|
71
|
+
function enableFocusTrap() {
|
|
72
|
+
const state = this[FOCUSTRAP_SYMBOL];
|
|
73
|
+
if (!state.destroyed && this.disabled) setDisabledState(this, state, false);
|
|
74
|
+
}
|
|
75
|
+
function focusFocusTrap(last) {
|
|
76
|
+
const state = this[FOCUSTRAP_SYMBOL];
|
|
77
|
+
if (!state.destroyed && !this.disabled) tabToTrap(this, getFocusable(state.element), state.element, last ? -1 : 0);
|
|
78
|
+
}
|
|
79
|
+
function getContain() {
|
|
80
|
+
return this[FOCUSTRAP_SYMBOL].element.hasAttribute(FOCUSTRAP_ATTRIBUTE_CONTAIN);
|
|
81
|
+
}
|
|
82
|
+
function getDisabled() {
|
|
83
|
+
return this[FOCUSTRAP_SYMBOL].disabled;
|
|
84
|
+
}
|
|
85
|
+
function getNoEscape() {
|
|
86
|
+
return this[FOCUSTRAP_SYMBOL].element.hasAttribute(FOCUSTRAP_ATTRIBUTE_NOESCAPE);
|
|
87
|
+
}
|
|
114
88
|
function getOptions(element, input) {
|
|
115
89
|
const options = isPlainObject(input) ? input : {};
|
|
116
90
|
return {
|
|
117
|
-
contain: typeof options.contain === "boolean" ? options.contain : element.hasAttribute(
|
|
118
|
-
noescape: typeof options.noescape === "boolean" ? options.noescape : element.hasAttribute(
|
|
91
|
+
contain: typeof options.contain === "boolean" ? options.contain : element.hasAttribute(FOCUSTRAP_ATTRIBUTE_CONTAIN),
|
|
92
|
+
noescape: typeof options.noescape === "boolean" ? options.noescape : element.hasAttribute(FOCUSTRAP_ATTRIBUTE_NOESCAPE)
|
|
119
93
|
};
|
|
120
94
|
}
|
|
121
95
|
function getState(element, options) {
|
|
122
96
|
return {
|
|
123
97
|
element,
|
|
98
|
+
destroyed: false,
|
|
124
99
|
disabled: false,
|
|
125
|
-
options: getOptions(element, options)
|
|
100
|
+
options: getOptions(element, options),
|
|
101
|
+
tabIndex: element.tabIndex
|
|
126
102
|
};
|
|
127
103
|
}
|
|
128
104
|
function onEscape(event) {
|
|
129
|
-
let element = findAncestor(event,
|
|
130
|
-
let instance =
|
|
131
|
-
let state =
|
|
105
|
+
let element = findAncestor(event, FOCUSTRAP_SELECTOR);
|
|
106
|
+
let instance = element == null ? void 0 : focusTraps.get(element);
|
|
107
|
+
let state = instance?.[FOCUSTRAP_SYMBOL];
|
|
132
108
|
if (element == null || instance == null || state == null) return;
|
|
133
109
|
while (state.disabled) {
|
|
134
|
-
element = findAncestor(state.element.parentElement,
|
|
135
|
-
instance =
|
|
136
|
-
state =
|
|
110
|
+
element = state.element.parentElement == null ? void 0 : findAncestor(state.element.parentElement, FOCUSTRAP_SELECTOR);
|
|
111
|
+
instance = element == null ? void 0 : focusTraps.get(element);
|
|
112
|
+
state = instance?.[FOCUSTRAP_SYMBOL];
|
|
137
113
|
if (element == null || instance == null || state == null) return;
|
|
138
114
|
if (!state.disabled) break;
|
|
139
115
|
}
|
|
140
116
|
instance?.disable();
|
|
141
117
|
}
|
|
142
118
|
function onFocusIn(event) {
|
|
143
|
-
|
|
119
|
+
const target = findAncestor(event, FOCUSTRAP_SELECTOR);
|
|
120
|
+
lastTarget = (target == null ? void 0 : focusTraps.get(target)) != null && event.target instanceof HTMLElement ? event.target : void 0;
|
|
144
121
|
}
|
|
145
122
|
function onKeydown(event) {
|
|
146
123
|
switch (event.key) {
|
|
@@ -154,24 +131,24 @@ function onKeydown(event) {
|
|
|
154
131
|
}
|
|
155
132
|
}
|
|
156
133
|
function onPointerdown(event) {
|
|
157
|
-
const last = findAncestor(lastTarget,
|
|
158
|
-
const next = findAncestor(event,
|
|
134
|
+
const last = lastTarget == null ? void 0 : findAncestor(lastTarget, FOCUSTRAP_SELECTOR);
|
|
135
|
+
const next = findAncestor(event, FOCUSTRAP_SELECTOR);
|
|
159
136
|
if (last != null && next !== last) {
|
|
160
|
-
if (
|
|
137
|
+
if (focusTraps.get(last)?.[FOCUSTRAP_SYMBOL]?.options.contain ?? false) {
|
|
161
138
|
event.preventDefault();
|
|
162
|
-
lastTarget?.focus();
|
|
139
|
+
lastTarget?.focus?.();
|
|
163
140
|
}
|
|
164
141
|
}
|
|
165
|
-
if (
|
|
166
|
-
for (const focusTrap of
|
|
167
|
-
const state =
|
|
142
|
+
if (disabledFocusTraps.size === 0) return;
|
|
143
|
+
for (const focusTrap of disabledFocusTraps) {
|
|
144
|
+
const state = focusTrap?.[FOCUSTRAP_SYMBOL];
|
|
168
145
|
if (state != null && state.element !== next) focusTrap.enable();
|
|
169
146
|
}
|
|
170
147
|
}
|
|
171
148
|
function onTab(event) {
|
|
172
|
-
const element = findAncestor(event,
|
|
173
|
-
const instance =
|
|
174
|
-
if (instance == null || dispatch(element, "oui:focus-trap").defaultPrevented) return;
|
|
149
|
+
const element = findAncestor(event, FOCUSTRAP_SELECTOR);
|
|
150
|
+
const instance = element == null ? void 0 : focusTraps.get(element);
|
|
151
|
+
if (!(element instanceof HTMLElement) || instance == null || dispatch(element, "oui:focus-trap").defaultPrevented) return;
|
|
175
152
|
if (!instance.disabled) event.preventDefault();
|
|
176
153
|
const elements = getFocusable(element);
|
|
177
154
|
const index = elements.indexOf(event.target);
|
|
@@ -179,13 +156,27 @@ function onTab(event) {
|
|
|
179
156
|
else tabToElement(instance, elements, index, event.shiftKey ? -1 : 1);
|
|
180
157
|
}
|
|
181
158
|
function removeFocusTrap(element) {
|
|
182
|
-
|
|
183
|
-
|
|
159
|
+
focusTraps.get(element)?.destroy();
|
|
160
|
+
focusTraps.delete(element);
|
|
184
161
|
}
|
|
185
|
-
function
|
|
162
|
+
function setContain(value) {
|
|
163
|
+
const { element } = this[FOCUSTRAP_SYMBOL];
|
|
164
|
+
if (value === true) setAttribute(element, FOCUSTRAP_ATTRIBUTE_CONTAIN, "");
|
|
165
|
+
else if (value === false) setAttribute(element, FOCUSTRAP_ATTRIBUTE_CONTAIN, void 0);
|
|
166
|
+
}
|
|
167
|
+
function setDisabled(value) {
|
|
168
|
+
if (value === true) this.disable();
|
|
169
|
+
else if (value === false) this.enable();
|
|
170
|
+
}
|
|
171
|
+
function setDisabledState(focusTrap, state, value) {
|
|
186
172
|
state.disabled = value;
|
|
187
|
-
if (value)
|
|
188
|
-
else
|
|
173
|
+
if (value) disabledFocusTraps.add(focusTrap);
|
|
174
|
+
else disabledFocusTraps.delete(focusTrap);
|
|
175
|
+
}
|
|
176
|
+
function setNoEscape(value) {
|
|
177
|
+
const { element } = this[FOCUSTRAP_SYMBOL];
|
|
178
|
+
if (value === true) setAttribute(element, FOCUSTRAP_ATTRIBUTE_NOESCAPE, "");
|
|
179
|
+
else if (value === false) setAttribute(element, FOCUSTRAP_ATTRIBUTE_NOESCAPE, void 0);
|
|
189
180
|
}
|
|
190
181
|
function tabToElement(instance, elements, index, modifier) {
|
|
191
182
|
const { length } = elements;
|
|
@@ -198,7 +189,7 @@ function tabToElement(instance, elements, index, modifier) {
|
|
|
198
189
|
return;
|
|
199
190
|
}
|
|
200
191
|
const element = elements[next];
|
|
201
|
-
const elementFocusTrap =
|
|
192
|
+
const elementFocusTrap = focusTraps.get(element);
|
|
202
193
|
if (elementFocusTrap != null) elementFocusTrap.focus(modifier === -1);
|
|
203
194
|
else {
|
|
204
195
|
elements[next].focus();
|
|
@@ -211,27 +202,15 @@ function tabToTrap(instance, elements, element, index) {
|
|
|
211
202
|
instance.enable();
|
|
212
203
|
} else {
|
|
213
204
|
const next = elements.length === 0 ? element : elements.at(index ?? 0);
|
|
214
|
-
next
|
|
205
|
+
next?.focus?.();
|
|
215
206
|
lastTarget = next;
|
|
216
207
|
}
|
|
217
208
|
}
|
|
218
|
-
const ATTRIBUTE_FOCUSTRAP = "oui-focus-trap";
|
|
219
|
-
const ATTRIBUTE_FOCUSTRAP_CONTAIN = `${ATTRIBUTE_FOCUSTRAP}-contain`;
|
|
220
|
-
const ATTRIBUTE_FOCUSTRAP_NOESCAPE = `${ATTRIBUTE_FOCUSTRAP}-noescape`;
|
|
221
|
-
const EVENT_OPTIONS = {
|
|
222
|
-
capture: true,
|
|
223
|
-
passive: false
|
|
224
|
-
};
|
|
225
|
-
const MESSAGE = "Element must be an HTMLElement or SVGElement";
|
|
226
|
-
const SELECTOR = `[${ATTRIBUTE_FOCUSTRAP}]`;
|
|
227
|
-
const disabled = /* @__PURE__ */ new Set();
|
|
228
|
-
const instances = /* @__PURE__ */ new WeakMap();
|
|
229
|
-
const states = /* @__PURE__ */ new WeakMap();
|
|
230
209
|
let lastTarget;
|
|
231
|
-
attributable(
|
|
232
|
-
on(document, "focusin", onFocusIn,
|
|
233
|
-
on(document, "keydown", onKeydown,
|
|
234
|
-
on(document, "mousedown", onPointerdown,
|
|
235
|
-
on(document, "touchstart", onPointerdown,
|
|
210
|
+
attributable(FOCUSTRAP_ATTRIBUTE, createFocusTrap, removeFocusTrap);
|
|
211
|
+
on(document, "focusin", onFocusIn, FOCUSTRAP_EVENT_OPTIONS);
|
|
212
|
+
on(document, "keydown", onKeydown, FOCUSTRAP_EVENT_OPTIONS);
|
|
213
|
+
on(document, "mousedown", onPointerdown, FOCUSTRAP_EVENT_OPTIONS);
|
|
214
|
+
on(document, "touchstart", onPointerdown, FOCUSTRAP_EVENT_OPTIONS);
|
|
236
215
|
//#endregion
|
|
237
|
-
export {
|
|
216
|
+
export { createFocusTrap, removeFocusTrap };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as FOCUSTRAP_MESSAGE, c as OuiFocusTrap, d as disabledFocusTraps, f as focusTraps, i as FOCUSTRAP_EVENT_OPTIONS, l as OuiFocusTrapOptions, n as FOCUSTRAP_ATTRIBUTE_CONTAIN, o as FOCUSTRAP_SELECTOR, r as FOCUSTRAP_ATTRIBUTE_NOESCAPE, s as FOCUSTRAP_SYMBOL, t as FOCUSTRAP_ATTRIBUTE, u as OuiFocusTrapState } from "../focus-trap.model-CpltX5B5.mjs";
|
|
2
|
+
export { FOCUSTRAP_ATTRIBUTE, FOCUSTRAP_ATTRIBUTE_CONTAIN, FOCUSTRAP_ATTRIBUTE_NOESCAPE, FOCUSTRAP_EVENT_OPTIONS, FOCUSTRAP_MESSAGE, FOCUSTRAP_SELECTOR, FOCUSTRAP_SYMBOL, OuiFocusTrap, OuiFocusTrapOptions, OuiFocusTrapState, disabledFocusTraps, focusTraps };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/js/focus-trap/focus-trap.model.ts
|
|
2
|
+
const FOCUSTRAP_ATTRIBUTE = "oui-focus-trap";
|
|
3
|
+
const FOCUSTRAP_ATTRIBUTE_CONTAIN = `${FOCUSTRAP_ATTRIBUTE}-contain`;
|
|
4
|
+
const FOCUSTRAP_ATTRIBUTE_NOESCAPE = `${FOCUSTRAP_ATTRIBUTE}-noescape`;
|
|
5
|
+
const FOCUSTRAP_EVENT_OPTIONS = {
|
|
6
|
+
capture: true,
|
|
7
|
+
passive: false
|
|
8
|
+
};
|
|
9
|
+
const FOCUSTRAP_MESSAGE = "Element must be an HTMLElement or SVGElement";
|
|
10
|
+
const FOCUSTRAP_SELECTOR = `[${FOCUSTRAP_ATTRIBUTE}]`;
|
|
11
|
+
const FOCUSTRAP_SYMBOL = Symbol(FOCUSTRAP_ATTRIBUTE);
|
|
12
|
+
const disabledFocusTraps = /* @__PURE__ */ new Set();
|
|
13
|
+
const focusTraps = /* @__PURE__ */ new WeakMap();
|
|
14
|
+
//#endregion
|
|
15
|
+
export { FOCUSTRAP_ATTRIBUTE, FOCUSTRAP_ATTRIBUTE_CONTAIN, FOCUSTRAP_ATTRIBUTE_NOESCAPE, FOCUSTRAP_EVENT_OPTIONS, FOCUSTRAP_MESSAGE, FOCUSTRAP_SELECTOR, FOCUSTRAP_SYMBOL, disabledFocusTraps, focusTraps };
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as OuiFocusTrap, l as OuiFocusTrapOptions } from "../focus-trap.model-CpltX5B5.mjs";
|
|
2
|
+
import { t as createFocusTrap } from "../focus-trap.embedded-DpcPkP7c.mjs";
|
|
2
3
|
export { type OuiFocusTrap, type OuiFocusTrapOptions, createFocusTrap };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { c as OuiFocusTrap, l as OuiFocusTrapOptions } from "./focus-trap.model-CpltX5B5.mjs";
|
|
2
|
+
//#region src/js/focus-trap/focus-trap.embedded.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Creates _(or retrieves)_ a _focus trap_ for an element
|
|
5
|
+
*
|
|
6
|
+
* @param element Element to trap focus within
|
|
7
|
+
* @param options _Focus trap_ options
|
|
8
|
+
* @returns _Focus trap_ instance
|
|
9
|
+
*/
|
|
10
|
+
declare function createFocusTrap(element: Element, options?: OuiFocusTrapOptions): OuiFocusTrap;
|
|
11
|
+
declare function removeFocusTrap(element: Element): void;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { removeFocusTrap as n, createFocusTrap as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
//#region src/js/focus-trap/focus-trap.
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
//#region src/js/focus-trap/focus-trap.model.d.ts
|
|
2
|
+
type OuiFocusTrap = {
|
|
3
|
+
[FOCUSTRAP_SYMBOL]: OuiFocusTrapState;
|
|
4
4
|
/**
|
|
5
5
|
* Is focused maintained within the _focus trap_ when clicking outside of it?
|
|
6
6
|
*/
|
|
@@ -25,7 +25,6 @@ declare class OuiFocusTrap {
|
|
|
25
25
|
* Should the _focus trap_ allow focus to escape when pressing _Escape_?
|
|
26
26
|
*/
|
|
27
27
|
set noescape(value: boolean);
|
|
28
|
-
constructor(state: OuiFocusTrapState);
|
|
29
28
|
/**
|
|
30
29
|
* Destroys the _focus trap_
|
|
31
30
|
*/
|
|
@@ -44,7 +43,7 @@ declare class OuiFocusTrap {
|
|
|
44
43
|
* @param last When `true`, focuses the last focusable element within the _focus trap_ instead of the first
|
|
45
44
|
*/
|
|
46
45
|
focus(last: boolean): void;
|
|
47
|
-
}
|
|
46
|
+
};
|
|
48
47
|
type OuiFocusTrapOptions = {
|
|
49
48
|
/**
|
|
50
49
|
* Should focus be maintained within the _focus trap_ when clicking outside of it?
|
|
@@ -56,21 +55,20 @@ type OuiFocusTrapOptions = {
|
|
|
56
55
|
noescape?: boolean;
|
|
57
56
|
};
|
|
58
57
|
type OuiFocusTrapState = {
|
|
58
|
+
destroyed: boolean;
|
|
59
59
|
disabled: boolean;
|
|
60
60
|
element: HTMLElement;
|
|
61
61
|
options: Required<OuiFocusTrapOptions>;
|
|
62
|
+
tabIndex: number;
|
|
62
63
|
};
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
declare
|
|
71
|
-
declare
|
|
72
|
-
declare const ATTRIBUTE_FOCUSTRAP = "oui-focus-trap";
|
|
73
|
-
declare const ATTRIBUTE_FOCUSTRAP_CONTAIN: string;
|
|
74
|
-
declare const ATTRIBUTE_FOCUSTRAP_NOESCAPE: string;
|
|
64
|
+
declare const FOCUSTRAP_ATTRIBUTE = "oui-focus-trap";
|
|
65
|
+
declare const FOCUSTRAP_ATTRIBUTE_CONTAIN: string;
|
|
66
|
+
declare const FOCUSTRAP_ATTRIBUTE_NOESCAPE: string;
|
|
67
|
+
declare const FOCUSTRAP_EVENT_OPTIONS: AddEventListenerOptions;
|
|
68
|
+
declare const FOCUSTRAP_MESSAGE = "Element must be an HTMLElement or SVGElement";
|
|
69
|
+
declare const FOCUSTRAP_SELECTOR: string;
|
|
70
|
+
declare const FOCUSTRAP_SYMBOL: unique symbol;
|
|
71
|
+
declare const disabledFocusTraps: Set<OuiFocusTrap>;
|
|
72
|
+
declare const focusTraps: WeakMap<Element, OuiFocusTrap>;
|
|
75
73
|
//#endregion
|
|
76
|
-
export {
|
|
74
|
+
export { FOCUSTRAP_MESSAGE as a, OuiFocusTrap as c, disabledFocusTraps as d, focusTraps as f, FOCUSTRAP_EVENT_OPTIONS as i, OuiFocusTrapOptions as l, FOCUSTRAP_ATTRIBUTE_CONTAIN as n, FOCUSTRAP_SELECTOR as o, FOCUSTRAP_ATTRIBUTE_NOESCAPE as r, FOCUSTRAP_SYMBOL as s, FOCUSTRAP_ATTRIBUTE as t, OuiFocusTrapState as u };
|
package/dist/js/index.d.mts
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { a as
|
|
4
|
-
import {
|
|
1
|
+
import { c as OuiFloatable, t as CreateOuiFloatableOptions, u as OuiFloatablePosition } from "./floatable.model-DXsQgoU7.mjs";
|
|
2
|
+
import { N as OuiColorPickerEvent } from "./color-picker.constants-BZgXQr5o.mjs";
|
|
3
|
+
import { a as setColorPickerLocalizations } from "./color-picker.misc-BIS3R6jk.mjs";
|
|
4
|
+
import { OuiColorPickerElement } from "./color-picker/index.mjs";
|
|
5
|
+
import { i as setComboboxLocalizations } from "./combobox.misc-DRDFk6X8.mjs";
|
|
6
|
+
import { OuiComboboxElement } from "./combobox/index.mjs";
|
|
7
|
+
import { $ as OuiSortable, p as CreateOuiDraggableOptions, u as OuiMovable } from "./movable.model-D9nnPWKk.mjs";
|
|
8
|
+
import { n as OuiResizable, t as CreateOuiResizableOptions } from "./resizable.model-YEtcC9li.mjs";
|
|
9
|
+
import { c as OuiDialog } from "./dialog.model-HVzYWoDo.mjs";
|
|
10
|
+
import { getDialog } from "./dialog/index.mjs";
|
|
11
|
+
import { n as createFloatable } from "./floatable.embedded-ncshL3Sa.mjs";
|
|
12
|
+
import "./floatable/floatable.standalone.mjs";
|
|
13
|
+
import { c as OuiFocusTrap, l as OuiFocusTrapOptions } from "./focus-trap.model-CpltX5B5.mjs";
|
|
14
|
+
import { t as createFocusTrap } from "./focus-trap.embedded-DpcPkP7c.mjs";
|
|
15
|
+
import { t as createMovable } from "./movable.embedded-C1bDTLGs.mjs";
|
|
5
16
|
import "./movable/movable.standalone.mjs";
|
|
6
|
-
import {
|
|
17
|
+
import { t as createResizable } from "./resizable.embedded-BemH-7Re.mjs";
|
|
7
18
|
import "./resizable/resizable.standalone.mjs";
|
|
8
|
-
import {
|
|
9
|
-
import "./floatable/floatable.standalone.mjs";
|
|
10
|
-
import { a as OuiFocusTrapOptions, i as OuiFocusTrap, o as createFocusTrap } from "./focus-trap.embedded-CjyFQYow.mjs";
|
|
11
|
-
import { n as setListboxLocalizations } from "./misc.listbox-mZMuYOxg.mjs";
|
|
12
|
-
import { OuiListboxElement } from "./listbox/index.mjs";
|
|
13
|
-
import { OuiPopover, getPopover } from "./popover.mjs";
|
|
19
|
+
import { t as createSortable } from "./sortable.embedded-CrEGff9k.mjs";
|
|
14
20
|
import "./sortable/sortable.standalone.mjs";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
21
|
+
import { n as setListboxLocalizations } from "./listbox.misc-DwfB4Mu_.mjs";
|
|
22
|
+
import { OuiListboxElement } from "./listbox/index.mjs";
|
|
23
|
+
import { t as OuiPopover } from "./popover.model-DiLdz0Hc.mjs";
|
|
24
|
+
import { getPopover } from "./popover/index.mjs";
|
|
25
|
+
import { OuiSplitterElement } from "./splitter/index.mjs";
|
|
26
|
+
import { r as OuiTabsEvent } from "./tabs.model-BHPy7fPo.mjs";
|
|
27
|
+
import { OuiTabsElement } from "./tabs/index.mjs";
|
|
28
|
+
import { t as OuiTooltip } from "./tooltip.model-BpNStw5z.mjs";
|
|
29
|
+
import { getTooltip, setTooltipDelay } from "./tooltip/index.mjs";
|
|
18
30
|
export { type CreateOuiFloatableOptions, type CreateOuiDraggableOptions as CreateOuiMovableOptions, type CreateOuiDraggableOptions as CreateOuiSortableOptions, type CreateOuiResizableOptions, OuiColorPickerElement, OuiColorPickerEvent, OuiComboboxElement, type OuiDialog, type OuiFloatable, type OuiFloatablePosition, type OuiFocusTrap, type OuiFocusTrapOptions, OuiListboxElement, type OuiMovable, type OuiPopover, type OuiResizable, type OuiSortable, OuiSplitterElement, OuiTabsElement, OuiTabsEvent, type OuiTooltip, createFloatable, createFocusTrap, createMovable, createResizable as createOuiResizable, createSortable, getDialog, getPopover, getTooltip, setColorPickerLocalizations, setComboboxLocalizations, setListboxLocalizations, setTooltipDelay };
|
package/dist/js/index.mjs
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
import { createFloatable } from "./floatable/floatable.embedded.mjs";
|
|
2
|
-
import
|
|
3
|
-
import "./
|
|
4
|
-
import { createResizable } from "./resizable/resizable.embedded.mjs";
|
|
5
|
-
import { getDialog } from "./dialog.mjs";
|
|
6
|
-
import "./menu.mjs";
|
|
7
|
-
import "./toolbar.mjs";
|
|
8
|
-
import { OuiColorPickerEvent } from "./color-picker/models.color-picker.mjs";
|
|
9
|
-
import { d as setColorPickerLocalizations } from "./event.color-picker-BEpq0Adu.mjs";
|
|
10
|
-
import { OuiColorPickerElement } from "./color-picker/index.mjs";
|
|
11
|
-
import { D as setComboboxLocalizations } from "./state.combobox-BWDFHwoi.mjs";
|
|
12
|
-
import { OuiComboboxElement } from "./combobox/index.mjs";
|
|
2
|
+
import "./menu/index.mjs";
|
|
3
|
+
import "./toolbar/index.mjs";
|
|
13
4
|
import "./floatable/floatable.standalone.mjs";
|
|
14
5
|
import { createFocusTrap } from "./focus-trap/focus-trap.embedded.mjs";
|
|
15
6
|
import "./focus-trap/focus-trap.standalone.mjs";
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
7
|
+
import { createMovable } from "./movable/movable.embedded.mjs";
|
|
8
|
+
import "./movable/movable.standalone.mjs";
|
|
9
|
+
import { createResizable } from "./resizable/resizable.embedded.mjs";
|
|
19
10
|
import "./resizable/resizable.standalone.mjs";
|
|
20
11
|
import { createSortable } from "./sortable/sortable.embedded.mjs";
|
|
21
12
|
import "./sortable/sortable.standalone.mjs";
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
13
|
+
import { OuiColorPickerEvent } from "./color-picker/color-picker.model.mjs";
|
|
14
|
+
import { setColorPickerLocalizations } from "./color-picker/color-picker.misc.mjs";
|
|
15
|
+
import { OuiColorPickerElement } from "./color-picker/index.mjs";
|
|
16
|
+
import { D as setComboboxLocalizations } from "./combobox.state-AstCICiH.mjs";
|
|
17
|
+
import { OuiComboboxElement } from "./combobox/index.mjs";
|
|
18
|
+
import { getDialog } from "./dialog/index.mjs";
|
|
19
|
+
import { s as setListboxLocalizations } from "./listbox.state-BrN296BM.mjs";
|
|
20
|
+
import { OuiListboxElement } from "./listbox/index.mjs";
|
|
21
|
+
import { getPopover } from "./popover/index.mjs";
|
|
22
|
+
import { OuiSplitterElement } from "./splitter/index.mjs";
|
|
23
|
+
import { OuiTabsEvent } from "./tabs/tabs.model.mjs";
|
|
24
|
+
import { OuiTabsElement } from "./tabs/index.mjs";
|
|
25
|
+
import { getTooltip, setTooltipDelay } from "./tooltip/index.mjs";
|
|
25
26
|
export { OuiColorPickerElement, OuiColorPickerEvent, OuiComboboxElement, OuiListboxElement, OuiSplitterElement, OuiTabsElement, OuiTabsEvent, createFloatable, createFocusTrap, createMovable, createResizable as createOuiResizable, createSortable, getDialog, getPopover, getTooltip, setColorPickerLocalizations, setComboboxLocalizations, setListboxLocalizations, setTooltipDelay };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
//#region src/js/internal/attributable.d.ts
|
|
2
|
-
export declare function attributable(attribute: string, add: (element:
|
|
2
|
+
export declare function attributable(attribute: string, add: (element: Element) => void, remove: (element: Element) => void): void;
|
|
3
3
|
//#endregion
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { filter } from "@oscarpalmer/atoms/array/filter";
|
|
1
2
|
//#region src/js/internal/attributable.ts
|
|
2
3
|
function attributable(attribute, add, remove) {
|
|
3
4
|
new MutationObserver((entries) => {
|
|
@@ -23,7 +24,7 @@ function attributable(attribute, add, remove) {
|
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
26
|
function handleAdded(attribute, nodes, add) {
|
|
26
|
-
const elements = [...nodes]
|
|
27
|
+
const elements = filter([...nodes], (node) => node instanceof Element);
|
|
27
28
|
const { length } = elements;
|
|
28
29
|
for (let index = 0; index < length; index += 1) {
|
|
29
30
|
const element = elements[index];
|
|
@@ -32,7 +33,7 @@ function handleAdded(attribute, nodes, add) {
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
function handleRemoved(nodes, remove) {
|
|
35
|
-
const elements = [...nodes]
|
|
36
|
+
const elements = filter([...nodes], (node) => node instanceof Element);
|
|
36
37
|
const { length } = elements;
|
|
37
38
|
for (let index = 0; index < length; index += 1) {
|
|
38
39
|
const element = elements[index];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { A as OuiDraggableGlobals, B as OuiDraggableOptionsDrag, C as OuiDragCancel, D as OuiDraggable, E as OuiDragMovePosition, F as OuiDraggableOptionsContainer, G as OuiDraggableStates, H as OuiDraggableOptionsPositionGetOffset, I as OuiDraggableOptionsContainerOnDestroy, J as draggableHorizontals, K as draggableContainers, L as OuiDraggableOptionsContainerOnInitialize, M as OuiDraggableInstances, N as OuiDraggableItem, O as OuiDraggableBound, P as OuiDraggableOptions, Q as draggableVerticals, R as OuiDraggableOptionsDirection, S as OuiDragBegin, T as OuiDragMove, U as OuiDraggableOptionsPositionGetOriginal, V as OuiDraggableOptionsPosition, W as OuiDraggableState, X as draggableStyleToggler, Y as draggableProperties, Z as draggableStyles, _ as DRAGGABLE_SELECTOR, b as DRAGGABLE_SELECTOR_SORTABLE_ITEM, g as DRAGGABLE_KEY_ESCAPE, h as DRAGGABLE_ATTRIBUTE_SORTABLE, j as OuiDraggableGlobalsElement, k as OuiDraggableDirection, m as DRAGGABLE_ATTRIBUTE_MOVABLE, p as CreateOuiDraggableOptions, q as draggableGlobals, v as DRAGGABLE_SELECTOR_MOVABLE_HANDLE, w as OuiDragEnd, x as DRAGGABLE_SYMBOL, y as DRAGGABLE_SELECTOR_SORTABLE_HANDLE, z as OuiDraggableOptionsDirectionOnAfter } from "../../movable.model-D9nnPWKk.mjs";
|
|
2
|
+
export { CreateOuiDraggableOptions, DRAGGABLE_ATTRIBUTE_MOVABLE, DRAGGABLE_ATTRIBUTE_SORTABLE, DRAGGABLE_KEY_ESCAPE, DRAGGABLE_SELECTOR, DRAGGABLE_SELECTOR_MOVABLE_HANDLE, DRAGGABLE_SELECTOR_SORTABLE_HANDLE, DRAGGABLE_SELECTOR_SORTABLE_ITEM, DRAGGABLE_SYMBOL, OuiDragBegin, OuiDragCancel, OuiDragEnd, OuiDragMove, OuiDragMovePosition, OuiDraggable, OuiDraggableBound, OuiDraggableDirection, OuiDraggableGlobals, OuiDraggableGlobalsElement, OuiDraggableInstances, OuiDraggableItem, OuiDraggableOptions, OuiDraggableOptionsContainer, OuiDraggableOptionsContainerOnDestroy, OuiDraggableOptionsContainerOnInitialize, OuiDraggableOptionsDirection, OuiDraggableOptionsDirectionOnAfter, OuiDraggableOptionsDrag, OuiDraggableOptionsPosition, OuiDraggableOptionsPositionGetOffset, OuiDraggableOptionsPositionGetOriginal, OuiDraggableState, OuiDraggableStates, draggableContainers, draggableGlobals, draggableHorizontals, draggableProperties, draggableStyleToggler, draggableStyles, draggableVerticals };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { toggleStyles } from "@oscarpalmer/toretto/style";
|
|
2
|
+
//#region src/js/internal/draggable/draggable.model.ts
|
|
3
|
+
const DRAGGABLE_ATTRIBUTE_MOVABLE = "oui-movable";
|
|
4
|
+
const DRAGGABLE_ATTRIBUTE_SORTABLE = "oui-sortable";
|
|
5
|
+
const DRAGGABLE_KEY_ESCAPE = "Escape";
|
|
6
|
+
const DRAGGABLE_SELECTOR = `[${DRAGGABLE_ATTRIBUTE_MOVABLE}], [${DRAGGABLE_ATTRIBUTE_SORTABLE}]`;
|
|
7
|
+
const DRAGGABLE_SELECTOR_MOVABLE_HANDLE = `[${DRAGGABLE_ATTRIBUTE_MOVABLE}-handle]`;
|
|
8
|
+
const DRAGGABLE_SELECTOR_SORTABLE_HANDLE = `[${DRAGGABLE_ATTRIBUTE_SORTABLE}-handle]`;
|
|
9
|
+
const DRAGGABLE_SELECTOR_SORTABLE_ITEM = `[${DRAGGABLE_ATTRIBUTE_SORTABLE}] > *`;
|
|
10
|
+
const DRAGGABLE_SYMBOL = Symbol(DRAGGABLE_ATTRIBUTE_MOVABLE);
|
|
11
|
+
const draggableContainers = /* @__PURE__ */ new Set([
|
|
12
|
+
"body",
|
|
13
|
+
"document",
|
|
14
|
+
"window"
|
|
15
|
+
]);
|
|
16
|
+
const draggableHorizontals = /* @__PURE__ */ new Set(["horizontal", "x"]);
|
|
17
|
+
const draggableProperties = {
|
|
18
|
+
movable: "sortable",
|
|
19
|
+
sortable: "movable"
|
|
20
|
+
};
|
|
21
|
+
const draggableGlobals = {
|
|
22
|
+
container: void 0,
|
|
23
|
+
element: void 0,
|
|
24
|
+
instances: /* @__PURE__ */ new WeakMap(),
|
|
25
|
+
offset: void 0,
|
|
26
|
+
original: void 0,
|
|
27
|
+
states: /* @__PURE__ */ new WeakMap()
|
|
28
|
+
};
|
|
29
|
+
const draggableStyles = {
|
|
30
|
+
touchAction: "none",
|
|
31
|
+
userSelect: "none",
|
|
32
|
+
webkitUserSelect: "none"
|
|
33
|
+
};
|
|
34
|
+
const draggableStyleToggler = toggleStyles(document.body, draggableStyles);
|
|
35
|
+
const draggableVerticals = /* @__PURE__ */ new Set(["vertical", "y"]);
|
|
36
|
+
//#endregion
|
|
37
|
+
export { DRAGGABLE_ATTRIBUTE_MOVABLE, DRAGGABLE_ATTRIBUTE_SORTABLE, DRAGGABLE_KEY_ESCAPE, DRAGGABLE_SELECTOR, DRAGGABLE_SELECTOR_MOVABLE_HANDLE, DRAGGABLE_SELECTOR_SORTABLE_HANDLE, DRAGGABLE_SELECTOR_SORTABLE_ITEM, DRAGGABLE_SYMBOL, draggableContainers, draggableGlobals, draggableHorizontals, draggableProperties, draggableStyleToggler, draggableStyles, draggableVerticals };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { D as OuiDraggable, G as OuiDraggableStates, M as OuiDraggableInstances, O as OuiDraggableBound, P as OuiDraggableOptions, W as OuiDraggableState, p as CreateOuiDraggableOptions } from "../../movable.model-D9nnPWKk.mjs";
|
|
2
|
+
import { PlainObject } from "@oscarpalmer/atoms/models";
|
|
3
|
+
//#region src/js/internal/draggable/index.d.ts
|
|
4
|
+
export declare function addDraggable<Property extends keyof OuiDraggableInstances, Instance extends OuiDraggableInstances[Property]>(this: OuiDraggableBound<Property, Instance>, element: Element, options?: CreateOuiDraggableOptions): Instance;
|
|
5
|
+
export declare function destroyDraggable<ExtraState extends PlainObject>(draggable: OuiDraggable<ExtraState>): void;
|
|
6
|
+
export declare function getDraggableStates(element: Element): OuiDraggableStates | undefined;
|
|
7
|
+
export declare function getDraggableElement<ExtraState extends PlainObject>(this: OuiDraggable<ExtraState>): Element;
|
|
8
|
+
export declare function initializeDraggable<ExtraState extends PlainObject>(draggable: OuiDraggable<ExtraState>, name: keyof OuiDraggableStates, event: string, attribute: string, element: Element, options: OuiDraggableOptions<ExtraState>, extras: ExtraState): OuiDraggableState<ExtraState>;
|
|
9
|
+
export declare function removeDraggable<Property extends keyof OuiDraggableInstances, Instance extends OuiDraggableInstances[Property]>(this: {
|
|
10
|
+
constructor: new (element: Element) => Instance;
|
|
11
|
+
property: Property;
|
|
12
|
+
}, element: Element): void;
|
|
13
|
+
//#endregion
|