@oscarpalmer/oui 0.38.0 → 0.40.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/badge.css +11 -8
- package/dist/css/button.css +106 -14
- package/dist/css/color-picker.css +555 -73
- package/dist/css/color.css +86 -86
- package/dist/css/combobox.css +98 -4
- package/dist/css/content.css +7 -6
- package/dist/css/floatable.css +1 -3
- package/dist/css/form.css +99 -6
- package/dist/css/icon.css +99 -0
- package/dist/css/listbox.css +3 -0
- package/dist/css/message.css +4 -3
- package/dist/css/mixins/button.mixins.css +1 -0
- package/dist/css/reset.css +1 -1
- package/dist/css/tabs.css +95 -3
- package/dist/css/typography.css +90 -0
- package/dist/js/color-picker/color-picker.constants.d.mts +2 -0
- package/dist/js/color-picker/color-picker.constants.mjs +60 -0
- package/dist/js/color-picker/color-picker.dom.d.mts +8 -0
- package/dist/js/color-picker/color-picker.dom.mjs +191 -0
- package/dist/js/color-picker/color-picker.event.d.mts +9 -0
- package/dist/js/color-picker/color-picker.event.mjs +2 -0
- package/dist/js/color-picker/color-picker.form.d.mts +5 -0
- package/dist/js/color-picker/color-picker.form.mjs +27 -0
- package/dist/js/color-picker/color-picker.misc.d.mts +2 -0
- package/dist/js/color-picker/color-picker.misc.mjs +2 -0
- package/dist/js/color-picker/color-picker.model.d.mts +2 -0
- package/dist/js/color-picker/color-picker.model.mjs +24 -0
- package/dist/js/color-picker/color-picker.output.d.mts +8 -0
- package/dist/js/color-picker/color-picker.output.mjs +235 -0
- package/dist/js/color-picker/color-picker.state.d.mts +8 -0
- package/dist/js/color-picker/color-picker.state.mjs +2 -0
- package/dist/js/{color-picker.d.mts → color-picker/index.d.mts} +10 -43
- package/dist/js/color-picker/index.mjs +305 -0
- package/dist/js/color-picker.constants-D1mxw_Le.d.mts +179 -0
- package/dist/js/color-picker.event-Cksj5TvS.mjs +500 -0
- package/dist/js/color-picker.misc-CtsXGrOe.d.mts +27 -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 +26 -0
- package/dist/js/combobox/{dom.combobox.mjs → combobox.dom.mjs} +44 -37
- package/dist/js/combobox/combobox.event.d.mts +22 -0
- 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/{misc.combobox.mjs → combobox.misc.mjs} +1 -1
- package/dist/js/combobox/combobox.model.d.mts +2 -0
- package/dist/js/combobox/combobox.state.d.mts +10 -0
- package/dist/js/combobox/combobox.state.mjs +2 -0
- package/dist/js/combobox/index.d.mts +163 -2
- package/dist/js/combobox/index.mjs +53 -52
- package/dist/js/combobox.constants-DZVkMP5g.d.mts +19 -0
- package/dist/js/combobox.misc-C1tPZZDi.d.mts +22 -0
- package/dist/js/{combobox/models.combobox.d.mts → combobox.model-oDV06XCN.d.mts} +6 -6
- package/dist/js/{state.combobox-Qm3FWzYW.mjs → combobox.state-BfJ3Hxg8.mjs} +96 -82
- package/dist/js/constants.listbox-C5Ap6Ag_.d.mts +9 -0
- 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-DX2mndMh.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-MeTyXjFn.d.mts +17 -0
- package/dist/js/floatable.model-DXsQgoU7.d.mts +62 -0
- package/dist/js/focus-trap/focus-trap.embedded.d.mts +2 -2
- package/dist/js/focus-trap/focus-trap.embedded.mjs +112 -134
- 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-DIU05m1z.d.mts +13 -0
- package/dist/js/{focus-trap.embedded-DR8NpZfr.d.mts → focus-trap.model-BeX6UYlw.d.mts} +16 -18
- package/dist/js/index.d.mts +26 -14
- package/dist/js/index.mjs +18 -15
- package/dist/js/internal/attributable.d.mts +2 -3
- 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.mjs → draggable/index.mjs} +83 -114
- package/dist/js/internal/listbox/listbox.constants.d.mts +7 -10
- package/dist/js/internal/listbox/listbox.constants.mjs +15 -16
- package/dist/js/internal/listbox/listbox.data.d.mts +9 -10
- package/dist/js/internal/listbox/listbox.data.mjs +1 -1
- package/dist/js/internal/listbox/listbox.dom.d.mts +19 -20
- package/dist/js/internal/listbox/listbox.dom.mjs +1 -1
- package/dist/js/internal/listbox/listbox.event.d.mts +3 -4
- package/dist/js/internal/listbox/listbox.event.mjs +23 -20
- package/dist/js/internal/listbox/listbox.form.d.mts +4 -5
- package/dist/js/internal/listbox/listbox.form.mjs +15 -12
- package/dist/js/internal/listbox/listbox.misc.d.mts +10 -11
- package/dist/js/internal/listbox/listbox.misc.mjs +1 -1
- package/dist/js/internal/listbox/listbox.model.d.mts +2 -2
- package/dist/js/internal/listbox/listbox.state.d.mts +5 -6
- package/dist/js/internal/listbox/listbox.state.mjs +19 -20
- package/dist/js/internal/misc.d.mts +5 -4
- package/dist/js/internal/misc.mjs +7 -1
- 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/l10n/index.d.mts +9 -0
- package/dist/js/{l10n.mjs → l10n/index.mjs} +50 -23
- package/dist/js/l10n/l10n.model.d.mts +2 -0
- package/dist/js/l10n/l10n.model.mjs +9 -0
- package/dist/js/l10n.model-D6a9frgl.d.mts +26 -0
- package/dist/js/listbox/constants.listbox.d.mts +2 -2
- package/dist/js/listbox/constants.listbox.mjs +10 -14
- package/dist/js/listbox/event.listbox.d.mts +6 -7
- package/dist/js/listbox/event.listbox.mjs +47 -1
- package/dist/js/listbox/index.d.mts +8 -6
- package/dist/js/listbox/index.mjs +47 -49
- package/dist/js/listbox/misc.listbox.d.mts +1 -1
- package/dist/js/listbox/misc.listbox.mjs +1 -1
- package/dist/js/listbox/state.listbox.d.mts +8 -10
- package/dist/js/listbox/state.listbox.mjs +2 -2
- package/dist/js/{listbox.data-C7CRa5Ya.mjs → listbox.data-BQyZGKgr.mjs} +83 -66
- package/dist/js/{listbox.model-CRReGOmu.d.mts → listbox.model-CuBOj4qe.d.mts} +15 -11
- package/dist/js/menu/index.mjs +167 -0
- package/dist/js/menu/menu.model.d.mts +33 -0
- package/dist/js/menu/menu.model.mjs +15 -0
- package/dist/js/{misc.listbox-Cyz2CRDy.mjs → misc.listbox-CjfBUbHD.mjs} +27 -69
- package/dist/js/{misc.listbox-gnoJhrTr.d.mts → misc.listbox-CtoGvXQo.d.mts} +2 -2
- package/dist/js/movable/movable.embedded.d.mts +2 -2
- package/dist/js/movable/movable.embedded.mjs +60 -72
- 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-DoyXLegc.d.mts +11 -0
- package/dist/js/movable.model-BHaK_mKw.d.mts +186 -0
- package/dist/js/navigable.model-BPOM8DZk.d.mts +44 -0
- package/dist/js/popover/index.d.mts +12 -0
- package/dist/js/{popover.mjs → popover/index.mjs} +40 -50
- package/dist/js/popover/popover.model.d.mts +2 -0
- package/dist/js/popover/popover.model.mjs +12 -0
- package/dist/js/popover.model-ubKNG612.d.mts +38 -0
- package/dist/js/resizable/resizable.embedded.d.mts +2 -2
- package/dist/js/resizable/resizable.embedded.mjs +44 -59
- 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-Bf1qBUdt.d.mts +11 -0
- package/dist/js/resizable.model-BwzJcTVJ.d.mts +46 -0
- package/dist/js/sortable/sortable.embedded.d.mts +2 -2
- package/dist/js/sortable/sortable.embedded.mjs +69 -82
- 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-DzBKAwSG.d.mts +11 -0
- package/dist/js/{splitter.d.mts → splitter/index.d.mts} +8 -7
- package/dist/js/splitter/index.mjs +284 -0
- package/dist/js/splitter/splitter.model.d.mts +2 -0
- package/dist/js/splitter/splitter.model.mjs +37 -0
- package/dist/js/splitter.model-DOLNjLVS.d.mts +57 -0
- package/dist/js/{tabs.d.mts → tabs/index.d.mts} +7 -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-DRBX_JtI.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} +60 -85
- package/dist/js/tooltip/tooltip.model.d.mts +2 -0
- package/dist/js/tooltip/tooltip.model.mjs +15 -0
- package/dist/js/tooltip.model-DRkY_BsL.d.mts +37 -0
- package/package.json +43 -37
- package/dist/js/color-picker.mjs +0 -924
- package/dist/js/combobox/constants.combobox.d.mts +0 -2
- package/dist/js/combobox/dom.combobox.d.mts +0 -27
- package/dist/js/combobox/event.combobox.d.mts +0 -23
- package/dist/js/combobox/misc.combobox.d.mts +0 -2
- package/dist/js/combobox/state.combobox.d.mts +0 -12
- package/dist/js/combobox/state.combobox.mjs +0 -2
- package/dist/js/constants.combobox-DmRAMC64.d.mts +0 -26
- package/dist/js/constants.listbox-DRsXUxd3.d.mts +0 -14
- package/dist/js/dialog.d.mts +0 -47
- package/dist/js/dialog.mjs +0 -131
- package/dist/js/draggable-a6w0J1OD.d.mts +0 -154
- package/dist/js/floatable.embedded-Bct4U5Dm.d.mts +0 -69
- package/dist/js/index-DJdFlTLm.d.mts +0 -177
- package/dist/js/internal/draggable.d.mts +0 -2
- package/dist/js/internal/navigable.d.mts +0 -37
- 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/menu.mjs +0 -172
- package/dist/js/popover.d.mts +0 -38
- package/dist/js/resizable.embedded-3qoR0Bjm.d.mts +0 -34
- package/dist/js/splitter.mjs +0 -322
- package/dist/js/toolbar.mjs +0 -31
- package/dist/js/tooltip.d.mts +0 -45
- package/src/css/a11y.scss +0 -13
- package/src/css/badge.scss +0 -62
- package/src/css/button.scss +0 -50
- package/src/css/color-picker.scss +0 -344
- package/src/css/color.scss +0 -113
- package/src/css/combobox.scss +0 -255
- package/src/css/content.scss +0 -181
- package/src/css/flex.scss +0 -107
- package/src/css/floatable.scss +0 -155
- package/src/css/form.scss +0 -575
- package/src/css/listbox.scss +0 -121
- package/src/css/message.scss +0 -74
- package/src/css/mixins/badge.mixins.scss +0 -53
- package/src/css/mixins/button.mixins.scss +0 -112
- package/src/css/mixins/input.mixins.scss +0 -114
- package/src/css/mixins/message.mixins.scss +0 -41
- package/src/css/mixins/misc.mixins.scss +0 -48
- package/src/css/mixins/shadow.mixins.scss +0 -57
- package/src/css/reset.scss +0 -392
- package/src/css/splitter.scss +0 -89
- package/src/css/table.scss +0 -107
- package/src/css/tabs.scss +0 -74
- package/src/js/color-picker.ts +0 -1653
- package/src/js/combobox/constants.combobox.ts +0 -83
- package/src/js/combobox/dom.combobox.ts +0 -411
- package/src/js/combobox/event.combobox.ts +0 -365
- package/src/js/combobox/index.ts +0 -382
- package/src/js/combobox/misc.combobox.ts +0 -104
- package/src/js/combobox/models.combobox.ts +0 -54
- package/src/js/combobox/state.combobox.ts +0 -246
- package/src/js/dialog.ts +0 -255
- package/src/js/floatable/floatable.embedded.ts +0 -336
- package/src/js/floatable/floatable.standalone.ts +0 -6
- package/src/js/focus-trap/focus-trap.embedded.ts +0 -411
- package/src/js/focus-trap/focus-trap.standalone.ts +0 -1
- package/src/js/index.ts +0 -16
- package/src/js/internal/attributable.ts +0 -73
- package/src/js/internal/draggable.ts +0 -657
- package/src/js/internal/listbox/listbox.constants.ts +0 -25
- package/src/js/internal/listbox/listbox.data.ts +0 -287
- package/src/js/internal/listbox/listbox.dom.ts +0 -446
- package/src/js/internal/listbox/listbox.event.ts +0 -129
- package/src/js/internal/listbox/listbox.form.ts +0 -125
- package/src/js/internal/listbox/listbox.misc.ts +0 -135
- package/src/js/internal/listbox/listbox.model.ts +0 -169
- package/src/js/internal/listbox/listbox.state.ts +0 -82
- package/src/js/internal/misc.ts +0 -27
- package/src/js/internal/navigable.ts +0 -317
- package/src/js/l10n.ts +0 -192
- package/src/js/listbox/constants.listbox.ts +0 -61
- package/src/js/listbox/event.listbox.ts +0 -106
- package/src/js/listbox/index.ts +0 -364
- package/src/js/listbox/misc.listbox.ts +0 -70
- package/src/js/listbox/state.listbox.ts +0 -194
- package/src/js/menu.ts +0 -348
- package/src/js/movable/movable.embedded.ts +0 -318
- package/src/js/movable/movable.standalone.ts +0 -2
- package/src/js/popover.ts +0 -229
- package/src/js/resizable/resizable.embedded.ts +0 -413
- package/src/js/resizable/resizable.standalone.ts +0 -5
- package/src/js/sortable/sortable.embedded.ts +0 -527
- package/src/js/sortable/sortable.standalone.ts +0 -2
- package/src/js/splitter.ts +0 -583
- package/src/js/tabs.ts +0 -441
- package/src/js/toolbar.ts +0 -63
- package/src/js/tooltip.ts +0 -367
- /package/dist/js/combobox/{models.combobox.mjs → combobox.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,26 +1,44 @@
|
|
|
1
|
+
import { L10N_MESSAGE_ITEM_CREATE, L10N_MESSAGE_ITEM_UPDATE_KEY, L10N_MESSAGE_ITEM_UPDATE_VALUE, L10N_MESSAGE_OBJECT_CREATE, L10N_MESSAGE_OBJECT_UPDATE, L10N_SYMBOL } from "./l10n.model.mjs";
|
|
2
|
+
import { isPlainObject } from "@oscarpalmer/atoms/is";
|
|
1
3
|
import { getString } from "@oscarpalmer/atoms/string";
|
|
2
|
-
//#region src/js/l10n.ts
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
//#region src/js/l10n/index.ts
|
|
5
|
+
function OuiLocalizations(defaults) {
|
|
6
|
+
this[L10N_SYMBOL] = {
|
|
7
|
+
defaults,
|
|
8
|
+
keys: new Set(Object.keys(defaults)),
|
|
9
|
+
values: {}
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
OuiLocalizations.prototype.get = getLocalizationValue;
|
|
13
|
+
OuiLocalizations.prototype.set = setLocalizationValues;
|
|
14
|
+
Object.defineProperties(OuiLocalizations.prototype, {
|
|
15
|
+
defaults: {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: getDefaults
|
|
18
|
+
},
|
|
19
|
+
keys: {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: getKeys
|
|
16
22
|
}
|
|
17
|
-
};
|
|
23
|
+
});
|
|
24
|
+
function createLocalizations(defaults) {
|
|
25
|
+
if (!isPlainObject(defaults) || Object.keys(defaults).length === 0) throw new Error(L10N_MESSAGE_OBJECT_CREATE);
|
|
26
|
+
if (!Object.values(defaults).every(isValidLocalization)) throw new Error(L10N_MESSAGE_ITEM_CREATE);
|
|
27
|
+
return new OuiLocalizations(defaults);
|
|
28
|
+
}
|
|
29
|
+
function getDefaults() {
|
|
30
|
+
return { ...this[L10N_SYMBOL].defaults };
|
|
31
|
+
}
|
|
32
|
+
function getKeys() {
|
|
33
|
+
return [...this[L10N_SYMBOL].keys];
|
|
34
|
+
}
|
|
18
35
|
function getLanguage(element) {
|
|
19
36
|
return (element.closest("[lang]")?.getAttribute("lang") ?? document.documentElement.lang).toLowerCase();
|
|
20
37
|
}
|
|
21
38
|
function getLocalization(localizations, element, key, value) {
|
|
22
39
|
const language = getLanguage(element);
|
|
23
|
-
const
|
|
40
|
+
const state = localizations[L10N_SYMBOL];
|
|
41
|
+
const values = [value, state.values];
|
|
24
42
|
const { length } = values;
|
|
25
43
|
let localization;
|
|
26
44
|
let shortLanguage;
|
|
@@ -33,10 +51,13 @@ function getLocalization(localizations, element, key, value) {
|
|
|
33
51
|
localization = value?.[shortLanguage]?.[key];
|
|
34
52
|
if (localization != null) break;
|
|
35
53
|
}
|
|
36
|
-
return localization ??
|
|
54
|
+
return localization ?? state.defaults[key];
|
|
37
55
|
}
|
|
38
|
-
function
|
|
39
|
-
return
|
|
56
|
+
function getLocalizationValue(element, key, localizations) {
|
|
57
|
+
return getLocalization(this, element, key, localizations);
|
|
58
|
+
}
|
|
59
|
+
function isValidLocalization(value) {
|
|
60
|
+
return typeof value === "string" || typeof value === "function";
|
|
40
61
|
}
|
|
41
62
|
function localize(localization, data, parameters) {
|
|
42
63
|
if (typeof localization === "function") return localization(...parameters);
|
|
@@ -50,9 +71,13 @@ function localize(localization, data, parameters) {
|
|
|
50
71
|
}
|
|
51
72
|
return localized;
|
|
52
73
|
}
|
|
74
|
+
function setLocalizationValues(first, second) {
|
|
75
|
+
updateLocalizations(this, typeof first === "string" ? { [first]: second } : first, this[L10N_SYMBOL].values);
|
|
76
|
+
}
|
|
53
77
|
function updateLocalizations(instance, values, destination, onAfter) {
|
|
54
|
-
if (typeof values !== "object" || values == null)
|
|
55
|
-
const
|
|
78
|
+
if (typeof values !== "object" || values == null) throw new Error(L10N_MESSAGE_OBJECT_UPDATE);
|
|
79
|
+
const state = instance[L10N_SYMBOL];
|
|
80
|
+
const localizations = destination ?? state.values;
|
|
56
81
|
const languages = Object.keys(values);
|
|
57
82
|
const languagesLength = languages.length;
|
|
58
83
|
let updated = false;
|
|
@@ -68,7 +93,9 @@ function updateLocalizations(instance, values, destination, onAfter) {
|
|
|
68
93
|
const key = keys[keysIndex];
|
|
69
94
|
const keyValue = languageValue[key];
|
|
70
95
|
const normalizedKey = key.toLowerCase();
|
|
71
|
-
if (
|
|
96
|
+
if (!state.keys.has(normalizedKey)) throw new Error(L10N_MESSAGE_ITEM_UPDATE_KEY);
|
|
97
|
+
if (!isValidLocalization(keyValue)) throw new Error(L10N_MESSAGE_ITEM_UPDATE_VALUE);
|
|
98
|
+
if (state.keys.has(normalizedKey) && isValidLocalization(keyValue)) {
|
|
72
99
|
updated = true;
|
|
73
100
|
localizations[normalizedLanguage][normalizedKey] = keyValue;
|
|
74
101
|
}
|
|
@@ -77,4 +104,4 @@ function updateLocalizations(instance, values, destination, onAfter) {
|
|
|
77
104
|
if (updated && typeof onAfter === "function") onAfter();
|
|
78
105
|
}
|
|
79
106
|
//#endregion
|
|
80
|
-
export {
|
|
107
|
+
export { createLocalizations, getLanguage, getLocalization, localize, updateLocalizations };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as L10N_MESSAGE_OBJECT_UPDATE, c as OuiLocalizations, i as L10N_MESSAGE_OBJECT_CREATE, l as OuiLocalizationsState, n as L10N_MESSAGE_ITEM_UPDATE_KEY, o as L10N_SYMBOL, r as L10N_MESSAGE_ITEM_UPDATE_VALUE, s as OuiLocalizationParameters, t as L10N_MESSAGE_ITEM_CREATE, u as OuiLocalizationsValues } from "../l10n.model-D6a9frgl.mjs";
|
|
2
|
+
export { L10N_MESSAGE_ITEM_CREATE, L10N_MESSAGE_ITEM_UPDATE_KEY, L10N_MESSAGE_ITEM_UPDATE_VALUE, L10N_MESSAGE_OBJECT_CREATE, L10N_MESSAGE_OBJECT_UPDATE, L10N_SYMBOL, OuiLocalizationParameters, OuiLocalizations, OuiLocalizationsState, OuiLocalizationsValues };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/js/l10n/l10n.model.ts
|
|
2
|
+
const L10N_MESSAGE_ITEM_CREATE = "Localization item must be a string or a function.";
|
|
3
|
+
const L10N_MESSAGE_ITEM_UPDATE_KEY = "Localization item key must be known.";
|
|
4
|
+
const L10N_MESSAGE_ITEM_UPDATE_VALUE = "Localization item value must be a string or a function.";
|
|
5
|
+
const L10N_MESSAGE_OBJECT_CREATE = "Default localizations must be a non-empty plain object.";
|
|
6
|
+
const L10N_MESSAGE_OBJECT_UPDATE = "Localizations update object must be a plain object.";
|
|
7
|
+
const L10N_SYMBOL = Symbol("l10n");
|
|
8
|
+
//#endregion
|
|
9
|
+
export { L10N_MESSAGE_ITEM_CREATE, L10N_MESSAGE_ITEM_UPDATE_KEY, L10N_MESSAGE_ITEM_UPDATE_VALUE, L10N_MESSAGE_OBJECT_CREATE, L10N_MESSAGE_OBJECT_UPDATE, L10N_SYMBOL };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { GenericCallback } from "@oscarpalmer/atoms/models";
|
|
2
|
+
//#region src/js/l10n/l10n.model.d.ts
|
|
3
|
+
type OuiLocalizationParameters<Localization> = Localization extends GenericCallback ? Parameters<Localization> : never;
|
|
4
|
+
type OuiLocalizations<Localizations extends OuiLocalizationsValues> = {
|
|
5
|
+
[L10N_SYMBOL]: OuiLocalizationsState<Localizations>;
|
|
6
|
+
get defaults(): Localizations;
|
|
7
|
+
get keys(): Set<keyof Localizations>;
|
|
8
|
+
get values(): Record<string, Partial<Localizations>>;
|
|
9
|
+
get<Key extends keyof Localizations>(element: Element, key: Key, localizations: Record<string, Partial<Localizations>>): string | GenericCallback;
|
|
10
|
+
set(language: string, localizations: Partial<Localizations>): void;
|
|
11
|
+
set(localizations: Record<string, Partial<Localizations>>): void;
|
|
12
|
+
};
|
|
13
|
+
type OuiLocalizationsState<Localizations extends OuiLocalizationsValues> = {
|
|
14
|
+
readonly defaults: Localizations;
|
|
15
|
+
readonly keys: Set<string>;
|
|
16
|
+
readonly values: Record<string, Partial<Localizations>>;
|
|
17
|
+
};
|
|
18
|
+
type OuiLocalizationsValues = Record<string, string | GenericCallback>;
|
|
19
|
+
declare const L10N_MESSAGE_ITEM_CREATE = "Localization item must be a string or a function.";
|
|
20
|
+
declare const L10N_MESSAGE_ITEM_UPDATE_KEY = "Localization item key must be known.";
|
|
21
|
+
declare const L10N_MESSAGE_ITEM_UPDATE_VALUE = "Localization item value must be a string or a function.";
|
|
22
|
+
declare const L10N_MESSAGE_OBJECT_CREATE = "Default localizations must be a non-empty plain object.";
|
|
23
|
+
declare const L10N_MESSAGE_OBJECT_UPDATE = "Localizations update object must be a plain object.";
|
|
24
|
+
declare const L10N_SYMBOL: unique symbol;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { L10N_MESSAGE_OBJECT_UPDATE as a, OuiLocalizations as c, L10N_MESSAGE_OBJECT_CREATE as i, OuiLocalizationsState as l, L10N_MESSAGE_ITEM_UPDATE_KEY as n, L10N_SYMBOL as o, L10N_MESSAGE_ITEM_UPDATE_VALUE as r, OuiLocalizationParameters as s, L10N_MESSAGE_ITEM_CREATE as t, OuiLocalizationsValues as u };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
export {
|
|
1
|
+
import { a as listboxSelectors, i as listboxMessages, n as LISTBOX_TAGNAME, r as listboxAttributes, t as LISTBOX_SYMBOL } from "../constants.listbox-C5Ap6Ag_.mjs";
|
|
2
|
+
export { LISTBOX_SYMBOL, LISTBOX_TAGNAME, listboxAttributes, listboxMessages, listboxSelectors };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
//#region src/js/listbox/constants.listbox.ts
|
|
2
2
|
const LISTBOX_TAGNAME = "oui-listbox";
|
|
3
|
+
const LISTBOX_SYMBOL = Symbol(LISTBOX_TAGNAME);
|
|
3
4
|
const attributeContent = `${LISTBOX_TAGNAME}-content`;
|
|
4
5
|
const attributeFilter = `${LISTBOX_TAGNAME}-filter`;
|
|
5
6
|
const attributeFilterInput = `${attributeFilter}-input`;
|
|
@@ -10,13 +11,8 @@ const attributeList = `${LISTBOX_TAGNAME}-list`;
|
|
|
10
11
|
const attributeListEmpty = `${attributeList}-empty`;
|
|
11
12
|
const attributeMessage = `${LISTBOX_TAGNAME}-message`;
|
|
12
13
|
const attributeOption = `${LISTBOX_TAGNAME}-option`;
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
const messageSelect = `<${LISTBOX_TAGNAME}> must contain a valid <select> element`;
|
|
16
|
-
const selectorFilter = `[${attributeFilterInput}]`;
|
|
17
|
-
const selectorOption = `[${attributeOption}]`;
|
|
18
|
-
const LISTBOX_ATTRIBUTES = {
|
|
19
|
-
active: attributeOptionActive,
|
|
14
|
+
const listboxAttributes = {
|
|
15
|
+
active: `${LISTBOX_TAGNAME}-option-active`,
|
|
20
16
|
content: attributeContent,
|
|
21
17
|
empty: attributeListEmpty,
|
|
22
18
|
filter: attributeFilter,
|
|
@@ -28,13 +24,13 @@ const LISTBOX_ATTRIBUTES = {
|
|
|
28
24
|
message: attributeMessage,
|
|
29
25
|
option: attributeOption
|
|
30
26
|
};
|
|
31
|
-
const
|
|
32
|
-
label:
|
|
33
|
-
select:
|
|
27
|
+
const listboxMessages = {
|
|
28
|
+
label: `<${LISTBOX_TAGNAME}> must contain a <label> element for the <select> element`,
|
|
29
|
+
select: `<${LISTBOX_TAGNAME}> must contain a valid <select> element`
|
|
34
30
|
};
|
|
35
|
-
const
|
|
36
|
-
filter:
|
|
37
|
-
option:
|
|
31
|
+
const listboxSelectors = {
|
|
32
|
+
filter: `[${attributeFilterInput}]`,
|
|
33
|
+
option: `[${attributeOption}]`
|
|
38
34
|
};
|
|
39
35
|
//#endregion
|
|
40
|
-
export {
|
|
36
|
+
export { LISTBOX_SYMBOL, LISTBOX_TAGNAME, listboxAttributes, listboxMessages, listboxSelectors };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { c as OuiListboxPreview, l as OuiListboxState } from "../listbox.model-
|
|
1
|
+
import { c as OuiListboxPreview, l as OuiListboxState } from "../listbox.model-CuBOj4qe.mjs";
|
|
2
2
|
//#region src/js/listbox/event.listbox.d.ts
|
|
3
|
-
declare function onListboxEnter(state: OuiListboxState): void;
|
|
4
|
-
declare function onListboxFilter(preview: OuiListboxPreview, state: OuiListboxState, _: boolean, active?: HTMLElement): void;
|
|
5
|
-
declare function onListboxNavigation(preview: OuiListboxPreview, state: OuiListboxState, active?: HTMLElement): void;
|
|
6
|
-
declare function onListboxToggle(state: OuiListboxState): void;
|
|
7
|
-
//#endregion
|
|
8
|
-
export { onListboxEnter, onListboxFilter, onListboxNavigation, onListboxToggle };
|
|
3
|
+
export declare function onListboxEnter(state: OuiListboxState): void;
|
|
4
|
+
export declare function onListboxFilter(preview: OuiListboxPreview, state: OuiListboxState, _: boolean, active?: HTMLElement): void;
|
|
5
|
+
export declare function onListboxNavigation(preview: OuiListboxPreview, state: OuiListboxState, active?: HTMLElement): void;
|
|
6
|
+
export declare function onListboxToggle(state: OuiListboxState): void;
|
|
7
|
+
//#endregion
|
|
@@ -1,2 +1,48 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as filterListbox, s as toggleListboxOption, t as applyListboxSelection, y as updateListboxPreview } from "../listbox.data-BQyZGKgr.mjs";
|
|
2
|
+
import { processListboxKeydown } from "../internal/listbox/listbox.event.mjs";
|
|
3
|
+
import { LISTBOX_SYMBOL, LISTBOX_TAGNAME, listboxSelectors } from "./constants.listbox.mjs";
|
|
4
|
+
import { on } from "@oscarpalmer/toretto/event";
|
|
5
|
+
import { findAncestor } from "@oscarpalmer/toretto/find";
|
|
6
|
+
//#region src/js/listbox/event.listbox.ts
|
|
7
|
+
function onListboxClick(event) {
|
|
8
|
+
const listbox = findAncestor(event, LISTBOX_TAGNAME);
|
|
9
|
+
const state = listbox?.[LISTBOX_SYMBOL];
|
|
10
|
+
if (listbox == null || state == null) return;
|
|
11
|
+
const option = findAncestor(event, listboxSelectors.option);
|
|
12
|
+
if (option == null) return;
|
|
13
|
+
const { disabled, filter, readonly } = state.component;
|
|
14
|
+
if (disabled) filter.element.focus();
|
|
15
|
+
else if (readonly) updateListboxPreview("none", state, option, false);
|
|
16
|
+
else toggleListboxOption(state, option);
|
|
17
|
+
}
|
|
18
|
+
function onListboxEnter(state) {
|
|
19
|
+
if (!state.component.disabled && !state.component.readonly) toggleListboxOption(state, state.component.active);
|
|
20
|
+
}
|
|
21
|
+
function onListboxFilter(preview, state, _, active) {
|
|
22
|
+
updateListboxPreview(preview, state, active);
|
|
23
|
+
}
|
|
24
|
+
function onListboxInput(event) {
|
|
25
|
+
const state = findAncestor(event, LISTBOX_TAGNAME)?.[LISTBOX_SYMBOL];
|
|
26
|
+
if (state?.component.filter.element === event.target) filterListbox(event.inputType, state);
|
|
27
|
+
}
|
|
28
|
+
function onListboxKeydown(event) {
|
|
29
|
+
const state = findAncestor(event, LISTBOX_TAGNAME)?.[LISTBOX_SYMBOL];
|
|
30
|
+
if (state?.component.filter.element === event.target) processListboxKeydown(event, state);
|
|
31
|
+
}
|
|
32
|
+
function onListboxNavigation(preview, state, active) {
|
|
33
|
+
if (state.component.multiple || state.component.readonly) updateListboxPreview(preview, state, active);
|
|
34
|
+
else applyListboxSelection({
|
|
35
|
+
state,
|
|
36
|
+
option: active,
|
|
37
|
+
added: true,
|
|
38
|
+
selected: active == null ? [] : [active]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function onListboxToggle(state) {
|
|
42
|
+
state.component.filter.element.focus();
|
|
43
|
+
}
|
|
44
|
+
on(document, "click", onListboxClick);
|
|
45
|
+
on(document, "input", onListboxInput);
|
|
46
|
+
on(document, "keydown", onListboxKeydown, { passive: false });
|
|
47
|
+
//#endregion
|
|
2
48
|
export { onListboxEnter, onListboxFilter, onListboxNavigation, onListboxToggle };
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { o as OuiListboxLocalizations } from "../listbox.model-
|
|
2
|
-
import {
|
|
3
|
-
import { n as setListboxLocalizations } from "../misc.listbox-
|
|
1
|
+
import { l as OuiListboxState, o as OuiListboxLocalizations } from "../listbox.model-CuBOj4qe.mjs";
|
|
2
|
+
import { n as LISTBOX_TAGNAME, t as LISTBOX_SYMBOL } from "../constants.listbox-C5Ap6Ag_.mjs";
|
|
3
|
+
import { n as setListboxLocalizations } from "../misc.listbox-CtoGvXQo.mjs";
|
|
4
4
|
//#region src/js/listbox/index.d.ts
|
|
5
5
|
declare global {
|
|
6
6
|
interface HTMLElementTagNameMap {
|
|
7
7
|
[LISTBOX_TAGNAME]: OuiListboxElement;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
export interface OuiListboxElement {
|
|
11
|
+
[LISTBOX_SYMBOL]: OuiListboxState;
|
|
12
|
+
}
|
|
13
|
+
export declare class OuiListboxElement extends HTMLElement {
|
|
12
14
|
static formAssociated: boolean;
|
|
13
15
|
static observedAttributes: string[];
|
|
14
16
|
/**
|
|
@@ -151,4 +153,4 @@ declare class OuiListboxElement extends HTMLElement {
|
|
|
151
153
|
setLocalizations(localizations: Record<string, Partial<OuiListboxLocalizations>>): void;
|
|
152
154
|
}
|
|
153
155
|
//#endregion
|
|
154
|
-
export {
|
|
156
|
+
export { setListboxLocalizations };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { C as setListboxDisabled, D as setListboxReadonly, O as setListboxRequired, T as setListboxLimit, a as setListboxValue, o as setListboxValues, w as setListboxFilter } from "../listbox.data-
|
|
1
|
+
import { C as setListboxDisabled, D as setListboxReadonly, O as setListboxRequired, T as setListboxLimit, a as setListboxValue, o as setListboxValues, w as setListboxFilter } from "../listbox.data-BQyZGKgr.mjs";
|
|
2
2
|
import { attachListbox, detachListbox } from "../internal/listbox/listbox.state.mjs";
|
|
3
|
-
import { LISTBOX_TAGNAME } from "./constants.listbox.mjs";
|
|
4
|
-
import { c as onDetachListbox, i as
|
|
3
|
+
import { LISTBOX_SYMBOL, LISTBOX_TAGNAME } from "./constants.listbox.mjs";
|
|
4
|
+
import { c as onDetachListbox, i as initializeListbox, n as setListboxLocalizations, o as listboxes, r as updateListboxLocalizations, s as onAttachListbox } from "../misc.listbox-CjfBUbHD.mjs";
|
|
5
5
|
import { getAttribute } from "@oscarpalmer/toretto/attribute";
|
|
6
6
|
import { parse } from "@oscarpalmer/atoms/string";
|
|
7
7
|
//#region src/js/listbox/index.ts
|
|
@@ -13,68 +13,65 @@ var OuiListboxElement = class extends HTMLElement {
|
|
|
13
13
|
"required",
|
|
14
14
|
"value"
|
|
15
15
|
];
|
|
16
|
-
#internals;
|
|
17
|
-
#restored;
|
|
18
|
-
#state;
|
|
19
16
|
/**
|
|
20
17
|
* Is the listbox disabled?
|
|
21
18
|
*/
|
|
22
19
|
get disabled() {
|
|
23
|
-
return this
|
|
20
|
+
return this[LISTBOX_SYMBOL].component?.disabled ?? false;
|
|
24
21
|
}
|
|
25
22
|
/**
|
|
26
23
|
* Should the listbox be disabled?
|
|
27
24
|
*/
|
|
28
25
|
set disabled(value) {
|
|
29
|
-
if (typeof value === "boolean" && value !== this.disabled) setListboxDisabled(this
|
|
26
|
+
if (typeof value === "boolean" && value !== this.disabled) setListboxDisabled(this[LISTBOX_SYMBOL], value);
|
|
30
27
|
}
|
|
31
28
|
/**
|
|
32
29
|
* Current filter value
|
|
33
30
|
*/
|
|
34
31
|
get filter() {
|
|
35
|
-
return this
|
|
32
|
+
return this[LISTBOX_SYMBOL].component?.filter.element.value ?? "";
|
|
36
33
|
}
|
|
37
34
|
/**
|
|
38
35
|
* Set the filter value
|
|
39
36
|
*/
|
|
40
37
|
set filter(value) {
|
|
41
|
-
setListboxFilter(this
|
|
38
|
+
setListboxFilter(this[LISTBOX_SYMBOL], value);
|
|
42
39
|
}
|
|
43
40
|
/**
|
|
44
41
|
* Form element associated with the listbox
|
|
45
42
|
*/
|
|
46
43
|
get form() {
|
|
47
|
-
return this
|
|
44
|
+
return this[LISTBOX_SYMBOL].form.internals.form;
|
|
48
45
|
}
|
|
49
46
|
/**
|
|
50
47
|
* Label elements associated with the listbox
|
|
51
48
|
*/
|
|
52
49
|
get labels() {
|
|
53
|
-
return this
|
|
50
|
+
return this[LISTBOX_SYMBOL].form.internals.labels;
|
|
54
51
|
}
|
|
55
52
|
/**
|
|
56
53
|
* Maximum number of selected options
|
|
57
54
|
*/
|
|
58
55
|
get max() {
|
|
59
|
-
return this
|
|
56
|
+
return this[LISTBOX_SYMBOL].component?.max;
|
|
60
57
|
}
|
|
61
58
|
/**
|
|
62
59
|
* Set the maximum number of selected options
|
|
63
60
|
*/
|
|
64
61
|
set max(value) {
|
|
65
|
-
setListboxLimit("max", this
|
|
62
|
+
setListboxLimit("max", this[LISTBOX_SYMBOL], value);
|
|
66
63
|
}
|
|
67
64
|
/**
|
|
68
65
|
* Minimum number of selected options
|
|
69
66
|
*/
|
|
70
67
|
get min() {
|
|
71
|
-
return this
|
|
68
|
+
return this[LISTBOX_SYMBOL].component?.min;
|
|
72
69
|
}
|
|
73
70
|
/**
|
|
74
71
|
* Set the minimum number of selected options
|
|
75
72
|
*/
|
|
76
73
|
set min(value) {
|
|
77
|
-
setListboxLimit("min", this
|
|
74
|
+
setListboxLimit("min", this[LISTBOX_SYMBOL], value);
|
|
78
75
|
}
|
|
79
76
|
/**
|
|
80
77
|
* Does the listbox allow multiple values?
|
|
@@ -92,87 +89,91 @@ var OuiListboxElement = class extends HTMLElement {
|
|
|
92
89
|
* Is the listbox readonly?
|
|
93
90
|
*/
|
|
94
91
|
get readonly() {
|
|
95
|
-
return this
|
|
92
|
+
return this[LISTBOX_SYMBOL].component?.readonly ?? false;
|
|
96
93
|
}
|
|
97
94
|
/**
|
|
98
95
|
* Should the listbox be readonly?
|
|
99
96
|
*/
|
|
100
97
|
set readonly(value) {
|
|
101
|
-
if (typeof value === "boolean" && value !== this.readonly) setListboxReadonly(this
|
|
98
|
+
if (typeof value === "boolean" && value !== this.readonly) setListboxReadonly(this[LISTBOX_SYMBOL], value);
|
|
102
99
|
}
|
|
103
100
|
/**
|
|
104
101
|
* Is the listbox required?
|
|
105
102
|
*/
|
|
106
103
|
get required() {
|
|
107
|
-
return this
|
|
104
|
+
return this[LISTBOX_SYMBOL].component?.required ?? false;
|
|
108
105
|
}
|
|
109
106
|
/**
|
|
110
107
|
* Should the listbox be required?
|
|
111
108
|
*/
|
|
112
109
|
set required(value) {
|
|
113
|
-
if (typeof value === "boolean" && value !== this.required) setListboxRequired(this
|
|
110
|
+
if (typeof value === "boolean" && value !== this.required) setListboxRequired(this[LISTBOX_SYMBOL], value);
|
|
114
111
|
}
|
|
115
112
|
/**
|
|
116
113
|
* Selected options
|
|
117
114
|
*/
|
|
118
115
|
get selected() {
|
|
119
|
-
return this
|
|
116
|
+
return this[LISTBOX_SYMBOL].component?.options.selected.slice() ?? [];
|
|
120
117
|
}
|
|
121
118
|
/**
|
|
122
119
|
* Validation message for the listbox
|
|
123
120
|
*/
|
|
124
121
|
get validationMessage() {
|
|
125
|
-
return this
|
|
122
|
+
return this[LISTBOX_SYMBOL].form.internals.validationMessage;
|
|
126
123
|
}
|
|
127
124
|
/**
|
|
128
125
|
* Validity state for the listbox
|
|
129
126
|
*/
|
|
130
127
|
get validity() {
|
|
131
|
-
return this
|
|
128
|
+
return this[LISTBOX_SYMBOL].form.internals.validity;
|
|
132
129
|
}
|
|
133
130
|
/**
|
|
134
131
|
* Current value
|
|
135
132
|
*/
|
|
136
133
|
get value() {
|
|
137
|
-
return this
|
|
134
|
+
return this[LISTBOX_SYMBOL].component?.values.current[0] ?? "";
|
|
138
135
|
}
|
|
139
136
|
/**
|
|
140
137
|
* Set the value
|
|
141
138
|
*/
|
|
142
139
|
set value(value) {
|
|
143
|
-
setListboxValue(this
|
|
140
|
+
setListboxValue(this[LISTBOX_SYMBOL], value);
|
|
144
141
|
}
|
|
145
142
|
/**
|
|
146
143
|
* Current values
|
|
147
144
|
*/
|
|
148
145
|
get values() {
|
|
149
|
-
return this
|
|
146
|
+
return this[LISTBOX_SYMBOL].component?.values.current.slice() ?? [];
|
|
150
147
|
}
|
|
151
148
|
/**
|
|
152
149
|
* Set the values
|
|
153
150
|
*/
|
|
154
151
|
set values(values) {
|
|
155
|
-
setListboxValues(this
|
|
152
|
+
setListboxValues(this[LISTBOX_SYMBOL], values);
|
|
156
153
|
}
|
|
157
154
|
/**
|
|
158
155
|
* Can the listbox be validated?
|
|
159
156
|
*/
|
|
160
157
|
get willValidate() {
|
|
161
|
-
return this
|
|
158
|
+
return this[LISTBOX_SYMBOL].form.internals.willValidate;
|
|
162
159
|
}
|
|
163
160
|
constructor() {
|
|
164
161
|
super();
|
|
165
|
-
this
|
|
162
|
+
this[LISTBOX_SYMBOL] = {
|
|
163
|
+
component: null,
|
|
164
|
+
form: { internals: this.attachInternals() }
|
|
165
|
+
};
|
|
166
166
|
}
|
|
167
167
|
attributeChangedCallback(name, _, value) {
|
|
168
|
-
|
|
168
|
+
const state = this[LISTBOX_SYMBOL];
|
|
169
|
+
if (state.component == null) return;
|
|
169
170
|
switch (name) {
|
|
170
171
|
case "required":
|
|
171
172
|
this[name] = this.hasAttribute(name);
|
|
172
173
|
break;
|
|
173
174
|
case "max":
|
|
174
175
|
case "min":
|
|
175
|
-
setListboxLimit(name,
|
|
176
|
+
setListboxLimit(name, state, value);
|
|
176
177
|
break;
|
|
177
178
|
case "value": this.value = value ?? "";
|
|
178
179
|
}
|
|
@@ -183,33 +184,36 @@ var OuiListboxElement = class extends HTMLElement {
|
|
|
183
184
|
* @returns `true` if the listbox is valid, otherwise `false`
|
|
184
185
|
*/
|
|
185
186
|
checkValidity() {
|
|
186
|
-
return this
|
|
187
|
+
return this[LISTBOX_SYMBOL].form.internals.checkValidity();
|
|
187
188
|
}
|
|
188
189
|
/**
|
|
189
190
|
* Clear all selected options
|
|
190
191
|
*/
|
|
191
192
|
clear() {
|
|
192
|
-
setListboxValues(this
|
|
193
|
+
setListboxValues(this[LISTBOX_SYMBOL], []);
|
|
193
194
|
}
|
|
194
195
|
connectedCallback() {
|
|
195
|
-
|
|
196
|
-
|
|
196
|
+
const state = this[LISTBOX_SYMBOL];
|
|
197
|
+
if (state.component == null) initializeListbox(this, state);
|
|
198
|
+
else attachListbox(state, listboxes, onAttachListbox);
|
|
197
199
|
}
|
|
198
200
|
disconnectedCallback() {
|
|
199
|
-
|
|
201
|
+
const state = this[LISTBOX_SYMBOL];
|
|
202
|
+
if (state.component != null) detachListbox(state, listboxes, onDetachListbox);
|
|
200
203
|
}
|
|
201
204
|
formDisabledCallback(disabled) {
|
|
202
205
|
this.disabled = disabled;
|
|
203
206
|
}
|
|
204
207
|
formResetCallback() {
|
|
205
|
-
|
|
208
|
+
const state = this[LISTBOX_SYMBOL];
|
|
209
|
+
setListboxValues(state, state.component.values.initial);
|
|
206
210
|
}
|
|
207
211
|
formStateRestoreCallback(state, reason) {
|
|
208
212
|
if (reason !== "restore") return;
|
|
209
213
|
const parsed = typeof state === "string" ? parse(state) : void 0;
|
|
210
214
|
if (!Array.isArray(parsed)) return;
|
|
211
|
-
if (this
|
|
212
|
-
else setListboxValues(this
|
|
215
|
+
if (this[LISTBOX_SYMBOL]?.component == null) this[LISTBOX_SYMBOL].form.restored = parsed;
|
|
216
|
+
else setListboxValues(this[LISTBOX_SYMBOL], parsed);
|
|
213
217
|
}
|
|
214
218
|
/**
|
|
215
219
|
* Check if the listbox is valid and report any validation errors
|
|
@@ -217,7 +221,7 @@ var OuiListboxElement = class extends HTMLElement {
|
|
|
217
221
|
* @returns `true` if the listbox is valid, otherwise `false`
|
|
218
222
|
*/
|
|
219
223
|
reportValidity() {
|
|
220
|
-
return this
|
|
224
|
+
return this[LISTBOX_SYMBOL].form.internals.reportValidity();
|
|
221
225
|
}
|
|
222
226
|
/**
|
|
223
227
|
* Set a custom validation message for the listbox
|
|
@@ -225,17 +229,11 @@ var OuiListboxElement = class extends HTMLElement {
|
|
|
225
229
|
* @param message Validation message
|
|
226
230
|
*/
|
|
227
231
|
setCustomValidity(message) {
|
|
228
|
-
this
|
|
232
|
+
this[LISTBOX_SYMBOL].form.internals.setValidity({ customError: message !== "" }, message, this);
|
|
229
233
|
}
|
|
230
234
|
setLocalizations(first, second) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
#initialize() {
|
|
234
|
-
this.#state = createListboxState(this, this.#internals);
|
|
235
|
-
if (this.#restored != null) {
|
|
236
|
-
setListboxValues(this.#state, this.#restored);
|
|
237
|
-
this.#restored = void 0;
|
|
238
|
-
}
|
|
235
|
+
const { localizations } = this[LISTBOX_SYMBOL].component;
|
|
236
|
+
updateListboxLocalizations(localizations.global, localizations.component, first, second);
|
|
239
237
|
}
|
|
240
238
|
};
|
|
241
239
|
customElements.define(LISTBOX_TAGNAME, OuiListboxElement);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as setListboxLocalizations, r as updateListboxLocalizations, t as getListboxId } from "../misc.listbox-
|
|
1
|
+
import { n as setListboxLocalizations, r as updateListboxLocalizations, t as getListboxId } from "../misc.listbox-CtoGvXQo.mjs";
|
|
2
2
|
export { getListboxId, setListboxLocalizations, updateListboxLocalizations };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as setListboxLocalizations, r as updateListboxLocalizations, t as getListboxId } from "../misc.listbox-
|
|
1
|
+
import { n as setListboxLocalizations, r as updateListboxLocalizations, t as getListboxId } from "../misc.listbox-CjfBUbHD.mjs";
|
|
2
2
|
export { getListboxId, setListboxLocalizations, updateListboxLocalizations };
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { l as OuiListboxState, o as OuiListboxLocalizations
|
|
3
|
-
import { OuiListboxElement } from "./index.mjs";
|
|
1
|
+
import { c as OuiLocalizations } from "../l10n.model-D6a9frgl.mjs";
|
|
2
|
+
import { l as OuiListboxState, o as OuiListboxLocalizations } from "../listbox.model-CuBOj4qe.mjs";
|
|
4
3
|
//#region src/js/listbox/state.listbox.d.ts
|
|
5
|
-
declare function
|
|
6
|
-
declare function onAttachListbox(state: OuiListboxState): void;
|
|
7
|
-
declare function onDetachListbox(state: OuiListboxState): void;
|
|
8
|
-
declare const listboxLocalizations: OuiLocalizations<OuiListboxLocalizations>;
|
|
9
|
-
declare const
|
|
10
|
-
//#endregion
|
|
11
|
-
export { createListboxState, listboxLocalizations, listboxStates, onAttachListbox, onDetachListbox };
|
|
4
|
+
export declare function initializeListbox(element: HTMLElement, state: OuiListboxState): void;
|
|
5
|
+
export declare function onAttachListbox(state: OuiListboxState): void;
|
|
6
|
+
export declare function onDetachListbox(state: OuiListboxState): void;
|
|
7
|
+
export declare const listboxLocalizations: OuiLocalizations<OuiListboxLocalizations>;
|
|
8
|
+
export declare const listboxes: Set<OuiListboxState>;
|
|
9
|
+
//#endregion
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as listboxLocalizations, c as onDetachListbox, i as
|
|
2
|
-
export {
|
|
1
|
+
import { a as listboxLocalizations, c as onDetachListbox, i as initializeListbox, o as listboxes, s as onAttachListbox } from "../misc.listbox-CjfBUbHD.mjs";
|
|
2
|
+
export { initializeListbox, listboxLocalizations, listboxes, onAttachListbox, onDetachListbox };
|