pne-ui 1.0.215 → 1.0.216
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.
|
@@ -39,10 +39,10 @@ const mergeSx = (...styles) => {
|
|
|
39
39
|
}
|
|
40
40
|
return merged;
|
|
41
41
|
};
|
|
42
|
-
const getEffectiveBackgroundColor = (element, fallback) => {
|
|
42
|
+
const getEffectiveBackgroundColor = (element, fallback, getComputedStyleFn) => {
|
|
43
43
|
let current = element;
|
|
44
44
|
while (current) {
|
|
45
|
-
const color =
|
|
45
|
+
const color = getComputedStyleFn(current).backgroundColor;
|
|
46
46
|
if (color && !TRANSPARENT_VALUES.has(color)) {
|
|
47
47
|
const rgbaMatch = color.match(/rgba?\(([^)]+)\)/);
|
|
48
48
|
if (!rgbaMatch) {
|
|
@@ -69,18 +69,94 @@ exports.PneHighContrastLabeledCheckbox = (0, react_1.forwardRef)((props, ref) =>
|
|
|
69
69
|
const theme = (0, material_1.useTheme)();
|
|
70
70
|
const formControlRef = react_1.default.useRef(null);
|
|
71
71
|
const [labelColor, setLabelColor] = react_1.default.useState(() => theme.palette.text.primary);
|
|
72
|
-
react_1.default.
|
|
73
|
-
if (typeof window === 'undefined') {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
72
|
+
const updateLabelColor = react_1.default.useCallback(() => {
|
|
76
73
|
const element = formControlRef.current;
|
|
77
74
|
if (!element) {
|
|
78
75
|
return;
|
|
79
76
|
}
|
|
80
|
-
const
|
|
77
|
+
const ownerWindow = element.ownerDocument?.defaultView;
|
|
78
|
+
if (!ownerWindow) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const getStyle = ownerWindow.getComputedStyle.bind(ownerWindow);
|
|
82
|
+
const backgroundColor = getEffectiveBackgroundColor(element, theme.palette.background.paper, getStyle);
|
|
81
83
|
const contrastColor = theme.palette.getContrastText(backgroundColor);
|
|
82
|
-
setLabelColor(contrastColor);
|
|
84
|
+
setLabelColor((previous) => (previous === contrastColor ? previous : contrastColor));
|
|
83
85
|
}, [theme]);
|
|
86
|
+
react_1.default.useEffect(() => {
|
|
87
|
+
const element = formControlRef.current;
|
|
88
|
+
if (!element) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const ownerWindow = element.ownerDocument?.defaultView;
|
|
92
|
+
if (!ownerWindow) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
updateLabelColor();
|
|
96
|
+
const cleanupCallbacks = [];
|
|
97
|
+
const trackedElements = [];
|
|
98
|
+
let current = element;
|
|
99
|
+
while (current) {
|
|
100
|
+
trackedElements.push(current);
|
|
101
|
+
current = current.parentElement;
|
|
102
|
+
}
|
|
103
|
+
const MutationObserverCtor = ownerWindow.MutationObserver;
|
|
104
|
+
if (MutationObserverCtor) {
|
|
105
|
+
const mutationObservers = [];
|
|
106
|
+
const config = {
|
|
107
|
+
attributes: true,
|
|
108
|
+
attributeFilter: ['style', 'class'],
|
|
109
|
+
};
|
|
110
|
+
trackedElements.forEach((target) => {
|
|
111
|
+
const observer = new MutationObserverCtor(() => {
|
|
112
|
+
updateLabelColor();
|
|
113
|
+
});
|
|
114
|
+
observer.observe(target, config);
|
|
115
|
+
mutationObservers.push(observer);
|
|
116
|
+
});
|
|
117
|
+
cleanupCallbacks.push(() => {
|
|
118
|
+
mutationObservers.forEach((observer) => observer.disconnect());
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
const ResizeObserverCtor = ownerWindow.ResizeObserver;
|
|
122
|
+
if (ResizeObserverCtor) {
|
|
123
|
+
const resizeObserver = new ResizeObserverCtor(() => {
|
|
124
|
+
updateLabelColor();
|
|
125
|
+
});
|
|
126
|
+
trackedElements.forEach((target) => {
|
|
127
|
+
resizeObserver.observe(target);
|
|
128
|
+
});
|
|
129
|
+
cleanupCallbacks.push(() => {
|
|
130
|
+
resizeObserver.disconnect();
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
const handleResize = () => {
|
|
135
|
+
updateLabelColor();
|
|
136
|
+
};
|
|
137
|
+
ownerWindow.addEventListener('resize', handleResize);
|
|
138
|
+
cleanupCallbacks.push(() => {
|
|
139
|
+
ownerWindow.removeEventListener('resize', handleResize);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
trackedElements.forEach((target) => {
|
|
143
|
+
const handleTransitionEnd = () => {
|
|
144
|
+
updateLabelColor();
|
|
145
|
+
};
|
|
146
|
+
const handleAnimationEnd = () => {
|
|
147
|
+
updateLabelColor();
|
|
148
|
+
};
|
|
149
|
+
target.addEventListener('transitionend', handleTransitionEnd);
|
|
150
|
+
target.addEventListener('animationend', handleAnimationEnd);
|
|
151
|
+
cleanupCallbacks.push(() => {
|
|
152
|
+
target.removeEventListener('transitionend', handleTransitionEnd);
|
|
153
|
+
target.removeEventListener('animationend', handleAnimationEnd);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
return () => {
|
|
157
|
+
cleanupCallbacks.forEach((dispose) => dispose());
|
|
158
|
+
};
|
|
159
|
+
}, [updateLabelColor]);
|
|
84
160
|
const disabledStateSx = {
|
|
85
161
|
'& .Mui-disabled': {
|
|
86
162
|
backgroundColor: '#FFFFFF',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PneHighContrastLabeledCheckbox.js","sourceRoot":"","sources":["../../src/component/PneHighContrastLabeledCheckbox.tsx"],"names":[],"mappings":";;;;AAAA,uDAAyC;AACzC,4CASsB;AACtB,+CAA2C;AAI3C,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IAC/B,EAAE;IACF,aAAa;IACb,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;CACnB,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,CAAC,GAAG,MAAyC,EAA8B,EAAE;IACzF,MAAM,MAAM,GAA0B,EAAE,CAAA;IAExC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACxC,OAAM;QACV,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACxC,OAAM;gBACV,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACL,CAAC,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;IAED,OAAO,MAAwB,CAAA;AACnC,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,
|
|
1
|
+
{"version":3,"file":"PneHighContrastLabeledCheckbox.js","sourceRoot":"","sources":["../../src/component/PneHighContrastLabeledCheckbox.tsx"],"names":[],"mappings":";;;;AAAA,uDAAyC;AACzC,4CASsB;AACtB,+CAA2C;AAI3C,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IAC/B,EAAE;IACF,aAAa;IACb,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;CACnB,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,CAAC,GAAG,MAAyC,EAA8B,EAAE;IACzF,MAAM,MAAM,GAA0B,EAAE,CAAA;IAExC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACxC,OAAM;QACV,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACxC,OAAM;gBACV,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACL,CAAC,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;IAED,OAAO,MAAwB,CAAA;AACnC,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,CAChC,OAAoB,EACpB,QAAgB,EAChB,kBAAyD,EACnD,EAAE;IACR,IAAI,OAAO,GAAuB,OAAO,CAAA;IAEzC,OAAO,OAAO,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAA;QAEzD,IAAI,KAAK,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;YAEjD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,OAAO,KAAK,CAAA;YAChB,CAAC;YAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC;iBACxB,KAAK,CAAC,MAAM,CAAC;iBACb,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;iBAChC,MAAM,CAAC,OAAO,CAAC,CAAA;YAEpB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAA;YAChB,CAAC;YAED,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YAE5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBAClD,OAAO,KAAK,CAAA;YAChB,CAAC;QACL,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,aAAa,CAAA;IACnC,CAAC;IAED,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA;AAEY,QAAA,8BAA8B,GAAG,IAAA,kBAAU,EAA6C,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAChH,MAAM,EACF,KAAK,EACL,UAAU,EACV,KAAK,GAAG,KAAK,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,EAAE,EACF,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,KAAK,GAAG,IAAA,mBAAQ,GAAE,CAAA;IACxB,MAAM,cAAc,GAAG,eAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAA;IAChE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAS,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAE5F,MAAM,gBAAgB,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAA;QAEtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAM;QACV,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,CAAA;QAEtD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAM;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC/D,MAAM,eAAe,GAAG,2BAA2B,CAC/C,OAAO,EACP,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAC9B,QAAQ,CACX,CAAA;QACD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;QAEpE,aAAa,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;IACxF,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAA;QAEtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAM;QACV,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,CAAA;QAEtD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAM;QACV,CAAC;QAED,gBAAgB,EAAE,CAAA;QAElB,MAAM,gBAAgB,GAAsB,EAAE,CAAA;QAE9C,MAAM,eAAe,GAAkB,EAAE,CAAA;QACzC,IAAI,OAAO,GAAuB,OAAO,CAAA;QAEzC,OAAO,OAAO,EAAE,CAAC;YACb,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC7B,OAAO,GAAG,OAAO,CAAC,aAAa,CAAA;QACnC,CAAC;QAED,MAAM,oBAAoB,GAAG,WAAW,CAAC,gBAAgB,CAAA;QAEzD,IAAI,oBAAoB,EAAE,CAAC;YACvB,MAAM,iBAAiB,GAAuB,EAAE,CAAA;YAChD,MAAM,MAAM,GAAyB;gBACjC,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;aACtC,CAAA;YAED,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/B,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,GAAG,EAAE;oBAC3C,gBAAgB,EAAE,CAAA;gBACtB,CAAC,CAAC,CAAA;gBAEF,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAChC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpC,CAAC,CAAC,CAAA;YAEF,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvB,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YAClE,CAAC,CAAC,CAAA;QACN,CAAC;QAED,MAAM,kBAAkB,GAAG,WAAW,CAAC,cAAc,CAAA;QAErD,IAAI,kBAAkB,EAAE,CAAC;YACrB,MAAM,cAAc,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE;gBAC/C,gBAAgB,EAAE,CAAA;YACtB,CAAC,CAAC,CAAA;YAEF,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/B,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAClC,CAAC,CAAC,CAAA;YAEF,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvB,cAAc,CAAC,UAAU,EAAE,CAAA;YAC/B,CAAC,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,YAAY,GAAG,GAAG,EAAE;gBACtB,gBAAgB,EAAE,CAAA;YACtB,CAAC,CAAA;YAED,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YACpD,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvB,WAAW,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YAC3D,CAAC,CAAC,CAAA;QACN,CAAC;QAED,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/B,MAAM,mBAAmB,GAAG,GAAG,EAAE;gBAC7B,gBAAgB,EAAE,CAAA;YACtB,CAAC,CAAA;YAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;gBAC5B,gBAAgB,EAAE,CAAA;YACtB,CAAC,CAAA;YAED,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;YAC7D,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YAE3D,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvB,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;gBAChE,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YAClE,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACR,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QACpD,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,MAAM,eAAe,GAAmB;QACpC,iBAAiB,EAAE;YACf,eAAe,EAAE,SAAS;SAC7B;KACJ,CAAA;IAED,MAAM,SAAS,GAAG,OAAO,CACrB,eAAe,EACf,WAAW,CACd,CAAA;IAED,MAAM,UAAU,GAAG,OAAO,CACtB;QACI,KAAK,EAAE,UAAU;QACjB,eAAe,EAAE;YACb,KAAK,EAAE,UAAU;SACpB;QACD,6BAA6B,EAAE;YAC3B,KAAK,EAAE,UAAU;SACpB;QACD,gBAAgB,EAAE;YACd,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ;SACvC;KACJ,EACD,EAAE,CACL,CAAA;IAED,MAAM,UAAU,GAAG;QACf,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;QAChC,EAAE,EAAE,OAAO,CACP;YACI,8BAA8B,EAAE;gBAC5B,KAAK,EAAE,UAAU;aACpB;YACD,2CAA2C,EAAE;gBACzC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ;aACrC;SACJ,EACD,qBAAqB,EAAE,EAAE,CAC5B;KACJ,CAAA;IAED,MAAM,WAAW,GAAoC,UAAU;QAC3D,CAAC,CAAC;YACE,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;YAC1B,EAAE,EAAE,OAAO,CACP;gBACI,KAAK,EAAE,IAAA,gBAAK,EAAC,UAAU,EAAE,IAAI,CAAC;aACjC,EACD,eAAe,EAAE,EAAE,CACtB;SACJ;QACD,CAAC,CAAC,SAAS,CAAA;IAEf,OAAO,CACH,8BAAC,sBAAW,IACR,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,SAAS,KACT,gBAAgB;QAEpB,8BAAC,oBAAS,OAAK,cAAc;YACzB,8BAAC,2BAAgB,IACb,OAAO,EACH,8BAAC,yBAAW,OACJ,IAAI,EACR,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,GAAG,GACV,EAEN,KAAK,EAAE,KAAK,KACR,UAAU,GAChB,CACM;QACX,UAAU,IAAI,CACX,8BAAC,yBAAc,OAAK,WAAW,IAAG,UAAU,CAAkB,CACjE,CACS,CACjB,CAAA;AACL,CAAC,CAAC,CAAA;AAEF,sCAA8B,CAAC,WAAW,GAAG,gCAAgC,CAAA"}
|
|
@@ -35,10 +35,10 @@ const mergeSx = (...styles) => {
|
|
|
35
35
|
}
|
|
36
36
|
return merged;
|
|
37
37
|
};
|
|
38
|
-
const getEffectiveBackgroundColor = (element, fallback) => {
|
|
38
|
+
const getEffectiveBackgroundColor = (element, fallback, getComputedStyleFn) => {
|
|
39
39
|
let current = element;
|
|
40
40
|
while (current) {
|
|
41
|
-
const color =
|
|
41
|
+
const color = getComputedStyleFn(current).backgroundColor;
|
|
42
42
|
if (color && !TRANSPARENT_VALUES.has(color)) {
|
|
43
43
|
const rgbaMatch = color.match(/rgba?\(([^)]+)\)/);
|
|
44
44
|
if (!rgbaMatch) {
|
|
@@ -65,18 +65,94 @@ export const PneHighContrastLabeledCheckbox = forwardRef((props, ref) => {
|
|
|
65
65
|
const theme = useTheme();
|
|
66
66
|
const formControlRef = React.useRef(null);
|
|
67
67
|
const [labelColor, setLabelColor] = React.useState(() => theme.palette.text.primary);
|
|
68
|
-
React.
|
|
69
|
-
if (typeof window === 'undefined') {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
68
|
+
const updateLabelColor = React.useCallback(() => {
|
|
72
69
|
const element = formControlRef.current;
|
|
73
70
|
if (!element) {
|
|
74
71
|
return;
|
|
75
72
|
}
|
|
76
|
-
const
|
|
73
|
+
const ownerWindow = element.ownerDocument?.defaultView;
|
|
74
|
+
if (!ownerWindow) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const getStyle = ownerWindow.getComputedStyle.bind(ownerWindow);
|
|
78
|
+
const backgroundColor = getEffectiveBackgroundColor(element, theme.palette.background.paper, getStyle);
|
|
77
79
|
const contrastColor = theme.palette.getContrastText(backgroundColor);
|
|
78
|
-
setLabelColor(contrastColor);
|
|
80
|
+
setLabelColor((previous) => (previous === contrastColor ? previous : contrastColor));
|
|
79
81
|
}, [theme]);
|
|
82
|
+
React.useEffect(() => {
|
|
83
|
+
const element = formControlRef.current;
|
|
84
|
+
if (!element) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const ownerWindow = element.ownerDocument?.defaultView;
|
|
88
|
+
if (!ownerWindow) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
updateLabelColor();
|
|
92
|
+
const cleanupCallbacks = [];
|
|
93
|
+
const trackedElements = [];
|
|
94
|
+
let current = element;
|
|
95
|
+
while (current) {
|
|
96
|
+
trackedElements.push(current);
|
|
97
|
+
current = current.parentElement;
|
|
98
|
+
}
|
|
99
|
+
const MutationObserverCtor = ownerWindow.MutationObserver;
|
|
100
|
+
if (MutationObserverCtor) {
|
|
101
|
+
const mutationObservers = [];
|
|
102
|
+
const config = {
|
|
103
|
+
attributes: true,
|
|
104
|
+
attributeFilter: ['style', 'class'],
|
|
105
|
+
};
|
|
106
|
+
trackedElements.forEach((target) => {
|
|
107
|
+
const observer = new MutationObserverCtor(() => {
|
|
108
|
+
updateLabelColor();
|
|
109
|
+
});
|
|
110
|
+
observer.observe(target, config);
|
|
111
|
+
mutationObservers.push(observer);
|
|
112
|
+
});
|
|
113
|
+
cleanupCallbacks.push(() => {
|
|
114
|
+
mutationObservers.forEach((observer) => observer.disconnect());
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
const ResizeObserverCtor = ownerWindow.ResizeObserver;
|
|
118
|
+
if (ResizeObserverCtor) {
|
|
119
|
+
const resizeObserver = new ResizeObserverCtor(() => {
|
|
120
|
+
updateLabelColor();
|
|
121
|
+
});
|
|
122
|
+
trackedElements.forEach((target) => {
|
|
123
|
+
resizeObserver.observe(target);
|
|
124
|
+
});
|
|
125
|
+
cleanupCallbacks.push(() => {
|
|
126
|
+
resizeObserver.disconnect();
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
const handleResize = () => {
|
|
131
|
+
updateLabelColor();
|
|
132
|
+
};
|
|
133
|
+
ownerWindow.addEventListener('resize', handleResize);
|
|
134
|
+
cleanupCallbacks.push(() => {
|
|
135
|
+
ownerWindow.removeEventListener('resize', handleResize);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
trackedElements.forEach((target) => {
|
|
139
|
+
const handleTransitionEnd = () => {
|
|
140
|
+
updateLabelColor();
|
|
141
|
+
};
|
|
142
|
+
const handleAnimationEnd = () => {
|
|
143
|
+
updateLabelColor();
|
|
144
|
+
};
|
|
145
|
+
target.addEventListener('transitionend', handleTransitionEnd);
|
|
146
|
+
target.addEventListener('animationend', handleAnimationEnd);
|
|
147
|
+
cleanupCallbacks.push(() => {
|
|
148
|
+
target.removeEventListener('transitionend', handleTransitionEnd);
|
|
149
|
+
target.removeEventListener('animationend', handleAnimationEnd);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
return () => {
|
|
153
|
+
cleanupCallbacks.forEach((dispose) => dispose());
|
|
154
|
+
};
|
|
155
|
+
}, [updateLabelColor]);
|
|
80
156
|
const disabledStateSx = {
|
|
81
157
|
'& .Mui-disabled': {
|
|
82
158
|
backgroundColor: '#FFFFFF',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PneHighContrastLabeledCheckbox.js","sourceRoot":"","sources":["../../src/component/PneHighContrastLabeledCheckbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EACH,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,cAAc,EAGd,QAAQ,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAI3C,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IAC/B,EAAE;IACF,aAAa;IACb,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;CACnB,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,CAAC,GAAG,MAAyC,EAA8B,EAAE;IACzF,MAAM,MAAM,GAA0B,EAAE,CAAA;IAExC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACxC,OAAM;QACV,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACxC,OAAM;gBACV,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACL,CAAC,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;IAED,OAAO,MAAwB,CAAA;AACnC,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,
|
|
1
|
+
{"version":3,"file":"PneHighContrastLabeledCheckbox.js","sourceRoot":"","sources":["../../src/component/PneHighContrastLabeledCheckbox.tsx"],"names":[],"mappings":"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"}
|