@schukai/monster 4.47.1 → 4.48.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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
## [4.48.1] - 2025-11-28
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **components:** Prevent duplicate entries in select component [#345](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/345)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## [4.48.0] - 2025-11-28
|
|
14
|
+
|
|
15
|
+
### Add Features
|
|
16
|
+
|
|
17
|
+
- Make autocomplete configurable in login form
|
|
18
|
+
### Changes
|
|
19
|
+
|
|
20
|
+
- nachtrag issue nummer f+r commit 18c2348b4 ist [#344](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/344)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
5
24
|
## [4.47.1] - 2025-11-25
|
|
6
25
|
|
|
7
26
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.7.4","@popperjs/core":"^2.11.8"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"4.
|
|
1
|
+
{"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.7.4","@popperjs/core":"^2.11.8"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"4.48.1"}
|
|
@@ -232,6 +232,10 @@ class Login extends CustomElement {
|
|
|
232
232
|
* @property {string} placeholder.username Placeholder for the username field
|
|
233
233
|
* @property {string} placeholder.password Placeholder for the password field
|
|
234
234
|
* @property {string} placeholder.email Placeholder for the email field
|
|
235
|
+
* @property {Object} autocomplete Autocomplete settings for the form fields
|
|
236
|
+
* @property {string} autocomplete.username Autocomplete value for the username field
|
|
237
|
+
* @property {string} autocomplete.password Autocomplete value for the password field
|
|
238
|
+
* @property {string} autocomplete.email Autocomplete value for the email field
|
|
235
239
|
* @property {Object} fetch.login Fetch config for login request
|
|
236
240
|
* @property {string} fetch.login.url Endpoint to post login credentials to
|
|
237
241
|
* @property {string} fetch.login.method HTTP method for login (e.g., "POST")
|
|
@@ -317,6 +321,12 @@ class Login extends CustomElement {
|
|
|
317
321
|
email: "",
|
|
318
322
|
},
|
|
319
323
|
|
|
324
|
+
autocomplete: {
|
|
325
|
+
username: "off",
|
|
326
|
+
password: "off",
|
|
327
|
+
email: "off",
|
|
328
|
+
},
|
|
329
|
+
|
|
320
330
|
fetch: {
|
|
321
331
|
login: {
|
|
322
332
|
url: "",
|
|
@@ -1740,12 +1750,12 @@ function getTemplate() {
|
|
|
1740
1750
|
<slot name="login-header"></slot>
|
|
1741
1751
|
<label part="login-label" data-monster-replace="path:labels.username"></label>
|
|
1742
1752
|
<input part="login-username"
|
|
1743
|
-
data-monster-attributes="placeholder path:placeholder.username"
|
|
1744
|
-
type="text" name="username" autofocus
|
|
1753
|
+
data-monster-attributes="placeholder path:placeholder.username, autocomplete path:autocomplete.username"
|
|
1754
|
+
type="text" name="username" autofocus>
|
|
1745
1755
|
<div data-monster-attributes="class path:classes.usernameInvalid"></div>
|
|
1746
1756
|
<label part="login-password-label" data-monster-replace="path:labels.password"></label>
|
|
1747
|
-
<monster-password
|
|
1748
|
-
data-monster-attributes="data-monster-option-placeholder path:placeholder.password"
|
|
1757
|
+
<monster-password
|
|
1758
|
+
data-monster-attributes="data-monster-option-placeholder path:placeholder.password, data-monster-option-autocomplete path:autocomplete.password"
|
|
1749
1759
|
exportparts="input-group:input-group-password,
|
|
1750
1760
|
control:input-group-password-control,
|
|
1751
1761
|
input:input-group-password-input" part="login-password"
|
|
@@ -1789,8 +1799,9 @@ function getTemplate() {
|
|
|
1789
1799
|
<input type="email" name="email"
|
|
1790
1800
|
part="field-set-forgot-password-email"
|
|
1791
1801
|
data-monster-attributes="accesskey path:accessKeys.username,
|
|
1792
|
-
placeholder path:placeholder.email
|
|
1793
|
-
|
|
1802
|
+
placeholder path:placeholder.email,
|
|
1803
|
+
autocomplete path:autocomplete.email"
|
|
1804
|
+
>
|
|
1794
1805
|
<div data-monster-attributes="class path:classes.emailInvalid"></div>
|
|
1795
1806
|
<monster-message-state-button id="requestLinkButton"
|
|
1796
1807
|
part="request-link-button"
|
|
@@ -1047,21 +1047,25 @@ function importOptionsIntern(data) {
|
|
|
1047
1047
|
}
|
|
1048
1048
|
|
|
1049
1049
|
for (const [value, label] of entries) {
|
|
1050
|
+
let found = false;
|
|
1050
1051
|
for (const option of options) {
|
|
1051
1052
|
if (option.value === value) {
|
|
1052
1053
|
option.label = label;
|
|
1053
1054
|
option.visibility = visibility;
|
|
1054
1055
|
option.data = map.get(value);
|
|
1055
|
-
|
|
1056
|
+
found = true;
|
|
1057
|
+
break;
|
|
1056
1058
|
}
|
|
1057
1059
|
}
|
|
1058
1060
|
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1061
|
+
if (!found) {
|
|
1062
|
+
options.push({
|
|
1063
|
+
value,
|
|
1064
|
+
label,
|
|
1065
|
+
visibility,
|
|
1066
|
+
data: map.get(value),
|
|
1067
|
+
});
|
|
1068
|
+
}
|
|
1065
1069
|
}
|
|
1066
1070
|
|
|
1067
1071
|
this.setOption("options", options);
|