element-internals-polyfill
Advanced tools
Comparing version 1.3.0 to 1.3.1
@@ -107,11 +107,20 @@ (function () { | ||
}; | ||
const disabledObserverConfig = { attributes: true, attributeFilter: ['disabled'] }; | ||
const disabledObserver = mutationObserverExists() ? new MutationObserver((mutationsList) => { | ||
const disabledOrNameObserverConfig = { attributes: true, attributeFilter: ['disabled', 'name'] }; | ||
const disabledOrNameObserver = mutationObserverExists() ? new MutationObserver((mutationsList) => { | ||
for (const mutation of mutationsList) { | ||
const target = mutation.target; | ||
if (target.constructor['formAssociated']) { | ||
setDisabled(target, target.hasAttribute('disabled')); | ||
if (mutation.attributeName === 'disabled') { | ||
if (target.constructor['formAssociated']) { | ||
setDisabled(target, target.hasAttribute('disabled')); | ||
} | ||
else if (target.localName === 'fieldset') { | ||
walkFieldset(target); | ||
} | ||
} | ||
else if (target.localName === 'fieldset') { | ||
walkFieldset(target); | ||
if (mutation.attributeName === 'name') { | ||
if (target.constructor['formAssociated']) { | ||
const internals = internalsMap.get(target); | ||
const value = refValueMap.get(target); | ||
internals.setFormValue(value); | ||
} | ||
} | ||
@@ -161,3 +170,3 @@ } | ||
if (node.localName === 'fieldset') { | ||
disabledObserver.observe?.(node, disabledObserverConfig); | ||
disabledOrNameObserver.observe?.(node, disabledOrNameObserverConfig); | ||
walkFieldset(node, true); | ||
@@ -230,3 +239,3 @@ } | ||
hiddenInputMap.set(internals, []); | ||
disabledObserver.observe?.(ref, disabledObserverConfig); | ||
disabledOrNameObserver.observe?.(ref, disabledOrNameObserverConfig); | ||
}; | ||
@@ -233,0 +242,0 @@ const initLabels = (ref, labels) => { |
@@ -6,4 +6,4 @@ /** | ||
export declare const walkFieldset: (node: HTMLFieldSetElement, firstRender?: boolean) => void; | ||
export declare const disabledObserverConfig: MutationObserverInit; | ||
export declare const disabledObserver: MutationObserver; | ||
export declare const disabledOrNameObserverConfig: MutationObserverInit; | ||
export declare const disabledOrNameObserver: MutationObserver; | ||
export declare function observerCallback(mutationList: MutationRecord[]): void; | ||
@@ -10,0 +10,0 @@ /** |
{ | ||
"name": "element-internals-polyfill", | ||
"version": "1.3.0", | ||
"version": "1.3.1", | ||
"description": "A polyfill for the element internals specification", | ||
@@ -14,5 +14,6 @@ "main": "dist/index.js", | ||
"pretest": "npm run build", | ||
"test": "web-test-runner test/*.test.* --node-resolve --playwright --browsers chromium firefox webkit", | ||
"test": "web-test-runner test/*.test.* --node-resolve --playwright --browsers chromium firefox webkit && npm run test:jsdom", | ||
"test:watch": "npm run test -- --watch", | ||
"test:coverage": "npm run test -- --coverage", | ||
"test:jsdom": "node ./jsdom-tests/jsdom.test.js", | ||
"start": "rollup -c --watch --environment BUILD:dev", | ||
@@ -61,2 +62,3 @@ "build": "rollup -c --environment BUILD:production", | ||
"deepmerge": "^4.2.2", | ||
"jsdom": "^21.1.1", | ||
"karma": "^6.3.3", | ||
@@ -63,0 +65,0 @@ "karma-chrome-launcher": "^3.1.0", |
64121
1188
38