@stimulus-library/mixins 1.4.0 → 1.7.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.
@@ -16,4 +16,6 @@ export declare function isElementDirty(element: HTMLInputElement | HTMLSelectEle
16
16
  export declare function restoreElementFromLoadValue(element: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement): void;
17
17
  export declare function restoreMultiSelect(element: HTMLSelectElement, cacheValue: string): void;
18
18
  export declare function cacheLoadValues(element: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement): void;
19
+ export declare function resetCachedLoadValues(element: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement): void;
20
+ export declare function resetFormLoadValues(form: HTMLFormElement): void;
19
21
  export declare function isDirty(element: HTMLElement): boolean;
@@ -137,8 +137,8 @@ export function isElementDirty(element) {
137
137
  export function restoreElementFromLoadValue(element) {
138
138
  const cacheValue = element.getAttribute(CACHE_ATTR_NAME);
139
139
  if (isElementCheckable(element)) {
140
- element.setAttribute(CACHE_ATTR_NAME, element.checked.toString());
141
- element.checked = cacheValue == null ? element.defaultChecked : cacheValue == "true";
140
+ element.checked =
141
+ cacheValue == null ? element.defaultChecked : cacheValue == "true";
142
142
  }
143
143
  else if (isHTMLSelectElement(element)) {
144
144
  if (cacheValue == null) {
@@ -175,6 +175,19 @@ export function cacheLoadValues(element) {
175
175
  element.setAttribute(CACHE_ATTR_NAME, element.value.toString());
176
176
  }
177
177
  }
178
+ export function resetCachedLoadValues(element) {
179
+ if (elementHasCachedLoadValue(element)) {
180
+ element.removeAttribute(CACHE_ATTR_NAME);
181
+ }
182
+ cacheLoadValues(element);
183
+ }
184
+ export function resetFormLoadValues(form) {
185
+ form.querySelectorAll("input, select, textarea").forEach((element) => {
186
+ const el = element;
187
+ resetCachedLoadValues(el);
188
+ checkDirty(el);
189
+ });
190
+ }
178
191
  export function isDirty(element) {
179
192
  return element.hasAttribute("data-dirty");
180
193
  }
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "ruby on rails",
10
10
  "ruby-on-rails"
11
11
  ],
12
- "version": "1.4.0",
12
+ "version": "1.7.0",
13
13
  "license": "MIT",
14
14
  "author": {
15
15
  "name": "Sub-Xaero",
@@ -37,26 +37,26 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@hotwired/stimulus": "^3.0.0",
40
- "@stimulus-library/utilities": "^1.4.0"
40
+ "@stimulus-library/utilities": "^1.7.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/chai": "^5.0.1",
44
44
  "@types/mocha": "^10.0.1",
45
- "@types/node": "^24.0.7",
46
- "@types/sinon": "^17.0.1",
45
+ "@types/node": "^25.5.2",
46
+ "@types/sinon": "^21.0.1",
47
47
  "@types/sinon-chai": "^4.0.0",
48
48
  "agadoo": "^3.0.0",
49
- "chai": "^5.1.1",
49
+ "chai": "^6.2.2",
50
50
  "fast-glob": "^3.2.12",
51
- "lerna": "^8.0.0",
51
+ "lerna": "^9.0.4",
52
52
  "mocha": "^11.1.0",
53
53
  "rimraf": "^6.0.1",
54
54
  "sinon": "^21.0.0",
55
55
  "sinon-chai": "^4.0.0",
56
56
  "standard-version": "^9.5.0",
57
57
  "ts-node": "^10.9.2",
58
- "typescript": "^5.8.2",
59
- "vite": "^7.0.2"
58
+ "typescript": "^6.0.2",
59
+ "vite": "^7.3.2"
60
60
  },
61
- "gitHead": "81299cf017b9c43a6e1e3bf85dec0d649f2efce4"
61
+ "gitHead": "b84f87789c5d0c5682bb90711c192a2750c843dc"
62
62
  }