@mxenabled/connect-widget 0.8.0 → 0.9.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/dist/index.es.js +607 -718
- package/dist/index.es.js.map +1 -1
- package/dist/lastBuild.txt +1 -1
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -14369,7 +14369,7 @@ const Spinner = ({ bgColor, fgColor, size = 64 }) => {
|
|
|
14369
14369
|
const tokens = useTokens();
|
|
14370
14370
|
const bg = bgColor || "transparent";
|
|
14371
14371
|
const fg = fgColor || tokens.TextColor.Default;
|
|
14372
|
-
const styles = getStyles$
|
|
14372
|
+
const styles = getStyles$1E(bg, fg, size);
|
|
14373
14373
|
const RANDOM_NUMBER = Math.random();
|
|
14374
14374
|
const idCutOff = `cut-off-${RANDOM_NUMBER}`;
|
|
14375
14375
|
const idSpinGradient = `spin-gradient-${RANDOM_NUMBER}`;
|
|
@@ -14416,7 +14416,7 @@ const animationModulate = dist.keyframes("modulate", {
|
|
|
14416
14416
|
"30%": { strokeDashoffset: 160 },
|
|
14417
14417
|
"100%": { strokeDashoffset: 270 }
|
|
14418
14418
|
});
|
|
14419
|
-
const getStyles$
|
|
14419
|
+
const getStyles$1E = (bgColor, fgColor, size) => ({
|
|
14420
14420
|
ring: {
|
|
14421
14421
|
animation: `1.6s linear infinite ${animationRotate}`,
|
|
14422
14422
|
width: size,
|
|
@@ -14474,7 +14474,7 @@ dist.keyframes("pulse", {
|
|
|
14474
14474
|
|
|
14475
14475
|
const LoadingSpinner = ({ showText = false, size = 48 }) => {
|
|
14476
14476
|
const tokens = useTokens();
|
|
14477
|
-
const styles = getStyles$
|
|
14477
|
+
const styles = getStyles$1D(tokens);
|
|
14478
14478
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.container, children: [
|
|
14479
14479
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
14480
14480
|
Spinner,
|
|
@@ -14487,7 +14487,7 @@ const LoadingSpinner = ({ showText = false, size = 48 }) => {
|
|
|
14487
14487
|
showText && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.text, children: __("Loading ...") })
|
|
14488
14488
|
] });
|
|
14489
14489
|
};
|
|
14490
|
-
const getStyles$
|
|
14490
|
+
const getStyles$1D = (tokens) => {
|
|
14491
14491
|
return {
|
|
14492
14492
|
container: {
|
|
14493
14493
|
backgroundColor: tokens.BackgroundColor.Container,
|
|
@@ -45255,7 +45255,7 @@ const AuthenticationMethods = {
|
|
|
45255
45255
|
|
|
45256
45256
|
const GenericError = ({ loadError, onAnalyticPageview, subtitle, title }) => {
|
|
45257
45257
|
const tokens = useTokens();
|
|
45258
|
-
const styles = getStyles$
|
|
45258
|
+
const styles = getStyles$1C(tokens);
|
|
45259
45259
|
useEffect(() => {
|
|
45260
45260
|
if (!isRunningE2ETests())
|
|
45261
45261
|
onAnalyticPageview(
|
|
@@ -45281,7 +45281,7 @@ const GenericError = ({ loadError, onAnalyticPageview, subtitle, title }) => {
|
|
|
45281
45281
|
subtitle && /* @__PURE__ */ jsxRuntimeExports.jsx(x, { component: "h2", truncate: false, variant: "Paragraph", children: subtitle })
|
|
45282
45282
|
] });
|
|
45283
45283
|
};
|
|
45284
|
-
function getStyles$
|
|
45284
|
+
function getStyles$1C(tokens) {
|
|
45285
45285
|
return {
|
|
45286
45286
|
container: {
|
|
45287
45287
|
backgroundColor: tokens.BackgroundColor.Container,
|
|
@@ -49103,10 +49103,10 @@ const fadeOut = (el, direction = "up", duration = 500) => {
|
|
|
49103
49103
|
};
|
|
49104
49104
|
|
|
49105
49105
|
const SlideDown = ({ delay = 0, duration = 300, children }) => {
|
|
49106
|
-
const styles = getStyles$
|
|
49106
|
+
const styles = getStyles$1B(delay, duration);
|
|
49107
49107
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: styles, children });
|
|
49108
49108
|
};
|
|
49109
|
-
const getStyles$
|
|
49109
|
+
const getStyles$1B = (delay, duration) => {
|
|
49110
49110
|
const slideAnimation = dist.keyframes({
|
|
49111
49111
|
from: {
|
|
49112
49112
|
opacity: 0,
|
|
@@ -49193,14 +49193,14 @@ const propTypes$2 = {
|
|
|
49193
49193
|
const ConnectInstitutionHeader = (props) => {
|
|
49194
49194
|
const colorScheme = useSelector(selectColorScheme);
|
|
49195
49195
|
useTokens();
|
|
49196
|
-
const styles = getStyles$
|
|
49196
|
+
const styles = getStyles$1A();
|
|
49197
49197
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-test": "disclosure-svg-header", style: styles.container, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.backdropImage, children: [
|
|
49198
49198
|
colorScheme === COLOR_SCHEME.LIGHT ? /* @__PURE__ */ jsxRuntimeExports.jsx(SvgHeaderBackdropLight, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(SvgHeaderBackdropDark, {}),
|
|
49199
49199
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.device, children: /* @__PURE__ */ jsxRuntimeExports.jsx(SvgHeaderDevice, {}) }),
|
|
49200
49200
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.institutionLogo, children: props.institutionGuid ? /* @__PURE__ */ jsxRuntimeExports.jsx(InstitutionLogo, { alt: "", institutionGuid: props.institutionGuid, size: 64 }) : /* @__PURE__ */ jsxRuntimeExports.jsx(SvgHeaderDefaultInstitution, {}) })
|
|
49201
49201
|
] }) });
|
|
49202
49202
|
};
|
|
49203
|
-
function getStyles$
|
|
49203
|
+
function getStyles$1A() {
|
|
49204
49204
|
const maxHeight = "64px";
|
|
49205
49205
|
const maxWidth = "240px";
|
|
49206
49206
|
return {
|
|
@@ -49247,7 +49247,7 @@ const GoBackButton = forwardRef((props, ref) => {
|
|
|
49247
49247
|
const defaultRef = useRef(null);
|
|
49248
49248
|
const { handleGoBack } = props;
|
|
49249
49249
|
const tokens = useTokens();
|
|
49250
|
-
const styles = getStyles$
|
|
49250
|
+
const styles = getStyles$1z(tokens);
|
|
49251
49251
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
49252
49252
|
IconButton$1,
|
|
49253
49253
|
{
|
|
@@ -49267,7 +49267,7 @@ const GoBackButton = forwardRef((props, ref) => {
|
|
|
49267
49267
|
}
|
|
49268
49268
|
);
|
|
49269
49269
|
});
|
|
49270
|
-
const getStyles$
|
|
49270
|
+
const getStyles$1z = (tokens) => ({
|
|
49271
49271
|
height: "44px",
|
|
49272
49272
|
margin: `0px ${tokens.Spacing.XSmall}px ${tokens.Spacing.XSmall}px -${tokens.Spacing.Medium}px`,
|
|
49273
49273
|
padding: `0px 8px`,
|
|
@@ -49280,7 +49280,7 @@ GoBackButton.displayName = "GoBackButton";
|
|
|
49280
49280
|
|
|
49281
49281
|
const LeavingNoticeFlat = ({ onContinue, onCancel, portalTo = "connect-wrapper" }) => {
|
|
49282
49282
|
const tokens = useTokens();
|
|
49283
|
-
const styles = getStyles$
|
|
49283
|
+
const styles = getStyles$1y(tokens);
|
|
49284
49284
|
const getNextDelay = getDelay();
|
|
49285
49285
|
return createPortal(
|
|
49286
49286
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { role: "alert", style: styles.container, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.content, children: [
|
|
@@ -49342,7 +49342,7 @@ const LeavingNoticeFlat = ({ onContinue, onCancel, portalTo = "connect-wrapper"
|
|
|
49342
49342
|
document.getElementById(portalTo)
|
|
49343
49343
|
);
|
|
49344
49344
|
};
|
|
49345
|
-
const getStyles$
|
|
49345
|
+
const getStyles$1y = (tokens) => {
|
|
49346
49346
|
return {
|
|
49347
49347
|
container: {
|
|
49348
49348
|
top: 0,
|
|
@@ -51130,7 +51130,7 @@ const PrivacyPolicy = () => {
|
|
|
51130
51130
|
const [currentUrl, setCurrentUrl] = useState(null);
|
|
51131
51131
|
const getNextDelay = getDelay();
|
|
51132
51132
|
const tokens = useTokens();
|
|
51133
|
-
const styles = getStyles$
|
|
51133
|
+
const styles = getStyles$1x(tokens);
|
|
51134
51134
|
const handleLinkClick = (url, isExternalUrl = true) => {
|
|
51135
51135
|
const newUrl = { url, isExternalUrl };
|
|
51136
51136
|
if (showExternalLinkPopup) {
|
|
@@ -51215,7 +51215,7 @@ const PrivacyPolicy = () => {
|
|
|
51215
51215
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: privacyData.body.map((el, i) => buildElementJSX(el, i)) })
|
|
51216
51216
|
] }) });
|
|
51217
51217
|
};
|
|
51218
|
-
const getStyles$
|
|
51218
|
+
const getStyles$1x = (tokens) => ({
|
|
51219
51219
|
header: {
|
|
51220
51220
|
display: "flex",
|
|
51221
51221
|
flexDirection: "column"
|
|
@@ -51283,7 +51283,7 @@ MXLogo.displayName = "MXLogo";
|
|
|
51283
51283
|
|
|
51284
51284
|
const PoweredByMXText = () => {
|
|
51285
51285
|
const tokens = useTokens();
|
|
51286
|
-
const styles = getStyles$
|
|
51286
|
+
const styles = getStyles$1w(tokens);
|
|
51287
51287
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.poweredBy, children: [
|
|
51288
51288
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: styles.accessibleAriaLabel, children: `${__("Data access by")} MX` }),
|
|
51289
51289
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
@@ -51305,7 +51305,7 @@ const PoweredByMXText = () => {
|
|
|
51305
51305
|
/* @__PURE__ */ jsxRuntimeExports.jsx(MXLogo, { color: tokens.TextColor.Default, size: 25 })
|
|
51306
51306
|
] });
|
|
51307
51307
|
};
|
|
51308
|
-
const getStyles$
|
|
51308
|
+
const getStyles$1w = (tokens) => {
|
|
51309
51309
|
return {
|
|
51310
51310
|
accessibleAriaLabel: {
|
|
51311
51311
|
position: "absolute",
|
|
@@ -51337,7 +51337,7 @@ const Disclosure = React__default.forwardRef((props, disclosureRef) => {
|
|
|
51337
51337
|
const containerRef = useRef(null);
|
|
51338
51338
|
useAnalyticsPath(...PageviewInfo.CONNECT_DISCLOSURE);
|
|
51339
51339
|
const tokens = useTokens();
|
|
51340
|
-
const styles = getStyles$
|
|
51340
|
+
const styles = getStyles$1v(tokens);
|
|
51341
51341
|
const getNextDelay = getDelay();
|
|
51342
51342
|
const [showPrivacyPolicy, setShowPrivacyPolicy] = useState(false);
|
|
51343
51343
|
const IS_IN_AGG_MODE = mode === AGG_MODE;
|
|
@@ -51444,7 +51444,7 @@ const Disclosure = React__default.forwardRef((props, disclosureRef) => {
|
|
|
51444
51444
|
}
|
|
51445
51445
|
);
|
|
51446
51446
|
});
|
|
51447
|
-
const getStyles$
|
|
51447
|
+
const getStyles$1v = (tokens) => {
|
|
51448
51448
|
return {
|
|
51449
51449
|
svg: {
|
|
51450
51450
|
margin: `${tokens.Spacing.Large}px auto 0`,
|
|
@@ -53521,7 +53521,7 @@ ToggleBase.displayName = "ToggleBase";
|
|
|
53521
53521
|
const CheckBox = ({ className = "", error, labelPosition = LEFT, size = 16, ...rest }) => {
|
|
53522
53522
|
const isLabelLeft = labelPosition === LEFT;
|
|
53523
53523
|
const tokens = useTokens();
|
|
53524
|
-
const styles = getStyles$
|
|
53524
|
+
const styles = getStyles$1u(tokens, size, isLabelLeft, error);
|
|
53525
53525
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
53526
53526
|
ToggleBase,
|
|
53527
53527
|
{
|
|
@@ -53543,7 +53543,7 @@ const CheckBox = ({ className = "", error, labelPosition = LEFT, size = 16, ...r
|
|
|
53543
53543
|
}
|
|
53544
53544
|
);
|
|
53545
53545
|
};
|
|
53546
|
-
const getStyles$
|
|
53546
|
+
const getStyles$1u = (tokens, size, isLabelLeft, error) => ({
|
|
53547
53547
|
container: {
|
|
53548
53548
|
"& > input + .togglebase-label:before": {
|
|
53549
53549
|
boxSizing: "border-box",
|
|
@@ -53671,7 +53671,7 @@ const TextInput = forwardRef(
|
|
|
53671
53671
|
const tokens = useTokens();
|
|
53672
53672
|
const labelWidth = !maxLabelWidth ? DEFAULT_LABEL_WIDTH : maxLabelWidth;
|
|
53673
53673
|
const isMultilineLabel = label?.length > labelWidth ? -tokens.Spacing.Medium : -tokens.Spacing.XSmall;
|
|
53674
|
-
const styles = getStyles$
|
|
53674
|
+
const styles = getStyles$1t(tokens, label, showSecondaryLabelBackground, isMultilineLabel);
|
|
53675
53675
|
const defaultRef = useRef();
|
|
53676
53676
|
const inputRef = ref || defaultRef;
|
|
53677
53677
|
const inputId = id || name;
|
|
@@ -53734,7 +53734,7 @@ const TextInput = forwardRef(
|
|
|
53734
53734
|
);
|
|
53735
53735
|
}
|
|
53736
53736
|
);
|
|
53737
|
-
const getStyles$
|
|
53737
|
+
const getStyles$1t = (tokens, label, showSecondaryLabelBackground, isMultilineLabel) => {
|
|
53738
53738
|
return {
|
|
53739
53739
|
container: {
|
|
53740
53740
|
// paragraph tag reset
|
|
@@ -53945,7 +53945,7 @@ const filterValue = (value) => {
|
|
|
53945
53945
|
const ColorInput = forwardRef(
|
|
53946
53946
|
({ className = "", label, onChange, style, value, ...rest }, ref) => {
|
|
53947
53947
|
const tokens = useTokens();
|
|
53948
|
-
const styles = getStyles$
|
|
53948
|
+
const styles = getStyles$1s(tokens, { value });
|
|
53949
53949
|
const defaultRef = useRef();
|
|
53950
53950
|
const inputRef = ref || defaultRef;
|
|
53951
53951
|
const handleChange = (e) => {
|
|
@@ -53970,7 +53970,7 @@ const ColorInput = forwardRef(
|
|
|
53970
53970
|
] });
|
|
53971
53971
|
}
|
|
53972
53972
|
);
|
|
53973
|
-
const getStyles$
|
|
53973
|
+
const getStyles$1s = (tokens, { value }) => {
|
|
53974
53974
|
return {
|
|
53975
53975
|
display: "flex",
|
|
53976
53976
|
alignItems: "flex-end",
|
|
@@ -54072,7 +54072,7 @@ const PasswordInput = forwardRef(
|
|
|
54072
54072
|
const [showPassword, setShowPassword] = useState(false);
|
|
54073
54073
|
const defaultRef = useRef(0);
|
|
54074
54074
|
const inputRef = ref || defaultRef;
|
|
54075
|
-
const styles = getStyles$
|
|
54075
|
+
const styles = getStyles$1r(tokens);
|
|
54076
54076
|
const [capsLockDetected, setCapsLockDetected] = useState(false);
|
|
54077
54077
|
const [validationState, setValidationState] = useState(DEFAULT_VALIDATION_STATE$1);
|
|
54078
54078
|
const [warningMessage, setWarningMessage] = useState("");
|
|
@@ -54158,7 +54158,7 @@ const PasswordInput = forwardRef(
|
|
|
54158
54158
|
);
|
|
54159
54159
|
}
|
|
54160
54160
|
);
|
|
54161
|
-
const getStyles$
|
|
54161
|
+
const getStyles$1r = (tokens) => ({
|
|
54162
54162
|
button: {
|
|
54163
54163
|
color: tokens.TextColor.ButtonTransparent,
|
|
54164
54164
|
border: "none",
|
|
@@ -54214,7 +54214,7 @@ PasswordInput.displayName = "PasswordInput";
|
|
|
54214
54214
|
const Radio = ({ className = "", labelPosition = LEFT, size = 16, ...rest }) => {
|
|
54215
54215
|
const isLabelLeft = labelPosition === LEFT;
|
|
54216
54216
|
const tokens = useTokens();
|
|
54217
|
-
const styles = getStyles$
|
|
54217
|
+
const styles = getStyles$1q(tokens, size, isLabelLeft);
|
|
54218
54218
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
54219
54219
|
ToggleBase,
|
|
54220
54220
|
{
|
|
@@ -54227,7 +54227,7 @@ const Radio = ({ className = "", labelPosition = LEFT, size = 16, ...rest }) =>
|
|
|
54227
54227
|
}
|
|
54228
54228
|
);
|
|
54229
54229
|
};
|
|
54230
|
-
const getStyles$
|
|
54230
|
+
const getStyles$1q = (tokens, size, isLabelLeft) => ({
|
|
54231
54231
|
container: {
|
|
54232
54232
|
"& > input + label": {
|
|
54233
54233
|
display: "inline-block"
|
|
@@ -57265,13 +57265,13 @@ const itemShape = PropTypes$1.shape({
|
|
|
57265
57265
|
|
|
57266
57266
|
const DescriptionText = ({ buttonPropsId, showDescriptionIcon, description }) => {
|
|
57267
57267
|
const tokens = useTokens();
|
|
57268
|
-
const styles = getStyles$
|
|
57268
|
+
const styles = getStyles$1p(tokens);
|
|
57269
57269
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: dist.css(styles.textContainer), id: `${buttonPropsId}-description`, children: [
|
|
57270
57270
|
showDescriptionIcon ? /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: dist.css(styles.textIconContainer), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Help, { color: tokens.TextColor.InputLabel, size: 12 }) }) : null,
|
|
57271
57271
|
description
|
|
57272
57272
|
] });
|
|
57273
57273
|
};
|
|
57274
|
-
const getStyles$
|
|
57274
|
+
const getStyles$1p = (tokens) => ({
|
|
57275
57275
|
textContainer: {
|
|
57276
57276
|
display: "flex",
|
|
57277
57277
|
marginTop: tokens.Spacing.Tiny,
|
|
@@ -57294,13 +57294,13 @@ DescriptionText.propTypes = {
|
|
|
57294
57294
|
|
|
57295
57295
|
const ErrorText = ({ buttonPropsId, showErrorIcon, errorText }) => {
|
|
57296
57296
|
const tokens = useTokens();
|
|
57297
|
-
const styles = getStyles$
|
|
57297
|
+
const styles = getStyles$1o(tokens);
|
|
57298
57298
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: dist.css(styles.errorContainer), id: `${buttonPropsId}-error`, children: [
|
|
57299
57299
|
showErrorIcon ? /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: dist.css(styles.textIconContainer), children: /* @__PURE__ */ jsxRuntimeExports.jsx(CloseFilled, { color: tokens.TextColor.Error, size: 12 }) }) : null,
|
|
57300
57300
|
errorText
|
|
57301
57301
|
] });
|
|
57302
57302
|
};
|
|
57303
|
-
const getStyles$
|
|
57303
|
+
const getStyles$1o = (tokens) => ({
|
|
57304
57304
|
errorContainer: {
|
|
57305
57305
|
display: "flex",
|
|
57306
57306
|
marginTop: tokens.Spacing.Tiny,
|
|
@@ -57588,7 +57588,7 @@ const Select = ({
|
|
|
57588
57588
|
});
|
|
57589
57589
|
const tokens = useTokens();
|
|
57590
57590
|
const labelPosition = label?.length > LABEL_LENGTH ? -tokens.Spacing.Medium : -tokens.Spacing.XSmall;
|
|
57591
|
-
const styles = getStyles$
|
|
57591
|
+
const styles = getStyles$1n(tokens, labelPosition, label, showSecondaryLabelBackground);
|
|
57592
57592
|
const buttonProps = getToggleButtonProps({
|
|
57593
57593
|
disabled: isDisabled,
|
|
57594
57594
|
name
|
|
@@ -57684,7 +57684,7 @@ const Select = ({
|
|
|
57684
57684
|
}
|
|
57685
57685
|
);
|
|
57686
57686
|
};
|
|
57687
|
-
const getStyles$
|
|
57687
|
+
const getStyles$1n = (tokens, labelPosition, label, showSecondaryLabelBackground) => {
|
|
57688
57688
|
return {
|
|
57689
57689
|
container: {
|
|
57690
57690
|
"& p": {
|
|
@@ -57876,7 +57876,7 @@ const SelectionBox = ({
|
|
|
57876
57876
|
variant = "radio"
|
|
57877
57877
|
}) => {
|
|
57878
57878
|
const tokens = useTokens();
|
|
57879
|
-
const styles = getStyles$
|
|
57879
|
+
const styles = getStyles$1m(borderType, checked, children, disabled, error, tokens);
|
|
57880
57880
|
const [isFocused, setIsFocused] = useState(false);
|
|
57881
57881
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
57882
57882
|
"label",
|
|
@@ -57927,7 +57927,7 @@ const SelectionBox = ({
|
|
|
57927
57927
|
}
|
|
57928
57928
|
);
|
|
57929
57929
|
};
|
|
57930
|
-
const getStyles$
|
|
57930
|
+
const getStyles$1m = (borderType, checked, children, disabled, error, tokens) => ({
|
|
57931
57931
|
wrapper: {
|
|
57932
57932
|
display: "flex",
|
|
57933
57933
|
flexDirection: "column",
|
|
@@ -58355,7 +58355,7 @@ const FeedbackRadioButton = ({
|
|
|
58355
58355
|
}
|
|
58356
58356
|
};
|
|
58357
58357
|
const tokens = useTokens();
|
|
58358
|
-
const styles = getStyles$
|
|
58358
|
+
const styles = getStyles$1l(tokens);
|
|
58359
58359
|
useEffect(() => {
|
|
58360
58360
|
let feedbackIcon = null;
|
|
58361
58361
|
if (checked[variant]) {
|
|
@@ -58402,7 +58402,7 @@ FeedbackRadioButton.propTypes = {
|
|
|
58402
58402
|
value: PropTypes$1.number.isRequired,
|
|
58403
58403
|
variant: PropTypes$1.string
|
|
58404
58404
|
};
|
|
58405
|
-
const getStyles$
|
|
58405
|
+
const getStyles$1l = (tokens) => {
|
|
58406
58406
|
return {
|
|
58407
58407
|
wrapper: {
|
|
58408
58408
|
cursor: "pointer",
|
|
@@ -58498,7 +58498,7 @@ const UserFeedback = ({
|
|
|
58498
58498
|
};
|
|
58499
58499
|
const [checked, setChecked] = useState(DEFAULT_CHECKED_STATE);
|
|
58500
58500
|
const tokens = useTokens();
|
|
58501
|
-
const styles = getStyles$
|
|
58501
|
+
const styles = getStyles$1k(tokens, hasVisibleLables(feedbackLabels));
|
|
58502
58502
|
const onChangeHandler = (e) => {
|
|
58503
58503
|
const checkedVariant = e.target.id;
|
|
58504
58504
|
const value = e.target.value;
|
|
@@ -58576,7 +58576,7 @@ const UserFeedback = ({
|
|
|
58576
58576
|
)
|
|
58577
58577
|
] });
|
|
58578
58578
|
};
|
|
58579
|
-
const getStyles$
|
|
58579
|
+
const getStyles$1k = (tokens, hasVisibleLables2) => ({
|
|
58580
58580
|
display: "flex",
|
|
58581
58581
|
alignItems: "center",
|
|
58582
58582
|
justifyContent: "space-around",
|
|
@@ -58705,7 +58705,7 @@ const InstitutionGridTile = (props) => {
|
|
|
58705
58705
|
const width = trueWidth > 400 ? 400 : trueWidth;
|
|
58706
58706
|
const numColumns = width >= 360 ? 4 : 3;
|
|
58707
58707
|
const containerWidth = width >= 360 ? (width - margin) / numColumns : (width - margin) / numColumns;
|
|
58708
|
-
const styles = getStyles$
|
|
58708
|
+
const styles = getStyles$1j(tokens, containerWidth);
|
|
58709
58709
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
58710
58710
|
Button$1,
|
|
58711
58711
|
{
|
|
@@ -58746,7 +58746,7 @@ const InstitutionGridTile = (props) => {
|
|
|
58746
58746
|
}
|
|
58747
58747
|
);
|
|
58748
58748
|
};
|
|
58749
|
-
const getStyles$
|
|
58749
|
+
const getStyles$1j = (tokens, width) => {
|
|
58750
58750
|
return {
|
|
58751
58751
|
container: {
|
|
58752
58752
|
padding: `${tokens.Spacing.Tiny}px ${tokens.Spacing.Tiny}px 0px`,
|
|
@@ -58811,7 +58811,7 @@ const InstituionGrid = (props) => {
|
|
|
58811
58811
|
const clientUsesOauth = useSelector((state) => state.profiles.clientProfile.uses_oauth ?? false);
|
|
58812
58812
|
const width = trueWidth;
|
|
58813
58813
|
const fourColumns = width >= 360;
|
|
58814
|
-
const styles = getStyles$
|
|
58814
|
+
const styles = getStyles$1i(fourColumns);
|
|
58815
58815
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.gridContainer, children: institutions.map((institution, i) => {
|
|
58816
58816
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
58817
58817
|
InstitutionGridTile,
|
|
@@ -58830,7 +58830,7 @@ const InstituionGrid = (props) => {
|
|
|
58830
58830
|
) }, `${i}-${institution.guid}`);
|
|
58831
58831
|
}) });
|
|
58832
58832
|
};
|
|
58833
|
-
const getStyles$
|
|
58833
|
+
const getStyles$1i = (fourColumns) => {
|
|
58834
58834
|
return {
|
|
58835
58835
|
gridContainer: {
|
|
58836
58836
|
display: "grid",
|
|
@@ -58856,7 +58856,7 @@ const PopularInstitutionsList = (props) => {
|
|
|
58856
58856
|
} = props;
|
|
58857
58857
|
const getNextDelay = getDelay();
|
|
58858
58858
|
const tokens = useTokens();
|
|
58859
|
-
const styles = getStyles$
|
|
58859
|
+
const styles = getStyles$1h(tokens);
|
|
58860
58860
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.listContainer, children: [
|
|
58861
58861
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
58862
58862
|
InstituionGrid,
|
|
@@ -58889,7 +58889,7 @@ const PopularInstitutionsList = (props) => {
|
|
|
58889
58889
|
] })
|
|
58890
58890
|
] });
|
|
58891
58891
|
};
|
|
58892
|
-
const getStyles$
|
|
58892
|
+
const getStyles$1h = (tokens) => {
|
|
58893
58893
|
return {
|
|
58894
58894
|
listContainer: {
|
|
58895
58895
|
display: "flex",
|
|
@@ -58965,7 +58965,7 @@ const formatUrl = (url) => {
|
|
|
58965
58965
|
const InstitutionTile = (props) => {
|
|
58966
58966
|
const { institution, selectInstitution, size } = props;
|
|
58967
58967
|
const tokens = useTokens();
|
|
58968
|
-
const styles = getStyles$
|
|
58968
|
+
const styles = getStyles$1g(tokens);
|
|
58969
58969
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
58970
58970
|
Button$1,
|
|
58971
58971
|
{
|
|
@@ -59018,7 +59018,7 @@ const InstitutionTile = (props) => {
|
|
|
59018
59018
|
}
|
|
59019
59019
|
);
|
|
59020
59020
|
};
|
|
59021
|
-
const getStyles$
|
|
59021
|
+
const getStyles$1g = (tokens) => {
|
|
59022
59022
|
return {
|
|
59023
59023
|
container: {
|
|
59024
59024
|
height: "72px",
|
|
@@ -59096,7 +59096,7 @@ const SearchedInstitutionsList = (props) => {
|
|
|
59096
59096
|
setAriaLiveRegionMessage
|
|
59097
59097
|
} = props;
|
|
59098
59098
|
const tokens = useTokens();
|
|
59099
|
-
const styles = getStyles$
|
|
59099
|
+
const styles = getStyles$1f(tokens);
|
|
59100
59100
|
const getNextDelay = getDelay();
|
|
59101
59101
|
const clientUsesOauth = useSelector((state) => state.profiles.clientProfile.uses_oauth ?? false);
|
|
59102
59102
|
const [currentPage, setCurrentPage] = useState(SEARCH_PAGE_DEFAULT);
|
|
@@ -59190,7 +59190,7 @@ const SearchedInstitutionsList = (props) => {
|
|
|
59190
59190
|
] })
|
|
59191
59191
|
] });
|
|
59192
59192
|
};
|
|
59193
|
-
const getStyles$
|
|
59193
|
+
const getStyles$1f = (tokens) => {
|
|
59194
59194
|
return {
|
|
59195
59195
|
container: {
|
|
59196
59196
|
background: tokens.BackgroundColor.Container,
|
|
@@ -59247,7 +59247,7 @@ const SearchNoResult = (props) => {
|
|
|
59247
59247
|
} = props;
|
|
59248
59248
|
const timerRef = useRef(null);
|
|
59249
59249
|
const tokens = useTokens();
|
|
59250
|
-
const styles = getStyles$
|
|
59250
|
+
const styles = getStyles$1e(tokens);
|
|
59251
59251
|
useEffect(() => {
|
|
59252
59252
|
timerRef.current = setTimeout(() => {
|
|
59253
59253
|
setAriaLiveRegionMessage(__("No results found for ”%1”", props.searchTerm));
|
|
@@ -59312,7 +59312,7 @@ const SearchNoResult = (props) => {
|
|
|
59312
59312
|
] })
|
|
59313
59313
|
] });
|
|
59314
59314
|
};
|
|
59315
|
-
const getStyles$
|
|
59315
|
+
const getStyles$1e = (tokens) => {
|
|
59316
59316
|
return {
|
|
59317
59317
|
container: {
|
|
59318
59318
|
overflow: "auto",
|
|
@@ -59351,7 +59351,7 @@ SearchNoResult.propTypes = {
|
|
|
59351
59351
|
const SearchFailed = () => {
|
|
59352
59352
|
useAnalyticsPath(...PageviewInfo.CONNECT_SEARCH_FAILED);
|
|
59353
59353
|
const tokens = useTokens();
|
|
59354
|
-
const styles = getStyles$
|
|
59354
|
+
const styles = getStyles$1d(tokens);
|
|
59355
59355
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.container, children: [
|
|
59356
59356
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.iconContainer, children: /* @__PURE__ */ jsxRuntimeExports.jsx(AttentionFilled, { color: tokens.Color.NeutralWhite, size: 24 }) }),
|
|
59357
59357
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.textContainer, children: [
|
|
@@ -59360,7 +59360,7 @@ const SearchFailed = () => {
|
|
|
59360
59360
|
] })
|
|
59361
59361
|
] });
|
|
59362
59362
|
};
|
|
59363
|
-
const getStyles$
|
|
59363
|
+
const getStyles$1d = (tokens) => {
|
|
59364
59364
|
return {
|
|
59365
59365
|
container: {
|
|
59366
59366
|
display: "flex",
|
|
@@ -59426,10 +59426,10 @@ const getFlexAlignmentCss = (alignmentKey) => {
|
|
|
59426
59426
|
|
|
59427
59427
|
const BaseLeft = ({ children, gap, alignSelf, ...rest }) => {
|
|
59428
59428
|
const tokens = useTokens();
|
|
59429
|
-
const styles = getStyles$
|
|
59429
|
+
const styles = getStyles$1c(gap, tokens, alignSelf);
|
|
59430
59430
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `kyper-utilityrow-base-left ${dist.css(styles.baseLeft)}`, ...rest, children });
|
|
59431
59431
|
};
|
|
59432
|
-
const getStyles$
|
|
59432
|
+
const getStyles$1c = (gap, tokens, alignSelf) => {
|
|
59433
59433
|
const alignmentCss = getFlexAlignmentCss(alignSelf);
|
|
59434
59434
|
return {
|
|
59435
59435
|
baseLeft: {
|
|
@@ -59517,7 +59517,7 @@ const Text = forwardRef(
|
|
|
59517
59517
|
}, ref) => {
|
|
59518
59518
|
const tokens = useTokens();
|
|
59519
59519
|
const componentAs = as || tagMapper[Element];
|
|
59520
|
-
const styles = getStyles$
|
|
59520
|
+
const styles = getStyles$1b(tokens, componentAs);
|
|
59521
59521
|
const defaultRef = useRef();
|
|
59522
59522
|
const textRef = ref || defaultRef;
|
|
59523
59523
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -59531,7 +59531,7 @@ const Text = forwardRef(
|
|
|
59531
59531
|
);
|
|
59532
59532
|
}
|
|
59533
59533
|
);
|
|
59534
|
-
const getStyles$
|
|
59534
|
+
const getStyles$1b = (tokens, as) => ({
|
|
59535
59535
|
wrapper: {
|
|
59536
59536
|
marginTop: 0,
|
|
59537
59537
|
marginRight: 0,
|
|
@@ -59613,13 +59613,13 @@ const LINK_VARIANTS = {
|
|
|
59613
59613
|
|
|
59614
59614
|
const BaseMiddle = ({ textColor, subTitle, title, ...rest }) => {
|
|
59615
59615
|
const tokens = useTokens();
|
|
59616
|
-
const styles = getStyles$
|
|
59616
|
+
const styles = getStyles$1a(tokens);
|
|
59617
59617
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `kyper-utilityrow-base-middle ${dist.css(styles.baseMiddle)}`, ...rest, children: [
|
|
59618
59618
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "Body", bold: !!subTitle, color: textColor, "data-ui-test": "kyper-utilityrow-title", children: title }),
|
|
59619
59619
|
subTitle && /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { as: "XSmall", color: textColor, "data-ui-test": "kyper-utilityrow-subtitle", children: subTitle })
|
|
59620
59620
|
] });
|
|
59621
59621
|
};
|
|
59622
|
-
const getStyles$
|
|
59622
|
+
const getStyles$1a = (tokens) => {
|
|
59623
59623
|
return {
|
|
59624
59624
|
baseMiddle: {
|
|
59625
59625
|
display: "flex",
|
|
@@ -59641,10 +59641,10 @@ BaseMiddle.displayName = "BaseMiddle";
|
|
|
59641
59641
|
|
|
59642
59642
|
const BaseRight = ({ alignSelf, children, gap, ...rest }) => {
|
|
59643
59643
|
const tokens = useTokens();
|
|
59644
|
-
const styles = getStyles$
|
|
59644
|
+
const styles = getStyles$19(alignSelf, gap, tokens);
|
|
59645
59645
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `kyper-utilityrow-base-right ${dist.css(styles.baseRight)}`, ...rest, children });
|
|
59646
59646
|
};
|
|
59647
|
-
const getStyles$
|
|
59647
|
+
const getStyles$19 = (alignSelf, gap, tokens) => {
|
|
59648
59648
|
const alignmentCss = getFlexAlignmentCss(alignSelf);
|
|
59649
59649
|
return {
|
|
59650
59650
|
baseRight: {
|
|
@@ -59681,7 +59681,7 @@ const BaseRow = ({
|
|
|
59681
59681
|
...rest
|
|
59682
59682
|
}) => {
|
|
59683
59683
|
const tokens = useTokens();
|
|
59684
|
-
const styles = getStyles$
|
|
59684
|
+
const styles = getStyles$18(leftChildren, tokens);
|
|
59685
59685
|
const Element = onClick ? "button" : "div";
|
|
59686
59686
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
59687
59687
|
Element,
|
|
@@ -59710,7 +59710,7 @@ const BaseRow = ({
|
|
|
59710
59710
|
}
|
|
59711
59711
|
);
|
|
59712
59712
|
};
|
|
59713
|
-
const getStyles$
|
|
59713
|
+
const getStyles$18 = (leftChildren, tokens) => dist.css({
|
|
59714
59714
|
minHeight: 64,
|
|
59715
59715
|
width: "100%",
|
|
59716
59716
|
boxSizing: "border-box",
|
|
@@ -59869,7 +59869,7 @@ const SupportMenu = React__default.forwardRef((props, menuRef) => {
|
|
|
59869
59869
|
const { selectGeneralSupport, selectRequestInstitution } = props;
|
|
59870
59870
|
useAnalyticsPath(...PageviewInfo.CONNECT_SUPPORT_MENU);
|
|
59871
59871
|
const tokens = useTokens();
|
|
59872
|
-
const styles = getStyles$
|
|
59872
|
+
const styles = getStyles$17(tokens);
|
|
59873
59873
|
const getNextDelay = getDelay();
|
|
59874
59874
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: menuRef, children: [
|
|
59875
59875
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsx(x, { style: styles.title, truncate: false, variant: "H2", children: __("Get help") }) }),
|
|
@@ -59897,7 +59897,7 @@ const SupportMenu = React__default.forwardRef((props, menuRef) => {
|
|
|
59897
59897
|
] })
|
|
59898
59898
|
] });
|
|
59899
59899
|
});
|
|
59900
|
-
const getStyles$
|
|
59900
|
+
const getStyles$17 = (tokens) => ({
|
|
59901
59901
|
title: {
|
|
59902
59902
|
display: "block",
|
|
59903
59903
|
marginBottom: tokens.Spacing.XSmall
|
|
@@ -59911,7 +59911,7 @@ SupportMenu.displayName = "SupportMenu";
|
|
|
59911
59911
|
|
|
59912
59912
|
const PrivateAndSecure = ({ style }) => {
|
|
59913
59913
|
const tokens = useTokens();
|
|
59914
|
-
const styles = getStyles$
|
|
59914
|
+
const styles = getStyles$16(tokens);
|
|
59915
59915
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
59916
59916
|
"div",
|
|
59917
59917
|
{
|
|
@@ -59925,7 +59925,7 @@ const PrivateAndSecure = ({ style }) => {
|
|
|
59925
59925
|
}
|
|
59926
59926
|
);
|
|
59927
59927
|
};
|
|
59928
|
-
const getStyles$
|
|
59928
|
+
const getStyles$16 = (tokens) => ({
|
|
59929
59929
|
secureSeal: {
|
|
59930
59930
|
alignContent: "center",
|
|
59931
59931
|
color: tokens.TextColor.InputLabel,
|
|
@@ -59942,7 +59942,7 @@ const getStyles$14 = (tokens) => ({
|
|
|
59942
59942
|
const AriaLive = ({ level = "polite", message = "", timeout = 0, ...rest }) => {
|
|
59943
59943
|
const [ariaLiveRegionMessage, setAriaLiveRegionMessage] = useState("");
|
|
59944
59944
|
const timerRef = useRef();
|
|
59945
|
-
const styles = getStyles$
|
|
59945
|
+
const styles = getStyles$15();
|
|
59946
59946
|
useEffect(() => {
|
|
59947
59947
|
timerRef.current = setTimeout(() => {
|
|
59948
59948
|
setAriaLiveRegionMessage(message);
|
|
@@ -59954,7 +59954,7 @@ const AriaLive = ({ level = "polite", message = "", timeout = 0, ...rest }) => {
|
|
|
59954
59954
|
}, [message]);
|
|
59955
59955
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "aria-live": level, style: styles.accessibilityStyles, ...rest, children: ariaLiveRegionMessage });
|
|
59956
59956
|
};
|
|
59957
|
-
const getStyles$
|
|
59957
|
+
const getStyles$15 = () => {
|
|
59958
59958
|
return {
|
|
59959
59959
|
accessibilityStyles: {
|
|
59960
59960
|
border: 0,
|
|
@@ -61134,7 +61134,7 @@ const RequestInstitution = React__default.forwardRef((props, requestInstitutionR
|
|
|
61134
61134
|
initialForm
|
|
61135
61135
|
);
|
|
61136
61136
|
const tokens = useTokens();
|
|
61137
|
-
const styles = getStyles$
|
|
61137
|
+
const styles = getStyles$14(tokens);
|
|
61138
61138
|
const getNextDelay = getDelay();
|
|
61139
61139
|
useEffect(() => {
|
|
61140
61140
|
if (submitting) {
|
|
@@ -61265,7 +61265,7 @@ const RequestInstitution = React__default.forwardRef((props, requestInstitutionR
|
|
|
61265
61265
|
] })
|
|
61266
61266
|
] });
|
|
61267
61267
|
});
|
|
61268
|
-
const getStyles$
|
|
61268
|
+
const getStyles$14 = (tokens) => ({
|
|
61269
61269
|
title: {
|
|
61270
61270
|
display: "block",
|
|
61271
61271
|
marginBottom: tokens.Spacing.XSmall
|
|
@@ -61327,7 +61327,7 @@ const GeneralSupport = React__default.forwardRef((props, generalSupportRef) => {
|
|
|
61327
61327
|
initialForm
|
|
61328
61328
|
);
|
|
61329
61329
|
const tokens = useTokens();
|
|
61330
|
-
const styles = getStyles$
|
|
61330
|
+
const styles = getStyles$13(tokens);
|
|
61331
61331
|
const getNextDelay = getDelay();
|
|
61332
61332
|
useEffect(() => {
|
|
61333
61333
|
if (submitting) {
|
|
@@ -61437,7 +61437,7 @@ const GeneralSupport = React__default.forwardRef((props, generalSupportRef) => {
|
|
|
61437
61437
|
)
|
|
61438
61438
|
] });
|
|
61439
61439
|
});
|
|
61440
|
-
const getStyles$
|
|
61440
|
+
const getStyles$13 = (tokens) => ({
|
|
61441
61441
|
title: {
|
|
61442
61442
|
display: "block",
|
|
61443
61443
|
marginBottom: tokens.Spacing.XSmall
|
|
@@ -61471,7 +61471,7 @@ const SupportSuccess = React__default.forwardRef((props, supportSuccessRef) => {
|
|
|
61471
61471
|
const { email, handleClose } = props;
|
|
61472
61472
|
useAnalyticsPath(...PageviewInfo.CONNECT_SUPPORT_SUCCESS);
|
|
61473
61473
|
const tokens = useTokens();
|
|
61474
|
-
const styles = getStyles$
|
|
61474
|
+
const styles = getStyles$12(tokens);
|
|
61475
61475
|
const getNextDelay = getDelay();
|
|
61476
61476
|
const onClose = () => fadeOut(supportSuccessRef.current, "up", 300).then(() => handleClose());
|
|
61477
61477
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: supportSuccessRef, children: [
|
|
@@ -61498,7 +61498,7 @@ const SupportSuccess = React__default.forwardRef((props, supportSuccessRef) => {
|
|
|
61498
61498
|
] })
|
|
61499
61499
|
] });
|
|
61500
61500
|
});
|
|
61501
|
-
const getStyles$
|
|
61501
|
+
const getStyles$12 = (tokens) => ({
|
|
61502
61502
|
title: {
|
|
61503
61503
|
display: "block",
|
|
61504
61504
|
marginBottom: tokens.Spacing.XSmall
|
|
@@ -61533,7 +61533,7 @@ const Support = React__default.forwardRef((props, supportNavRef) => {
|
|
|
61533
61533
|
const generalSupportRef = useRef(null);
|
|
61534
61534
|
const supportSuccessRef = useRef(null);
|
|
61535
61535
|
const tokens = useTokens();
|
|
61536
|
-
const styles = getStyles
|
|
61536
|
+
const styles = getStyles$11(tokens);
|
|
61537
61537
|
useImperativeHandle(supportNavRef, () => {
|
|
61538
61538
|
return {
|
|
61539
61539
|
handleCloseSupport() {
|
|
@@ -61595,7 +61595,7 @@ const Support = React__default.forwardRef((props, supportNavRef) => {
|
|
|
61595
61595
|
)
|
|
61596
61596
|
] }) });
|
|
61597
61597
|
});
|
|
61598
|
-
const getStyles
|
|
61598
|
+
const getStyles$11 = (tokens) => ({
|
|
61599
61599
|
container: {
|
|
61600
61600
|
backgroundColor: tokens.BackgroundColor.Container,
|
|
61601
61601
|
minHeight: "100%",
|
|
@@ -61842,7 +61842,7 @@ const Search$2 = React__default.forwardRef((props, navigationRef) => {
|
|
|
61842
61842
|
}
|
|
61843
61843
|
}, 500);
|
|
61844
61844
|
const tokens = useTokens();
|
|
61845
|
-
const styles = getStyles$
|
|
61845
|
+
const styles = getStyles$10(tokens, state.currentView);
|
|
61846
61846
|
if (state.currentView === SEARCH_VIEWS.OOPS) {
|
|
61847
61847
|
throw state.error;
|
|
61848
61848
|
}
|
|
@@ -61963,7 +61963,7 @@ const Search$2 = React__default.forwardRef((props, navigationRef) => {
|
|
|
61963
61963
|
/* @__PURE__ */ jsxRuntimeExports.jsx(AriaLive, { level: "assertive", message: ariaLiveRegionMessage })
|
|
61964
61964
|
] });
|
|
61965
61965
|
});
|
|
61966
|
-
const getStyles$
|
|
61966
|
+
const getStyles$10 = (tokens) => {
|
|
61967
61967
|
return {
|
|
61968
61968
|
searchBar: {
|
|
61969
61969
|
marginBottom: `${tokens.Spacing.Small}px`
|
|
@@ -62066,7 +62066,7 @@ const Button = forwardRef(
|
|
|
62066
62066
|
...rest
|
|
62067
62067
|
}, ref) => {
|
|
62068
62068
|
const tokens = useTokens();
|
|
62069
|
-
const styles = getStyles
|
|
62069
|
+
const styles = getStyles$$(tokens, disabled, size);
|
|
62070
62070
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
62071
62071
|
"button",
|
|
62072
62072
|
{
|
|
@@ -62081,7 +62081,7 @@ const Button = forwardRef(
|
|
|
62081
62081
|
);
|
|
62082
62082
|
}
|
|
62083
62083
|
);
|
|
62084
|
-
const getStyles
|
|
62084
|
+
const getStyles$$ = (tokens, disabled, size) => ({
|
|
62085
62085
|
display: "flex",
|
|
62086
62086
|
alignItems: "center",
|
|
62087
62087
|
justifyContent: "center",
|
|
@@ -62280,7 +62280,7 @@ const IconButton = forwardRef(
|
|
|
62280
62280
|
...rest
|
|
62281
62281
|
}, ref) => {
|
|
62282
62282
|
const tokens = useTokens();
|
|
62283
|
-
const styles = getStyles$
|
|
62283
|
+
const styles = getStyles$_(tokens, { disabled, largeTouchTarget, variant });
|
|
62284
62284
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
62285
62285
|
"button",
|
|
62286
62286
|
{
|
|
@@ -62295,7 +62295,7 @@ const IconButton = forwardRef(
|
|
|
62295
62295
|
);
|
|
62296
62296
|
}
|
|
62297
62297
|
);
|
|
62298
|
-
const getStyles$
|
|
62298
|
+
const getStyles$_ = (tokens, { disabled, largeTouchTarget, variant }) => ({
|
|
62299
62299
|
display: "inline-flex",
|
|
62300
62300
|
alignItems: "center",
|
|
62301
62301
|
justifyContent: "center",
|
|
@@ -62401,7 +62401,7 @@ function MessageBox({
|
|
|
62401
62401
|
...rest
|
|
62402
62402
|
}) {
|
|
62403
62403
|
const tokens = useTokens();
|
|
62404
|
-
const styles = getStyles$
|
|
62404
|
+
const styles = getStyles$Z(borderRadius, title, tokens, variant);
|
|
62405
62405
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
62406
62406
|
"div",
|
|
62407
62407
|
{
|
|
@@ -62432,7 +62432,7 @@ function MessageBox({
|
|
|
62432
62432
|
}
|
|
62433
62433
|
);
|
|
62434
62434
|
}
|
|
62435
|
-
const getStyles$
|
|
62435
|
+
const getStyles$Z = (borderRadius, title, tokens, variant) => ({
|
|
62436
62436
|
messageBox: {
|
|
62437
62437
|
position: "relative",
|
|
62438
62438
|
color: tokens.TextColor.Default,
|
|
@@ -62506,7 +62506,7 @@ MessageBox.displayName = "MessageBox";
|
|
|
62506
62506
|
const InstitutionBlock = ({ institution, style }) => {
|
|
62507
62507
|
const { guid, logo_url, name, url } = institution;
|
|
62508
62508
|
const tokens = useTokens();
|
|
62509
|
-
const styles = getStyles$
|
|
62509
|
+
const styles = getStyles$Y(tokens);
|
|
62510
62510
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "data-test": "institution-block", style: { ...styles.institutionBlock, ...style }, children: [
|
|
62511
62511
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
62512
62512
|
De,
|
|
@@ -62524,7 +62524,7 @@ const InstitutionBlock = ({ institution, style }) => {
|
|
|
62524
62524
|
] })
|
|
62525
62525
|
] });
|
|
62526
62526
|
};
|
|
62527
|
-
const getStyles$
|
|
62527
|
+
const getStyles$Y = (tokens) => {
|
|
62528
62528
|
return {
|
|
62529
62529
|
institutionBlock: {
|
|
62530
62530
|
display: "flex",
|
|
@@ -62563,14 +62563,14 @@ InstitutionBlock.propTypes = {
|
|
|
62563
62563
|
|
|
62564
62564
|
const ViewTitle = ({ connectionStatus, title }) => {
|
|
62565
62565
|
const tokens = useTokens();
|
|
62566
|
-
const styles = getStyles$
|
|
62566
|
+
const styles = getStyles$X(tokens);
|
|
62567
62567
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.container, children: [
|
|
62568
62568
|
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { bold: true, component: "h2", "data-test": "title-text", truncate: false, variant: "H2", children: title }),
|
|
62569
62569
|
connectionStatus === ReadableStatuses$1.DEGRADED && /* @__PURE__ */ jsxRuntimeExports.jsx(InfoFilled, { color: tokens.BackgroundColor.MessageBoxHelp, size: 24 }),
|
|
62570
62570
|
connectionStatus === ReadableStatuses$1.REJECTED && /* @__PURE__ */ jsxRuntimeExports.jsx(AttentionFilled, { color: tokens.BackgroundColor.MessageBoxError, size: 24 })
|
|
62571
62571
|
] });
|
|
62572
62572
|
};
|
|
62573
|
-
const getStyles$
|
|
62573
|
+
const getStyles$X = (tokens) => ({
|
|
62574
62574
|
container: {
|
|
62575
62575
|
display: "flex",
|
|
62576
62576
|
justifyContent: "space-between",
|
|
@@ -62602,7 +62602,7 @@ const MFAOptions = (props) => {
|
|
|
62602
62602
|
return onSubmit(credentialsToSubmit);
|
|
62603
62603
|
};
|
|
62604
62604
|
const tokens = useTokens();
|
|
62605
|
-
const styles = getStyles$
|
|
62605
|
+
const styles = getStyles$W(tokens);
|
|
62606
62606
|
const mfaLabel = mfaCredentials.map((credential) => credential.label);
|
|
62607
62607
|
const dynamicLabel = mfaLabel[0] ? mfaLabel[0] : __("Choose an authentication method.");
|
|
62608
62608
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
@@ -62667,7 +62667,7 @@ const MFAOptions = (props) => {
|
|
|
62667
62667
|
)
|
|
62668
62668
|
] });
|
|
62669
62669
|
};
|
|
62670
|
-
const getStyles$
|
|
62670
|
+
const getStyles$W = (tokens) => {
|
|
62671
62671
|
return {
|
|
62672
62672
|
label: {
|
|
62673
62673
|
marginBottom: tokens.Spacing.Medium
|
|
@@ -62752,7 +62752,7 @@ const DefaultMFA = (props) => {
|
|
|
62752
62752
|
focusElement(button);
|
|
62753
62753
|
}, []);
|
|
62754
62754
|
const tokens = useTokens();
|
|
62755
|
-
const styles = getStyles$
|
|
62755
|
+
const styles = getStyles$V(tokens);
|
|
62756
62756
|
const credentials = mfaCredentials.map((credential) => credential);
|
|
62757
62757
|
const initialFormValues = buildInitialValues$1(credentials);
|
|
62758
62758
|
const formSchema = buildFormSchema$1(credentials);
|
|
@@ -62835,7 +62835,7 @@ const DefaultMFA = (props) => {
|
|
|
62835
62835
|
)
|
|
62836
62836
|
] });
|
|
62837
62837
|
};
|
|
62838
|
-
const getStyles$
|
|
62838
|
+
const getStyles$V = (tokens) => {
|
|
62839
62839
|
return {
|
|
62840
62840
|
label: {
|
|
62841
62841
|
marginBottom: tokens.Spacing.Large
|
|
@@ -62878,7 +62878,7 @@ const MFAImages = (props) => {
|
|
|
62878
62878
|
focusElement(button);
|
|
62879
62879
|
}, []);
|
|
62880
62880
|
const tokens = useTokens();
|
|
62881
|
-
const styles = getStyles$
|
|
62881
|
+
const styles = getStyles$U(tokens);
|
|
62882
62882
|
const [selectedOption, setSelectedOption] = useState({});
|
|
62883
62883
|
const [credentialsToSubmit, setCredentials] = useState(
|
|
62884
62884
|
mfaCredentials.map((cred) => ({ guid: cred.guid, value: null }))
|
|
@@ -62959,7 +62959,7 @@ const MFAImages = (props) => {
|
|
|
62959
62959
|
)
|
|
62960
62960
|
] });
|
|
62961
62961
|
};
|
|
62962
|
-
const getStyles$
|
|
62962
|
+
const getStyles$U = (tokens) => {
|
|
62963
62963
|
return {
|
|
62964
62964
|
label: {
|
|
62965
62965
|
marginBottom: tokens.Spacing.Medium
|
|
@@ -63056,7 +63056,7 @@ const MFAForm = (props) => {
|
|
|
63056
63056
|
const mfaCredentials = _get(currentMember, "mfa.credentials", []);
|
|
63057
63057
|
const mfaType = getMFAFieldType(mfaCredentials);
|
|
63058
63058
|
const isSAS = mfaCredentials[0].external_id === "single_account_select";
|
|
63059
|
-
const styles = getStyles$
|
|
63059
|
+
const styles = getStyles$T(tokens, isSAS);
|
|
63060
63060
|
const handleSubmit = (credentials) => {
|
|
63061
63061
|
const posthogEventMetadata = {
|
|
63062
63062
|
institution_guid: institution.guid,
|
|
@@ -63110,7 +63110,7 @@ const MFAForm = (props) => {
|
|
|
63110
63110
|
/* @__PURE__ */ jsxRuntimeExports.jsx("form", { onSubmit: (e) => e.preventDefault(), children: Form })
|
|
63111
63111
|
] });
|
|
63112
63112
|
};
|
|
63113
|
-
const getStyles$
|
|
63113
|
+
const getStyles$T = (tokens, isSAS) => {
|
|
63114
63114
|
return {
|
|
63115
63115
|
container: {
|
|
63116
63116
|
display: "flex",
|
|
@@ -63152,7 +63152,7 @@ const MFAStep = React__default.forwardRef((props, navigationRef) => {
|
|
|
63152
63152
|
const { api } = useApi();
|
|
63153
63153
|
const mfaCredentials = _get(currentMember, "mfa.credentials", []);
|
|
63154
63154
|
const tokens = useTokens();
|
|
63155
|
-
const styles = getStyles$
|
|
63155
|
+
const styles = getStyles$S(tokens);
|
|
63156
63156
|
const getNextDelay = getDelay();
|
|
63157
63157
|
useImperativeHandle(navigationRef, () => {
|
|
63158
63158
|
return {
|
|
@@ -63256,7 +63256,7 @@ MFAStep.propTypes = {
|
|
|
63256
63256
|
onGoBack: PropTypes$1.func.isRequired
|
|
63257
63257
|
};
|
|
63258
63258
|
MFAStep.displayName = "MFAStep";
|
|
63259
|
-
const getStyles$
|
|
63259
|
+
const getStyles$S = (tokens) => {
|
|
63260
63260
|
return {
|
|
63261
63261
|
goBackButton: {
|
|
63262
63262
|
marginRight: tokens.Spacing.Large,
|
|
@@ -63289,7 +63289,7 @@ const Export = createSvgIcon$2(({ color }) => /* @__PURE__ */ jsxRuntimeExports.
|
|
|
63289
63289
|
] }));
|
|
63290
63290
|
Export.displayName = "Export";
|
|
63291
63291
|
|
|
63292
|
-
/*! @license DOMPurify 3.
|
|
63292
|
+
/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */
|
|
63293
63293
|
|
|
63294
63294
|
const {
|
|
63295
63295
|
entries,
|
|
@@ -63328,8 +63328,10 @@ if (!construct) {
|
|
|
63328
63328
|
};
|
|
63329
63329
|
}
|
|
63330
63330
|
const arrayForEach = unapply(Array.prototype.forEach);
|
|
63331
|
+
const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);
|
|
63331
63332
|
const arrayPop = unapply(Array.prototype.pop);
|
|
63332
63333
|
const arrayPush = unapply(Array.prototype.push);
|
|
63334
|
+
const arraySplice = unapply(Array.prototype.splice);
|
|
63333
63335
|
const stringToLowerCase = unapply(String.prototype.toLowerCase);
|
|
63334
63336
|
const stringToString = unapply(String.prototype.toString);
|
|
63335
63337
|
const stringMatch = unapply(String.prototype.match);
|
|
@@ -63339,12 +63341,11 @@ const stringTrim = unapply(String.prototype.trim);
|
|
|
63339
63341
|
const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);
|
|
63340
63342
|
const regExpTest = unapply(RegExp.prototype.test);
|
|
63341
63343
|
const typeErrorCreate = unconstruct(TypeError);
|
|
63342
|
-
|
|
63343
63344
|
/**
|
|
63344
63345
|
* Creates a new function that calls the given function with a specified thisArg and arguments.
|
|
63345
63346
|
*
|
|
63346
|
-
* @param
|
|
63347
|
-
* @returns
|
|
63347
|
+
* @param func - The function to be wrapped and called.
|
|
63348
|
+
* @returns A new function that calls the given function with a specified thisArg and arguments.
|
|
63348
63349
|
*/
|
|
63349
63350
|
function unapply(func) {
|
|
63350
63351
|
return function (thisArg) {
|
|
@@ -63354,12 +63355,11 @@ function unapply(func) {
|
|
|
63354
63355
|
return apply(func, thisArg, args);
|
|
63355
63356
|
};
|
|
63356
63357
|
}
|
|
63357
|
-
|
|
63358
63358
|
/**
|
|
63359
63359
|
* Creates a new function that constructs an instance of the given constructor function with the provided arguments.
|
|
63360
63360
|
*
|
|
63361
|
-
* @param
|
|
63362
|
-
* @returns
|
|
63361
|
+
* @param func - The constructor function to be wrapped and called.
|
|
63362
|
+
* @returns A new function that constructs an instance of the given constructor function with the provided arguments.
|
|
63363
63363
|
*/
|
|
63364
63364
|
function unconstruct(func) {
|
|
63365
63365
|
return function () {
|
|
@@ -63369,14 +63369,13 @@ function unconstruct(func) {
|
|
|
63369
63369
|
return construct(func, args);
|
|
63370
63370
|
};
|
|
63371
63371
|
}
|
|
63372
|
-
|
|
63373
63372
|
/**
|
|
63374
63373
|
* Add properties to a lookup table
|
|
63375
63374
|
*
|
|
63376
|
-
* @param
|
|
63377
|
-
* @param
|
|
63378
|
-
* @param
|
|
63379
|
-
* @returns
|
|
63375
|
+
* @param set - The set to which elements will be added.
|
|
63376
|
+
* @param array - The array containing elements to be added to the set.
|
|
63377
|
+
* @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.
|
|
63378
|
+
* @returns The modified set with added elements.
|
|
63380
63379
|
*/
|
|
63381
63380
|
function addToSet(set, array) {
|
|
63382
63381
|
let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;
|
|
@@ -63403,12 +63402,11 @@ function addToSet(set, array) {
|
|
|
63403
63402
|
}
|
|
63404
63403
|
return set;
|
|
63405
63404
|
}
|
|
63406
|
-
|
|
63407
63405
|
/**
|
|
63408
63406
|
* Clean up an array to harden against CSPP
|
|
63409
63407
|
*
|
|
63410
|
-
* @param
|
|
63411
|
-
* @returns
|
|
63408
|
+
* @param array - The array to be cleaned.
|
|
63409
|
+
* @returns The cleaned version of the array
|
|
63412
63410
|
*/
|
|
63413
63411
|
function cleanArray(array) {
|
|
63414
63412
|
for (let index = 0; index < array.length; index++) {
|
|
@@ -63419,12 +63417,11 @@ function cleanArray(array) {
|
|
|
63419
63417
|
}
|
|
63420
63418
|
return array;
|
|
63421
63419
|
}
|
|
63422
|
-
|
|
63423
63420
|
/**
|
|
63424
63421
|
* Shallow clone an object
|
|
63425
63422
|
*
|
|
63426
|
-
* @param
|
|
63427
|
-
* @returns
|
|
63423
|
+
* @param object - The object to be cloned.
|
|
63424
|
+
* @returns A new object that copies the original.
|
|
63428
63425
|
*/
|
|
63429
63426
|
function clone(object) {
|
|
63430
63427
|
const newObject = create(null);
|
|
@@ -63442,13 +63439,12 @@ function clone(object) {
|
|
|
63442
63439
|
}
|
|
63443
63440
|
return newObject;
|
|
63444
63441
|
}
|
|
63445
|
-
|
|
63446
63442
|
/**
|
|
63447
63443
|
* This method automatically checks if the prop is function or getter and behaves accordingly.
|
|
63448
63444
|
*
|
|
63449
|
-
* @param
|
|
63450
|
-
* @param
|
|
63451
|
-
* @returns
|
|
63445
|
+
* @param object - The object to look up the getter function in its prototype chain.
|
|
63446
|
+
* @param prop - The property name for which to find the getter function.
|
|
63447
|
+
* @returns The getter function found in the prototype chain or a fallback function.
|
|
63452
63448
|
*/
|
|
63453
63449
|
function lookupGetter(object, prop) {
|
|
63454
63450
|
while (object !== null) {
|
|
@@ -63470,33 +63466,29 @@ function lookupGetter(object, prop) {
|
|
|
63470
63466
|
}
|
|
63471
63467
|
|
|
63472
63468
|
const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
|
|
63473
|
-
|
|
63474
|
-
// SVG
|
|
63475
63469
|
const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
|
|
63476
63470
|
const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);
|
|
63477
|
-
|
|
63478
63471
|
// List of SVG elements that are disallowed by default.
|
|
63479
63472
|
// We still need to know them so that we can do namespace
|
|
63480
63473
|
// checks properly in case one wants to add them to
|
|
63481
63474
|
// allow-list.
|
|
63482
63475
|
const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);
|
|
63483
63476
|
const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);
|
|
63484
|
-
|
|
63485
63477
|
// Similarly to SVG, we want to know all MathML elements,
|
|
63486
63478
|
// even those that we disallow by default.
|
|
63487
63479
|
const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
|
|
63488
63480
|
const text = freeze(['#text']);
|
|
63489
63481
|
|
|
63490
63482
|
const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
|
|
63491
|
-
const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
|
|
63483
|
+
const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
|
|
63492
63484
|
const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
|
|
63493
63485
|
const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
|
|
63494
63486
|
|
|
63495
63487
|
// eslint-disable-next-line unicorn/better-regex
|
|
63496
63488
|
const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode
|
|
63497
63489
|
const ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
|
|
63498
|
-
const TMPLIT_EXPR = seal(
|
|
63499
|
-
const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]
|
|
63490
|
+
const TMPLIT_EXPR = seal(/\$\{[\w\W]*/gm); // eslint-disable-line unicorn/better-regex
|
|
63491
|
+
const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/); // eslint-disable-line no-useless-escape
|
|
63500
63492
|
const ARIA_ATTR = seal(/^aria-[\-\w]+$/); // eslint-disable-line no-useless-escape
|
|
63501
63493
|
const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape
|
|
63502
63494
|
);
|
|
@@ -63508,18 +63500,19 @@ const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
|
|
|
63508
63500
|
|
|
63509
63501
|
var EXPRESSIONS = /*#__PURE__*/Object.freeze({
|
|
63510
63502
|
__proto__: null,
|
|
63511
|
-
MUSTACHE_EXPR: MUSTACHE_EXPR,
|
|
63512
|
-
ERB_EXPR: ERB_EXPR,
|
|
63513
|
-
TMPLIT_EXPR: TMPLIT_EXPR,
|
|
63514
|
-
DATA_ATTR: DATA_ATTR,
|
|
63515
63503
|
ARIA_ATTR: ARIA_ATTR,
|
|
63516
|
-
IS_ALLOWED_URI: IS_ALLOWED_URI,
|
|
63517
|
-
IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,
|
|
63518
63504
|
ATTR_WHITESPACE: ATTR_WHITESPACE,
|
|
63505
|
+
CUSTOM_ELEMENT: CUSTOM_ELEMENT,
|
|
63506
|
+
DATA_ATTR: DATA_ATTR,
|
|
63519
63507
|
DOCTYPE_NAME: DOCTYPE_NAME,
|
|
63520
|
-
|
|
63508
|
+
ERB_EXPR: ERB_EXPR,
|
|
63509
|
+
IS_ALLOWED_URI: IS_ALLOWED_URI,
|
|
63510
|
+
IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,
|
|
63511
|
+
MUSTACHE_EXPR: MUSTACHE_EXPR,
|
|
63512
|
+
TMPLIT_EXPR: TMPLIT_EXPR
|
|
63521
63513
|
});
|
|
63522
63514
|
|
|
63515
|
+
/* eslint-disable @typescript-eslint/indent */
|
|
63523
63516
|
// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
|
|
63524
63517
|
const NODE_TYPE = {
|
|
63525
63518
|
element: 1,
|
|
@@ -63540,20 +63533,18 @@ const NODE_TYPE = {
|
|
|
63540
63533
|
const getGlobal = function getGlobal() {
|
|
63541
63534
|
return typeof window === 'undefined' ? null : window;
|
|
63542
63535
|
};
|
|
63543
|
-
|
|
63544
63536
|
/**
|
|
63545
63537
|
* Creates a no-op policy for internal use only.
|
|
63546
63538
|
* Don't export this function outside this module!
|
|
63547
|
-
* @param
|
|
63548
|
-
* @param
|
|
63549
|
-
* @return
|
|
63539
|
+
* @param trustedTypes The policy factory.
|
|
63540
|
+
* @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).
|
|
63541
|
+
* @return The policy created (or null, if Trusted Types
|
|
63550
63542
|
* are not supported or creating the policy failed).
|
|
63551
63543
|
*/
|
|
63552
63544
|
const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {
|
|
63553
63545
|
if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {
|
|
63554
63546
|
return null;
|
|
63555
63547
|
}
|
|
63556
|
-
|
|
63557
63548
|
// Allow the callers to control the unique policy name
|
|
63558
63549
|
// by adding a data-tt-policy-suffix to the script element with the DOMPurify.
|
|
63559
63550
|
// Policy creation with duplicate names throws in Trusted Types.
|
|
@@ -63580,22 +63571,25 @@ const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedType
|
|
|
63580
63571
|
return null;
|
|
63581
63572
|
}
|
|
63582
63573
|
};
|
|
63574
|
+
const _createHooksMap = function _createHooksMap() {
|
|
63575
|
+
return {
|
|
63576
|
+
afterSanitizeAttributes: [],
|
|
63577
|
+
afterSanitizeElements: [],
|
|
63578
|
+
afterSanitizeShadowDOM: [],
|
|
63579
|
+
beforeSanitizeAttributes: [],
|
|
63580
|
+
beforeSanitizeElements: [],
|
|
63581
|
+
beforeSanitizeShadowDOM: [],
|
|
63582
|
+
uponSanitizeAttribute: [],
|
|
63583
|
+
uponSanitizeElement: [],
|
|
63584
|
+
uponSanitizeShadowNode: []
|
|
63585
|
+
};
|
|
63586
|
+
};
|
|
63583
63587
|
function createDOMPurify() {
|
|
63584
63588
|
let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
|
|
63585
63589
|
const DOMPurify = root => createDOMPurify(root);
|
|
63586
|
-
|
|
63587
|
-
/**
|
|
63588
|
-
* Version label, exposed for easier checks
|
|
63589
|
-
* if DOMPurify is up to date or not
|
|
63590
|
-
*/
|
|
63591
|
-
DOMPurify.version = '3.1.6';
|
|
63592
|
-
|
|
63593
|
-
/**
|
|
63594
|
-
* Array of elements that DOMPurify removed during sanitation.
|
|
63595
|
-
* Empty if nothing was removed.
|
|
63596
|
-
*/
|
|
63590
|
+
DOMPurify.version = '3.2.4';
|
|
63597
63591
|
DOMPurify.removed = [];
|
|
63598
|
-
if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) {
|
|
63592
|
+
if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
|
|
63599
63593
|
// Not running in a browser, provide a factory function
|
|
63600
63594
|
// so that you can pass your own Window
|
|
63601
63595
|
DOMPurify.isSupported = false;
|
|
@@ -63623,7 +63617,6 @@ function createDOMPurify() {
|
|
|
63623
63617
|
const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');
|
|
63624
63618
|
const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');
|
|
63625
63619
|
const getParentNode = lookupGetter(ElementPrototype, 'parentNode');
|
|
63626
|
-
|
|
63627
63620
|
// As per issue #47, the web-components registry is inherited by a
|
|
63628
63621
|
// new document created via createHTMLDocument. As per the spec
|
|
63629
63622
|
// (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)
|
|
@@ -63647,8 +63640,7 @@ function createDOMPurify() {
|
|
|
63647
63640
|
const {
|
|
63648
63641
|
importNode
|
|
63649
63642
|
} = originalDocument;
|
|
63650
|
-
let hooks =
|
|
63651
|
-
|
|
63643
|
+
let hooks = _createHooksMap();
|
|
63652
63644
|
/**
|
|
63653
63645
|
* Expose whether this browser supports running the full DOMPurify.
|
|
63654
63646
|
*/
|
|
@@ -63666,22 +63658,18 @@ function createDOMPurify() {
|
|
|
63666
63658
|
let {
|
|
63667
63659
|
IS_ALLOWED_URI: IS_ALLOWED_URI$1
|
|
63668
63660
|
} = EXPRESSIONS;
|
|
63669
|
-
|
|
63670
63661
|
/**
|
|
63671
63662
|
* We consider the elements and attributes below to be safe. Ideally
|
|
63672
63663
|
* don't add any new ones but feel free to remove unwanted ones.
|
|
63673
63664
|
*/
|
|
63674
|
-
|
|
63675
63665
|
/* allowed element names */
|
|
63676
63666
|
let ALLOWED_TAGS = null;
|
|
63677
63667
|
const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);
|
|
63678
|
-
|
|
63679
63668
|
/* Allowed attribute names */
|
|
63680
63669
|
let ALLOWED_ATTR = null;
|
|
63681
63670
|
const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);
|
|
63682
|
-
|
|
63683
63671
|
/*
|
|
63684
|
-
* Configure how
|
|
63672
|
+
* Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.
|
|
63685
63673
|
* @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)
|
|
63686
63674
|
* @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)
|
|
63687
63675
|
* @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.
|
|
@@ -63706,65 +63694,49 @@ function createDOMPurify() {
|
|
|
63706
63694
|
value: false
|
|
63707
63695
|
}
|
|
63708
63696
|
}));
|
|
63709
|
-
|
|
63710
63697
|
/* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */
|
|
63711
63698
|
let FORBID_TAGS = null;
|
|
63712
|
-
|
|
63713
63699
|
/* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
|
|
63714
63700
|
let FORBID_ATTR = null;
|
|
63715
|
-
|
|
63716
63701
|
/* Decide if ARIA attributes are okay */
|
|
63717
63702
|
let ALLOW_ARIA_ATTR = true;
|
|
63718
|
-
|
|
63719
63703
|
/* Decide if custom data attributes are okay */
|
|
63720
63704
|
let ALLOW_DATA_ATTR = true;
|
|
63721
|
-
|
|
63722
63705
|
/* Decide if unknown protocols are okay */
|
|
63723
63706
|
let ALLOW_UNKNOWN_PROTOCOLS = false;
|
|
63724
|
-
|
|
63725
63707
|
/* Decide if self-closing tags in attributes are allowed.
|
|
63726
63708
|
* Usually removed due to a mXSS issue in jQuery 3.0 */
|
|
63727
63709
|
let ALLOW_SELF_CLOSE_IN_ATTR = true;
|
|
63728
|
-
|
|
63729
63710
|
/* Output should be safe for common template engines.
|
|
63730
63711
|
* This means, DOMPurify removes data attributes, mustaches and ERB
|
|
63731
63712
|
*/
|
|
63732
63713
|
let SAFE_FOR_TEMPLATES = false;
|
|
63733
|
-
|
|
63734
63714
|
/* Output should be safe even for XML used within HTML and alike.
|
|
63735
63715
|
* This means, DOMPurify removes comments when containing risky content.
|
|
63736
63716
|
*/
|
|
63737
63717
|
let SAFE_FOR_XML = true;
|
|
63738
|
-
|
|
63739
63718
|
/* Decide if document with <html>... should be returned */
|
|
63740
63719
|
let WHOLE_DOCUMENT = false;
|
|
63741
|
-
|
|
63742
63720
|
/* Track whether config is already set on this instance of DOMPurify. */
|
|
63743
63721
|
let SET_CONFIG = false;
|
|
63744
|
-
|
|
63745
63722
|
/* Decide if all elements (e.g. style, script) must be children of
|
|
63746
63723
|
* document.body. By default, browsers might move them to document.head */
|
|
63747
63724
|
let FORCE_BODY = false;
|
|
63748
|
-
|
|
63749
63725
|
/* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html
|
|
63750
63726
|
* string (or a TrustedHTML object if Trusted Types are supported).
|
|
63751
63727
|
* If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead
|
|
63752
63728
|
*/
|
|
63753
63729
|
let RETURN_DOM = false;
|
|
63754
|
-
|
|
63755
63730
|
/* Decide if a DOM `DocumentFragment` should be returned, instead of a html
|
|
63756
63731
|
* string (or a TrustedHTML object if Trusted Types are supported) */
|
|
63757
63732
|
let RETURN_DOM_FRAGMENT = false;
|
|
63758
|
-
|
|
63759
63733
|
/* Try to return a Trusted Type object instead of a string, return a string in
|
|
63760
63734
|
* case Trusted Types are not supported */
|
|
63761
63735
|
let RETURN_TRUSTED_TYPE = false;
|
|
63762
|
-
|
|
63763
63736
|
/* Output should be free from DOM clobbering attacks?
|
|
63764
63737
|
* This sanitizes markups named with colliding, clobberable built-in DOM APIs.
|
|
63765
63738
|
*/
|
|
63766
63739
|
let SANITIZE_DOM = true;
|
|
63767
|
-
|
|
63768
63740
|
/* Achieve full DOM Clobbering protection by isolating the namespace of named
|
|
63769
63741
|
* properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.
|
|
63770
63742
|
*
|
|
@@ -63780,25 +63752,19 @@ function createDOMPurify() {
|
|
|
63780
63752
|
*/
|
|
63781
63753
|
let SANITIZE_NAMED_PROPS = false;
|
|
63782
63754
|
const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';
|
|
63783
|
-
|
|
63784
63755
|
/* Keep element content when removing element? */
|
|
63785
63756
|
let KEEP_CONTENT = true;
|
|
63786
|
-
|
|
63787
63757
|
/* If a `Node` is passed to sanitize(), then performs sanitization in-place instead
|
|
63788
63758
|
* of importing it into a new Document and returning a sanitized copy */
|
|
63789
63759
|
let IN_PLACE = false;
|
|
63790
|
-
|
|
63791
63760
|
/* Allow usage of profiles like html, svg and mathMl */
|
|
63792
63761
|
let USE_PROFILES = {};
|
|
63793
|
-
|
|
63794
63762
|
/* Tags to ignore content of when KEEP_CONTENT is true */
|
|
63795
63763
|
let FORBID_CONTENTS = null;
|
|
63796
63764
|
const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);
|
|
63797
|
-
|
|
63798
63765
|
/* Tags that are safe for data: URIs */
|
|
63799
63766
|
let DATA_URI_TAGS = null;
|
|
63800
63767
|
const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);
|
|
63801
|
-
|
|
63802
63768
|
/* Attributes safe for values like "javascript:" */
|
|
63803
63769
|
let URI_SAFE_ATTRIBUTES = null;
|
|
63804
63770
|
const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);
|
|
@@ -63808,32 +63774,33 @@ function createDOMPurify() {
|
|
|
63808
63774
|
/* Document namespace */
|
|
63809
63775
|
let NAMESPACE = HTML_NAMESPACE;
|
|
63810
63776
|
let IS_EMPTY_INPUT = false;
|
|
63811
|
-
|
|
63812
63777
|
/* Allowed XHTML+XML namespaces */
|
|
63813
63778
|
let ALLOWED_NAMESPACES = null;
|
|
63814
63779
|
const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
|
|
63815
|
-
|
|
63780
|
+
let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);
|
|
63781
|
+
let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);
|
|
63782
|
+
// Certain elements are allowed in both SVG and HTML
|
|
63783
|
+
// namespace. We need to specify them explicitly
|
|
63784
|
+
// so that they don't get erroneously deleted from
|
|
63785
|
+
// HTML namespace.
|
|
63786
|
+
const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);
|
|
63816
63787
|
/* Parsing of strict XHTML documents */
|
|
63817
63788
|
let PARSER_MEDIA_TYPE = null;
|
|
63818
63789
|
const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];
|
|
63819
63790
|
const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';
|
|
63820
63791
|
let transformCaseFunc = null;
|
|
63821
|
-
|
|
63822
63792
|
/* Keep a reference to config to pass to hooks */
|
|
63823
63793
|
let CONFIG = null;
|
|
63824
|
-
|
|
63825
63794
|
/* Ideally, do not touch anything below this line */
|
|
63826
63795
|
/* ______________________________________________ */
|
|
63827
|
-
|
|
63828
63796
|
const formElement = document.createElement('form');
|
|
63829
63797
|
const isRegexOrFunction = function isRegexOrFunction(testValue) {
|
|
63830
63798
|
return testValue instanceof RegExp || testValue instanceof Function;
|
|
63831
63799
|
};
|
|
63832
|
-
|
|
63833
63800
|
/**
|
|
63834
63801
|
* _parseConfig
|
|
63835
63802
|
*
|
|
63836
|
-
* @param
|
|
63803
|
+
* @param cfg optional config literal
|
|
63837
63804
|
*/
|
|
63838
63805
|
// eslint-disable-next-line complexity
|
|
63839
63806
|
const _parseConfig = function _parseConfig() {
|
|
@@ -63841,39 +63808,23 @@ function createDOMPurify() {
|
|
|
63841
63808
|
if (CONFIG && CONFIG === cfg) {
|
|
63842
63809
|
return;
|
|
63843
63810
|
}
|
|
63844
|
-
|
|
63845
63811
|
/* Shield configuration object from tampering */
|
|
63846
63812
|
if (!cfg || typeof cfg !== 'object') {
|
|
63847
63813
|
cfg = {};
|
|
63848
63814
|
}
|
|
63849
|
-
|
|
63850
63815
|
/* Shield configuration object from prototype pollution */
|
|
63851
63816
|
cfg = clone(cfg);
|
|
63852
63817
|
PARSER_MEDIA_TYPE =
|
|
63853
63818
|
// eslint-disable-next-line unicorn/prefer-includes
|
|
63854
63819
|
SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;
|
|
63855
|
-
|
|
63856
63820
|
// HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.
|
|
63857
63821
|
transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;
|
|
63858
|
-
|
|
63859
63822
|
/* Set configuration parameters */
|
|
63860
63823
|
ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
|
|
63861
63824
|
ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
|
|
63862
63825
|
ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
|
|
63863
|
-
URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),
|
|
63864
|
-
|
|
63865
|
-
cfg.ADD_URI_SAFE_ATTR,
|
|
63866
|
-
// eslint-disable-line indent
|
|
63867
|
-
transformCaseFunc // eslint-disable-line indent
|
|
63868
|
-
) // eslint-disable-line indent
|
|
63869
|
-
: DEFAULT_URI_SAFE_ATTRIBUTES;
|
|
63870
|
-
DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),
|
|
63871
|
-
// eslint-disable-line indent
|
|
63872
|
-
cfg.ADD_DATA_URI_TAGS,
|
|
63873
|
-
// eslint-disable-line indent
|
|
63874
|
-
transformCaseFunc // eslint-disable-line indent
|
|
63875
|
-
) // eslint-disable-line indent
|
|
63876
|
-
: DEFAULT_DATA_URI_TAGS;
|
|
63826
|
+
URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;
|
|
63827
|
+
DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;
|
|
63877
63828
|
FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
|
|
63878
63829
|
FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};
|
|
63879
63830
|
FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};
|
|
@@ -63895,6 +63846,8 @@ function createDOMPurify() {
|
|
|
63895
63846
|
IN_PLACE = cfg.IN_PLACE || false; // Default false
|
|
63896
63847
|
IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;
|
|
63897
63848
|
NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
|
|
63849
|
+
MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;
|
|
63850
|
+
HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;
|
|
63898
63851
|
CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
|
|
63899
63852
|
if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
|
|
63900
63853
|
CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
|
|
@@ -63911,7 +63864,6 @@ function createDOMPurify() {
|
|
|
63911
63864
|
if (RETURN_DOM_FRAGMENT) {
|
|
63912
63865
|
RETURN_DOM = true;
|
|
63913
63866
|
}
|
|
63914
|
-
|
|
63915
63867
|
/* Parse profile info */
|
|
63916
63868
|
if (USE_PROFILES) {
|
|
63917
63869
|
ALLOWED_TAGS = addToSet({}, text);
|
|
@@ -63936,7 +63888,6 @@ function createDOMPurify() {
|
|
|
63936
63888
|
addToSet(ALLOWED_ATTR, xml);
|
|
63937
63889
|
}
|
|
63938
63890
|
}
|
|
63939
|
-
|
|
63940
63891
|
/* Merge configuration parameters */
|
|
63941
63892
|
if (cfg.ADD_TAGS) {
|
|
63942
63893
|
if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
|
|
@@ -63959,17 +63910,14 @@ function createDOMPurify() {
|
|
|
63959
63910
|
}
|
|
63960
63911
|
addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
|
|
63961
63912
|
}
|
|
63962
|
-
|
|
63963
63913
|
/* Add #text in case KEEP_CONTENT is set to true */
|
|
63964
63914
|
if (KEEP_CONTENT) {
|
|
63965
63915
|
ALLOWED_TAGS['#text'] = true;
|
|
63966
63916
|
}
|
|
63967
|
-
|
|
63968
63917
|
/* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */
|
|
63969
63918
|
if (WHOLE_DOCUMENT) {
|
|
63970
63919
|
addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);
|
|
63971
63920
|
}
|
|
63972
|
-
|
|
63973
63921
|
/* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */
|
|
63974
63922
|
if (ALLOWED_TAGS.table) {
|
|
63975
63923
|
addToSet(ALLOWED_TAGS, ['tbody']);
|
|
@@ -63982,10 +63930,8 @@ function createDOMPurify() {
|
|
|
63982
63930
|
if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {
|
|
63983
63931
|
throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
|
|
63984
63932
|
}
|
|
63985
|
-
|
|
63986
63933
|
// Overwrite existing TrustedTypes policy.
|
|
63987
63934
|
trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
|
|
63988
|
-
|
|
63989
63935
|
// Sign local variables required by `sanitize`.
|
|
63990
63936
|
emptyHTML = trustedTypesPolicy.createHTML('');
|
|
63991
63937
|
} else {
|
|
@@ -63993,13 +63939,11 @@ function createDOMPurify() {
|
|
|
63993
63939
|
if (trustedTypesPolicy === undefined) {
|
|
63994
63940
|
trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
|
|
63995
63941
|
}
|
|
63996
|
-
|
|
63997
63942
|
// If creating the internal policy succeeded sign internal variables.
|
|
63998
63943
|
if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {
|
|
63999
63944
|
emptyHTML = trustedTypesPolicy.createHTML('');
|
|
64000
63945
|
}
|
|
64001
63946
|
}
|
|
64002
|
-
|
|
64003
63947
|
// Prevent further manipulation of configuration.
|
|
64004
63948
|
// Not available in IE8, Safari 5, etc.
|
|
64005
63949
|
if (freeze) {
|
|
@@ -64007,30 +63951,19 @@ function createDOMPurify() {
|
|
|
64007
63951
|
}
|
|
64008
63952
|
CONFIG = cfg;
|
|
64009
63953
|
};
|
|
64010
|
-
const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);
|
|
64011
|
-
const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);
|
|
64012
|
-
|
|
64013
|
-
// Certain elements are allowed in both SVG and HTML
|
|
64014
|
-
// namespace. We need to specify them explicitly
|
|
64015
|
-
// so that they don't get erroneously deleted from
|
|
64016
|
-
// HTML namespace.
|
|
64017
|
-
const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);
|
|
64018
|
-
|
|
64019
63954
|
/* Keep track of all possible SVG and MathML tags
|
|
64020
63955
|
* so that we can perform the namespace checks
|
|
64021
63956
|
* correctly. */
|
|
64022
63957
|
const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);
|
|
64023
63958
|
const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);
|
|
64024
|
-
|
|
64025
63959
|
/**
|
|
64026
|
-
* @param
|
|
64027
|
-
* @returns
|
|
63960
|
+
* @param element a DOM element whose namespace is being checked
|
|
63961
|
+
* @returns Return false if the element has a
|
|
64028
63962
|
* namespace that a spec-compliant parser would never
|
|
64029
63963
|
* return. Return true otherwise.
|
|
64030
63964
|
*/
|
|
64031
63965
|
const _checkValidNamespace = function _checkValidNamespace(element) {
|
|
64032
63966
|
let parent = getParentNode(element);
|
|
64033
|
-
|
|
64034
63967
|
// In JSDOM, if we're inside shadow DOM, then parentNode
|
|
64035
63968
|
// can be null. We just simulate parent in this case.
|
|
64036
63969
|
if (!parent || !parent.tagName) {
|
|
@@ -64051,14 +63984,12 @@ function createDOMPurify() {
|
|
|
64051
63984
|
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
64052
63985
|
return tagName === 'svg';
|
|
64053
63986
|
}
|
|
64054
|
-
|
|
64055
63987
|
// The only way to switch from MathML to SVG is via`
|
|
64056
63988
|
// svg if parent is either <annotation-xml> or MathML
|
|
64057
63989
|
// text integration points.
|
|
64058
63990
|
if (parent.namespaceURI === MATHML_NAMESPACE) {
|
|
64059
63991
|
return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
|
|
64060
63992
|
}
|
|
64061
|
-
|
|
64062
63993
|
// We only allow elements that are defined in SVG
|
|
64063
63994
|
// spec. All others are disallowed in SVG namespace.
|
|
64064
63995
|
return Boolean(ALL_SVG_TAGS[tagName]);
|
|
@@ -64070,13 +64001,11 @@ function createDOMPurify() {
|
|
|
64070
64001
|
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
64071
64002
|
return tagName === 'math';
|
|
64072
64003
|
}
|
|
64073
|
-
|
|
64074
64004
|
// The only way to switch from SVG to MathML is via
|
|
64075
64005
|
// <math> and HTML integration points
|
|
64076
64006
|
if (parent.namespaceURI === SVG_NAMESPACE) {
|
|
64077
64007
|
return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
|
|
64078
64008
|
}
|
|
64079
|
-
|
|
64080
64009
|
// We only allow elements that are defined in MathML
|
|
64081
64010
|
// spec. All others are disallowed in MathML namespace.
|
|
64082
64011
|
return Boolean(ALL_MATHML_TAGS[tagName]);
|
|
@@ -64091,28 +64020,24 @@ function createDOMPurify() {
|
|
|
64091
64020
|
if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
|
|
64092
64021
|
return false;
|
|
64093
64022
|
}
|
|
64094
|
-
|
|
64095
64023
|
// We disallow tags that are specific for MathML
|
|
64096
64024
|
// or SVG and should never appear in HTML namespace
|
|
64097
64025
|
return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
|
|
64098
64026
|
}
|
|
64099
|
-
|
|
64100
64027
|
// For XHTML and XML documents that support custom namespaces
|
|
64101
64028
|
if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {
|
|
64102
64029
|
return true;
|
|
64103
64030
|
}
|
|
64104
|
-
|
|
64105
64031
|
// The code should never reach this place (this means
|
|
64106
64032
|
// that the element somehow got namespace that is not
|
|
64107
64033
|
// HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).
|
|
64108
64034
|
// Return false just in case.
|
|
64109
64035
|
return false;
|
|
64110
64036
|
};
|
|
64111
|
-
|
|
64112
64037
|
/**
|
|
64113
64038
|
* _forceRemove
|
|
64114
64039
|
*
|
|
64115
|
-
* @param
|
|
64040
|
+
* @param node a DOM node
|
|
64116
64041
|
*/
|
|
64117
64042
|
const _forceRemove = function _forceRemove(node) {
|
|
64118
64043
|
arrayPush(DOMPurify.removed, {
|
|
@@ -64125,46 +64050,43 @@ function createDOMPurify() {
|
|
|
64125
64050
|
remove(node);
|
|
64126
64051
|
}
|
|
64127
64052
|
};
|
|
64128
|
-
|
|
64129
64053
|
/**
|
|
64130
64054
|
* _removeAttribute
|
|
64131
64055
|
*
|
|
64132
|
-
* @param
|
|
64133
|
-
* @param
|
|
64056
|
+
* @param name an Attribute name
|
|
64057
|
+
* @param element a DOM node
|
|
64134
64058
|
*/
|
|
64135
|
-
const _removeAttribute = function _removeAttribute(name,
|
|
64059
|
+
const _removeAttribute = function _removeAttribute(name, element) {
|
|
64136
64060
|
try {
|
|
64137
64061
|
arrayPush(DOMPurify.removed, {
|
|
64138
|
-
attribute:
|
|
64139
|
-
from:
|
|
64062
|
+
attribute: element.getAttributeNode(name),
|
|
64063
|
+
from: element
|
|
64140
64064
|
});
|
|
64141
64065
|
} catch (_) {
|
|
64142
64066
|
arrayPush(DOMPurify.removed, {
|
|
64143
64067
|
attribute: null,
|
|
64144
|
-
from:
|
|
64068
|
+
from: element
|
|
64145
64069
|
});
|
|
64146
64070
|
}
|
|
64147
|
-
|
|
64148
|
-
|
|
64149
|
-
|
|
64150
|
-
if (name === 'is' && !ALLOWED_ATTR[name]) {
|
|
64071
|
+
element.removeAttribute(name);
|
|
64072
|
+
// We void attribute values for unremovable "is" attributes
|
|
64073
|
+
if (name === 'is') {
|
|
64151
64074
|
if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
|
|
64152
64075
|
try {
|
|
64153
|
-
_forceRemove(
|
|
64076
|
+
_forceRemove(element);
|
|
64154
64077
|
} catch (_) {}
|
|
64155
64078
|
} else {
|
|
64156
64079
|
try {
|
|
64157
|
-
|
|
64080
|
+
element.setAttribute(name, '');
|
|
64158
64081
|
} catch (_) {}
|
|
64159
64082
|
}
|
|
64160
64083
|
}
|
|
64161
64084
|
};
|
|
64162
|
-
|
|
64163
64085
|
/**
|
|
64164
64086
|
* _initDocument
|
|
64165
64087
|
*
|
|
64166
|
-
* @param
|
|
64167
|
-
* @return
|
|
64088
|
+
* @param dirty - a string of dirty markup
|
|
64089
|
+
* @return a DOM, filled with the dirty markup
|
|
64168
64090
|
*/
|
|
64169
64091
|
const _initDocument = function _initDocument(dirty) {
|
|
64170
64092
|
/* Create a HTML document */
|
|
@@ -64191,7 +64113,6 @@ function createDOMPurify() {
|
|
|
64191
64113
|
doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
|
|
64192
64114
|
} catch (_) {}
|
|
64193
64115
|
}
|
|
64194
|
-
|
|
64195
64116
|
/* Use createHTMLDocument in case DOMParser is not available */
|
|
64196
64117
|
if (!doc || !doc.documentElement) {
|
|
64197
64118
|
doc = implementation.createDocument(NAMESPACE, 'template', null);
|
|
@@ -64205,112 +64126,86 @@ function createDOMPurify() {
|
|
|
64205
64126
|
if (dirty && leadingWhitespace) {
|
|
64206
64127
|
body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);
|
|
64207
64128
|
}
|
|
64208
|
-
|
|
64209
64129
|
/* Work on whole document or just its body */
|
|
64210
64130
|
if (NAMESPACE === HTML_NAMESPACE) {
|
|
64211
64131
|
return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];
|
|
64212
64132
|
}
|
|
64213
64133
|
return WHOLE_DOCUMENT ? doc.documentElement : body;
|
|
64214
64134
|
};
|
|
64215
|
-
|
|
64216
64135
|
/**
|
|
64217
64136
|
* Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.
|
|
64218
64137
|
*
|
|
64219
|
-
* @param
|
|
64220
|
-
* @return
|
|
64138
|
+
* @param root The root element or node to start traversing on.
|
|
64139
|
+
* @return The created NodeIterator
|
|
64221
64140
|
*/
|
|
64222
64141
|
const _createNodeIterator = function _createNodeIterator(root) {
|
|
64223
64142
|
return createNodeIterator.call(root.ownerDocument || root, root,
|
|
64224
64143
|
// eslint-disable-next-line no-bitwise
|
|
64225
64144
|
NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
|
|
64226
64145
|
};
|
|
64227
|
-
|
|
64228
64146
|
/**
|
|
64229
64147
|
* _isClobbered
|
|
64230
64148
|
*
|
|
64231
|
-
* @param
|
|
64232
|
-
* @return
|
|
64149
|
+
* @param element element to check for clobbering attacks
|
|
64150
|
+
* @return true if clobbered, false if safe
|
|
64233
64151
|
*/
|
|
64234
|
-
const _isClobbered = function _isClobbered(
|
|
64235
|
-
return
|
|
64152
|
+
const _isClobbered = function _isClobbered(element) {
|
|
64153
|
+
return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');
|
|
64236
64154
|
};
|
|
64237
|
-
|
|
64238
64155
|
/**
|
|
64239
64156
|
* Checks whether the given object is a DOM node.
|
|
64240
64157
|
*
|
|
64241
|
-
* @param
|
|
64242
|
-
* @return
|
|
64158
|
+
* @param value object to check whether it's a DOM node
|
|
64159
|
+
* @return true is object is a DOM node
|
|
64243
64160
|
*/
|
|
64244
|
-
const _isNode = function _isNode(
|
|
64245
|
-
return typeof Node === 'function' &&
|
|
64161
|
+
const _isNode = function _isNode(value) {
|
|
64162
|
+
return typeof Node === 'function' && value instanceof Node;
|
|
64246
64163
|
};
|
|
64247
|
-
|
|
64248
|
-
|
|
64249
|
-
* _executeHook
|
|
64250
|
-
* Execute user configurable hooks
|
|
64251
|
-
*
|
|
64252
|
-
* @param {String} entryPoint Name of the hook's entry point
|
|
64253
|
-
* @param {Node} currentNode node to work on with the hook
|
|
64254
|
-
* @param {Object} data additional hook parameters
|
|
64255
|
-
*/
|
|
64256
|
-
const _executeHook = function _executeHook(entryPoint, currentNode, data) {
|
|
64257
|
-
if (!hooks[entryPoint]) {
|
|
64258
|
-
return;
|
|
64259
|
-
}
|
|
64260
|
-
arrayForEach(hooks[entryPoint], hook => {
|
|
64164
|
+
function _executeHooks(hooks, currentNode, data) {
|
|
64165
|
+
arrayForEach(hooks, hook => {
|
|
64261
64166
|
hook.call(DOMPurify, currentNode, data, CONFIG);
|
|
64262
64167
|
});
|
|
64263
|
-
}
|
|
64264
|
-
|
|
64168
|
+
}
|
|
64265
64169
|
/**
|
|
64266
64170
|
* _sanitizeElements
|
|
64267
64171
|
*
|
|
64268
64172
|
* @protect nodeName
|
|
64269
64173
|
* @protect textContent
|
|
64270
64174
|
* @protect removeChild
|
|
64271
|
-
*
|
|
64272
|
-
* @
|
|
64273
|
-
* @return {Boolean} true if node was killed, false if left alive
|
|
64175
|
+
* @param currentNode to check for permission to exist
|
|
64176
|
+
* @return true if node was killed, false if left alive
|
|
64274
64177
|
*/
|
|
64275
64178
|
const _sanitizeElements = function _sanitizeElements(currentNode) {
|
|
64276
64179
|
let content = null;
|
|
64277
|
-
|
|
64278
64180
|
/* Execute a hook if present */
|
|
64279
|
-
|
|
64280
|
-
|
|
64181
|
+
_executeHooks(hooks.beforeSanitizeElements, currentNode, null);
|
|
64281
64182
|
/* Check if element is clobbered or can clobber */
|
|
64282
64183
|
if (_isClobbered(currentNode)) {
|
|
64283
64184
|
_forceRemove(currentNode);
|
|
64284
64185
|
return true;
|
|
64285
64186
|
}
|
|
64286
|
-
|
|
64287
64187
|
/* Now let's check the element's type and name */
|
|
64288
64188
|
const tagName = transformCaseFunc(currentNode.nodeName);
|
|
64289
|
-
|
|
64290
64189
|
/* Execute a hook if present */
|
|
64291
|
-
|
|
64190
|
+
_executeHooks(hooks.uponSanitizeElement, currentNode, {
|
|
64292
64191
|
tagName,
|
|
64293
64192
|
allowedTags: ALLOWED_TAGS
|
|
64294
64193
|
});
|
|
64295
|
-
|
|
64296
64194
|
/* Detect mXSS attempts abusing namespace confusion */
|
|
64297
64195
|
if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
|
|
64298
64196
|
_forceRemove(currentNode);
|
|
64299
64197
|
return true;
|
|
64300
64198
|
}
|
|
64301
|
-
|
|
64302
64199
|
/* Remove any occurrence of processing instructions */
|
|
64303
64200
|
if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
|
|
64304
64201
|
_forceRemove(currentNode);
|
|
64305
64202
|
return true;
|
|
64306
64203
|
}
|
|
64307
|
-
|
|
64308
64204
|
/* Remove any kind of possibly harmful comments */
|
|
64309
64205
|
if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, currentNode.data)) {
|
|
64310
64206
|
_forceRemove(currentNode);
|
|
64311
64207
|
return true;
|
|
64312
64208
|
}
|
|
64313
|
-
|
|
64314
64209
|
/* Remove element if anything forbids its presence */
|
|
64315
64210
|
if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
|
|
64316
64211
|
/* Check if we have a custom element to handle */
|
|
@@ -64322,7 +64217,6 @@ function createDOMPurify() {
|
|
|
64322
64217
|
return false;
|
|
64323
64218
|
}
|
|
64324
64219
|
}
|
|
64325
|
-
|
|
64326
64220
|
/* Keep content except for bad-listed elements */
|
|
64327
64221
|
if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
|
|
64328
64222
|
const parentNode = getParentNode(currentNode) || currentNode.parentNode;
|
|
@@ -64339,19 +64233,16 @@ function createDOMPurify() {
|
|
|
64339
64233
|
_forceRemove(currentNode);
|
|
64340
64234
|
return true;
|
|
64341
64235
|
}
|
|
64342
|
-
|
|
64343
64236
|
/* Check whether element has a valid namespace */
|
|
64344
64237
|
if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
|
|
64345
64238
|
_forceRemove(currentNode);
|
|
64346
64239
|
return true;
|
|
64347
64240
|
}
|
|
64348
|
-
|
|
64349
64241
|
/* Make sure that older browsers don't get fallback-tag mXSS */
|
|
64350
64242
|
if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) {
|
|
64351
64243
|
_forceRemove(currentNode);
|
|
64352
64244
|
return true;
|
|
64353
64245
|
}
|
|
64354
|
-
|
|
64355
64246
|
/* Sanitize element content to be template-safe */
|
|
64356
64247
|
if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
|
|
64357
64248
|
/* Get the element's text content */
|
|
@@ -64366,19 +64257,17 @@ function createDOMPurify() {
|
|
|
64366
64257
|
currentNode.textContent = content;
|
|
64367
64258
|
}
|
|
64368
64259
|
}
|
|
64369
|
-
|
|
64370
64260
|
/* Execute a hook if present */
|
|
64371
|
-
|
|
64261
|
+
_executeHooks(hooks.afterSanitizeElements, currentNode, null);
|
|
64372
64262
|
return false;
|
|
64373
64263
|
};
|
|
64374
|
-
|
|
64375
64264
|
/**
|
|
64376
64265
|
* _isValidAttribute
|
|
64377
64266
|
*
|
|
64378
|
-
* @param
|
|
64379
|
-
* @param
|
|
64380
|
-
* @param
|
|
64381
|
-
* @return
|
|
64267
|
+
* @param lcTag Lowercase tag name of containing element.
|
|
64268
|
+
* @param lcName Lowercase attribute name.
|
|
64269
|
+
* @param value Attribute value.
|
|
64270
|
+
* @return Returns true if `value` is valid, otherwise false.
|
|
64382
64271
|
*/
|
|
64383
64272
|
// eslint-disable-next-line complexity
|
|
64384
64273
|
const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
|
|
@@ -64386,7 +64275,6 @@ function createDOMPurify() {
|
|
|
64386
64275
|
if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {
|
|
64387
64276
|
return false;
|
|
64388
64277
|
}
|
|
64389
|
-
|
|
64390
64278
|
/* Allow valid data-* attributes: At least one character after "-"
|
|
64391
64279
|
(https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
|
|
64392
64280
|
XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
|
|
@@ -64408,19 +64296,17 @@ function createDOMPurify() {
|
|
|
64408
64296
|
} else ;
|
|
64409
64297
|
return true;
|
|
64410
64298
|
};
|
|
64411
|
-
|
|
64412
64299
|
/**
|
|
64413
64300
|
* _isBasicCustomElement
|
|
64414
64301
|
* checks if at least one dash is included in tagName, and it's not the first char
|
|
64415
64302
|
* for more sophisticated checking see https://github.com/sindresorhus/validate-element-name
|
|
64416
64303
|
*
|
|
64417
|
-
* @param
|
|
64418
|
-
* @returns
|
|
64304
|
+
* @param tagName name of the tag of the node to sanitize
|
|
64305
|
+
* @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.
|
|
64419
64306
|
*/
|
|
64420
64307
|
const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
|
|
64421
64308
|
return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);
|
|
64422
64309
|
};
|
|
64423
|
-
|
|
64424
64310
|
/**
|
|
64425
64311
|
* _sanitizeAttributes
|
|
64426
64312
|
*
|
|
@@ -64429,27 +64315,26 @@ function createDOMPurify() {
|
|
|
64429
64315
|
* @protect removeAttribute
|
|
64430
64316
|
* @protect setAttribute
|
|
64431
64317
|
*
|
|
64432
|
-
* @param
|
|
64318
|
+
* @param currentNode to sanitize
|
|
64433
64319
|
*/
|
|
64434
64320
|
const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
|
|
64435
64321
|
/* Execute a hook if present */
|
|
64436
|
-
|
|
64322
|
+
_executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);
|
|
64437
64323
|
const {
|
|
64438
64324
|
attributes
|
|
64439
64325
|
} = currentNode;
|
|
64440
|
-
|
|
64441
64326
|
/* Check if we have attributes; if not we might have a text node */
|
|
64442
|
-
if (!attributes) {
|
|
64327
|
+
if (!attributes || _isClobbered(currentNode)) {
|
|
64443
64328
|
return;
|
|
64444
64329
|
}
|
|
64445
64330
|
const hookEvent = {
|
|
64446
64331
|
attrName: '',
|
|
64447
64332
|
attrValue: '',
|
|
64448
64333
|
keepAttr: true,
|
|
64449
|
-
allowedAttributes: ALLOWED_ATTR
|
|
64334
|
+
allowedAttributes: ALLOWED_ATTR,
|
|
64335
|
+
forceKeepAttr: undefined
|
|
64450
64336
|
};
|
|
64451
64337
|
let l = attributes.length;
|
|
64452
|
-
|
|
64453
64338
|
/* Go backwards over all attributes; safely remove bad ones */
|
|
64454
64339
|
while (l--) {
|
|
64455
64340
|
const attr = attributes[l];
|
|
@@ -64460,64 +64345,53 @@ function createDOMPurify() {
|
|
|
64460
64345
|
} = attr;
|
|
64461
64346
|
const lcName = transformCaseFunc(name);
|
|
64462
64347
|
let value = name === 'value' ? attrValue : stringTrim(attrValue);
|
|
64463
|
-
|
|
64464
64348
|
/* Execute a hook if present */
|
|
64465
64349
|
hookEvent.attrName = lcName;
|
|
64466
64350
|
hookEvent.attrValue = value;
|
|
64467
64351
|
hookEvent.keepAttr = true;
|
|
64468
64352
|
hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set
|
|
64469
|
-
|
|
64353
|
+
_executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);
|
|
64470
64354
|
value = hookEvent.attrValue;
|
|
64471
|
-
|
|
64355
|
+
/* Full DOM Clobbering protection via namespace isolation,
|
|
64356
|
+
* Prefix id and name attributes with `user-content-`
|
|
64357
|
+
*/
|
|
64358
|
+
if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {
|
|
64359
|
+
// Remove the attribute with this value
|
|
64360
|
+
_removeAttribute(name, currentNode);
|
|
64361
|
+
// Prefix the value and later re-create the attribute with the sanitized value
|
|
64362
|
+
value = SANITIZE_NAMED_PROPS_PREFIX + value;
|
|
64363
|
+
}
|
|
64472
64364
|
/* Work around a security issue with comments inside attributes */
|
|
64473
64365
|
if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
|
|
64474
64366
|
_removeAttribute(name, currentNode);
|
|
64475
64367
|
continue;
|
|
64476
64368
|
}
|
|
64477
|
-
|
|
64478
64369
|
/* Did the hooks approve of the attribute? */
|
|
64479
64370
|
if (hookEvent.forceKeepAttr) {
|
|
64480
64371
|
continue;
|
|
64481
64372
|
}
|
|
64482
|
-
|
|
64483
64373
|
/* Remove attribute */
|
|
64484
64374
|
_removeAttribute(name, currentNode);
|
|
64485
|
-
|
|
64486
64375
|
/* Did the hooks approve of the attribute? */
|
|
64487
64376
|
if (!hookEvent.keepAttr) {
|
|
64488
64377
|
continue;
|
|
64489
64378
|
}
|
|
64490
|
-
|
|
64491
64379
|
/* Work around a security issue in jQuery 3.0 */
|
|
64492
64380
|
if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
|
|
64493
64381
|
_removeAttribute(name, currentNode);
|
|
64494
64382
|
continue;
|
|
64495
64383
|
}
|
|
64496
|
-
|
|
64497
64384
|
/* Sanitize attribute content to be template-safe */
|
|
64498
64385
|
if (SAFE_FOR_TEMPLATES) {
|
|
64499
64386
|
arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
|
|
64500
64387
|
value = stringReplace(value, expr, ' ');
|
|
64501
64388
|
});
|
|
64502
64389
|
}
|
|
64503
|
-
|
|
64504
64390
|
/* Is `value` valid for this attribute? */
|
|
64505
64391
|
const lcTag = transformCaseFunc(currentNode.nodeName);
|
|
64506
64392
|
if (!_isValidAttribute(lcTag, lcName, value)) {
|
|
64507
64393
|
continue;
|
|
64508
64394
|
}
|
|
64509
|
-
|
|
64510
|
-
/* Full DOM Clobbering protection via namespace isolation,
|
|
64511
|
-
* Prefix id and name attributes with `user-content-`
|
|
64512
|
-
*/
|
|
64513
|
-
if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {
|
|
64514
|
-
// Remove the attribute with this value
|
|
64515
|
-
_removeAttribute(name, currentNode);
|
|
64516
|
-
|
|
64517
|
-
// Prefix the value and later re-create the attribute with the sanitized value
|
|
64518
|
-
value = SANITIZE_NAMED_PROPS_PREFIX + value;
|
|
64519
|
-
}
|
|
64520
|
-
|
|
64521
64395
|
/* Handle attributes that require Trusted Types */
|
|
64522
64396
|
if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {
|
|
64523
64397
|
if (namespaceURI) ; else {
|
|
@@ -64535,7 +64409,6 @@ function createDOMPurify() {
|
|
|
64535
64409
|
}
|
|
64536
64410
|
}
|
|
64537
64411
|
}
|
|
64538
|
-
|
|
64539
64412
|
/* Handle invalid data-* attribute set by try-catching it */
|
|
64540
64413
|
try {
|
|
64541
64414
|
if (namespaceURI) {
|
|
@@ -64551,51 +64424,34 @@ function createDOMPurify() {
|
|
|
64551
64424
|
}
|
|
64552
64425
|
} catch (_) {}
|
|
64553
64426
|
}
|
|
64554
|
-
|
|
64555
64427
|
/* Execute a hook if present */
|
|
64556
|
-
|
|
64428
|
+
_executeHooks(hooks.afterSanitizeAttributes, currentNode, null);
|
|
64557
64429
|
};
|
|
64558
|
-
|
|
64559
64430
|
/**
|
|
64560
64431
|
* _sanitizeShadowDOM
|
|
64561
64432
|
*
|
|
64562
|
-
* @param
|
|
64433
|
+
* @param fragment to iterate over recursively
|
|
64563
64434
|
*/
|
|
64564
64435
|
const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
|
|
64565
64436
|
let shadowNode = null;
|
|
64566
64437
|
const shadowIterator = _createNodeIterator(fragment);
|
|
64567
|
-
|
|
64568
64438
|
/* Execute a hook if present */
|
|
64569
|
-
|
|
64439
|
+
_executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);
|
|
64570
64440
|
while (shadowNode = shadowIterator.nextNode()) {
|
|
64571
64441
|
/* Execute a hook if present */
|
|
64572
|
-
|
|
64573
|
-
|
|
64442
|
+
_executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);
|
|
64574
64443
|
/* Sanitize tags and elements */
|
|
64575
|
-
|
|
64576
|
-
|
|
64577
|
-
|
|
64578
|
-
|
|
64444
|
+
_sanitizeElements(shadowNode);
|
|
64445
|
+
/* Check attributes next */
|
|
64446
|
+
_sanitizeAttributes(shadowNode);
|
|
64579
64447
|
/* Deep shadow DOM detected */
|
|
64580
64448
|
if (shadowNode.content instanceof DocumentFragment) {
|
|
64581
64449
|
_sanitizeShadowDOM(shadowNode.content);
|
|
64582
64450
|
}
|
|
64583
|
-
|
|
64584
|
-
/* Check attributes, sanitize if necessary */
|
|
64585
|
-
_sanitizeAttributes(shadowNode);
|
|
64586
64451
|
}
|
|
64587
|
-
|
|
64588
64452
|
/* Execute a hook if present */
|
|
64589
|
-
|
|
64453
|
+
_executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);
|
|
64590
64454
|
};
|
|
64591
|
-
|
|
64592
|
-
/**
|
|
64593
|
-
* Sanitize
|
|
64594
|
-
* Public method providing core sanitation functionality
|
|
64595
|
-
*
|
|
64596
|
-
* @param {String|Node} dirty string or DOM node
|
|
64597
|
-
* @param {Object} cfg object
|
|
64598
|
-
*/
|
|
64599
64455
|
// eslint-disable-next-line complexity
|
|
64600
64456
|
DOMPurify.sanitize = function (dirty) {
|
|
64601
64457
|
let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
@@ -64610,7 +64466,6 @@ function createDOMPurify() {
|
|
|
64610
64466
|
if (IS_EMPTY_INPUT) {
|
|
64611
64467
|
dirty = '<!-->';
|
|
64612
64468
|
}
|
|
64613
|
-
|
|
64614
64469
|
/* Stringify, in case dirty is an object */
|
|
64615
64470
|
if (typeof dirty !== 'string' && !_isNode(dirty)) {
|
|
64616
64471
|
if (typeof dirty.toString === 'function') {
|
|
@@ -64622,20 +64477,16 @@ function createDOMPurify() {
|
|
|
64622
64477
|
throw typeErrorCreate('toString is not a function');
|
|
64623
64478
|
}
|
|
64624
64479
|
}
|
|
64625
|
-
|
|
64626
64480
|
/* Return dirty HTML if DOMPurify cannot run */
|
|
64627
64481
|
if (!DOMPurify.isSupported) {
|
|
64628
64482
|
return dirty;
|
|
64629
64483
|
}
|
|
64630
|
-
|
|
64631
64484
|
/* Assign config vars */
|
|
64632
64485
|
if (!SET_CONFIG) {
|
|
64633
64486
|
_parseConfig(cfg);
|
|
64634
64487
|
}
|
|
64635
|
-
|
|
64636
64488
|
/* Clean up removed elements */
|
|
64637
64489
|
DOMPurify.removed = [];
|
|
64638
|
-
|
|
64639
64490
|
/* Check if dirty is correctly typed for IN_PLACE */
|
|
64640
64491
|
if (typeof dirty === 'string') {
|
|
64641
64492
|
IN_PLACE = false;
|
|
@@ -64669,45 +64520,34 @@ function createDOMPurify() {
|
|
|
64669
64520
|
dirty.indexOf('<') === -1) {
|
|
64670
64521
|
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
|
|
64671
64522
|
}
|
|
64672
|
-
|
|
64673
64523
|
/* Initialize the document to work on */
|
|
64674
64524
|
body = _initDocument(dirty);
|
|
64675
|
-
|
|
64676
64525
|
/* Check we have a DOM node from the data */
|
|
64677
64526
|
if (!body) {
|
|
64678
64527
|
return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';
|
|
64679
64528
|
}
|
|
64680
64529
|
}
|
|
64681
|
-
|
|
64682
64530
|
/* Remove first element node (ours) if FORCE_BODY is set */
|
|
64683
64531
|
if (body && FORCE_BODY) {
|
|
64684
64532
|
_forceRemove(body.firstChild);
|
|
64685
64533
|
}
|
|
64686
|
-
|
|
64687
64534
|
/* Get node iterator */
|
|
64688
64535
|
const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);
|
|
64689
|
-
|
|
64690
64536
|
/* Now start iterating over the created document */
|
|
64691
64537
|
while (currentNode = nodeIterator.nextNode()) {
|
|
64692
64538
|
/* Sanitize tags and elements */
|
|
64693
|
-
|
|
64694
|
-
|
|
64695
|
-
|
|
64696
|
-
|
|
64539
|
+
_sanitizeElements(currentNode);
|
|
64540
|
+
/* Check attributes next */
|
|
64541
|
+
_sanitizeAttributes(currentNode);
|
|
64697
64542
|
/* Shadow DOM detected, sanitize it */
|
|
64698
64543
|
if (currentNode.content instanceof DocumentFragment) {
|
|
64699
64544
|
_sanitizeShadowDOM(currentNode.content);
|
|
64700
64545
|
}
|
|
64701
|
-
|
|
64702
|
-
/* Check attributes, sanitize if necessary */
|
|
64703
|
-
_sanitizeAttributes(currentNode);
|
|
64704
64546
|
}
|
|
64705
|
-
|
|
64706
64547
|
/* If we sanitized `dirty` in-place, return it. */
|
|
64707
64548
|
if (IN_PLACE) {
|
|
64708
64549
|
return dirty;
|
|
64709
64550
|
}
|
|
64710
|
-
|
|
64711
64551
|
/* Return sanitized string or DOM */
|
|
64712
64552
|
if (RETURN_DOM) {
|
|
64713
64553
|
if (RETURN_DOM_FRAGMENT) {
|
|
@@ -64732,12 +64572,10 @@ function createDOMPurify() {
|
|
|
64732
64572
|
return returnNode;
|
|
64733
64573
|
}
|
|
64734
64574
|
let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
|
|
64735
|
-
|
|
64736
64575
|
/* Serialize doctype if allowed */
|
|
64737
64576
|
if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
|
|
64738
64577
|
serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\n' + serializedHTML;
|
|
64739
64578
|
}
|
|
64740
|
-
|
|
64741
64579
|
/* Sanitize final string template-safe */
|
|
64742
64580
|
if (SAFE_FOR_TEMPLATES) {
|
|
64743
64581
|
arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
|
|
@@ -64746,39 +64584,15 @@ function createDOMPurify() {
|
|
|
64746
64584
|
}
|
|
64747
64585
|
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
|
|
64748
64586
|
};
|
|
64749
|
-
|
|
64750
|
-
/**
|
|
64751
|
-
* Public method to set the configuration once
|
|
64752
|
-
* setConfig
|
|
64753
|
-
*
|
|
64754
|
-
* @param {Object} cfg configuration object
|
|
64755
|
-
*/
|
|
64756
64587
|
DOMPurify.setConfig = function () {
|
|
64757
64588
|
let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
64758
64589
|
_parseConfig(cfg);
|
|
64759
64590
|
SET_CONFIG = true;
|
|
64760
64591
|
};
|
|
64761
|
-
|
|
64762
|
-
/**
|
|
64763
|
-
* Public method to remove the configuration
|
|
64764
|
-
* clearConfig
|
|
64765
|
-
*
|
|
64766
|
-
*/
|
|
64767
64592
|
DOMPurify.clearConfig = function () {
|
|
64768
64593
|
CONFIG = null;
|
|
64769
64594
|
SET_CONFIG = false;
|
|
64770
64595
|
};
|
|
64771
|
-
|
|
64772
|
-
/**
|
|
64773
|
-
* Public method to check if an attribute value is valid.
|
|
64774
|
-
* Uses last set config, if any. Otherwise, uses config defaults.
|
|
64775
|
-
* isValidAttribute
|
|
64776
|
-
*
|
|
64777
|
-
* @param {String} tag Tag name of containing element.
|
|
64778
|
-
* @param {String} attr Attribute name.
|
|
64779
|
-
* @param {String} value Attribute value.
|
|
64780
|
-
* @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.
|
|
64781
|
-
*/
|
|
64782
64596
|
DOMPurify.isValidAttribute = function (tag, attr, value) {
|
|
64783
64597
|
/* Initialize shared config vars if necessary. */
|
|
64784
64598
|
if (!CONFIG) {
|
|
@@ -64788,54 +64602,24 @@ function createDOMPurify() {
|
|
|
64788
64602
|
const lcName = transformCaseFunc(attr);
|
|
64789
64603
|
return _isValidAttribute(lcTag, lcName, value);
|
|
64790
64604
|
};
|
|
64791
|
-
|
|
64792
|
-
/**
|
|
64793
|
-
* AddHook
|
|
64794
|
-
* Public method to add DOMPurify hooks
|
|
64795
|
-
*
|
|
64796
|
-
* @param {String} entryPoint entry point for the hook to add
|
|
64797
|
-
* @param {Function} hookFunction function to execute
|
|
64798
|
-
*/
|
|
64799
64605
|
DOMPurify.addHook = function (entryPoint, hookFunction) {
|
|
64800
64606
|
if (typeof hookFunction !== 'function') {
|
|
64801
64607
|
return;
|
|
64802
64608
|
}
|
|
64803
|
-
hooks[entryPoint] = hooks[entryPoint] || [];
|
|
64804
64609
|
arrayPush(hooks[entryPoint], hookFunction);
|
|
64805
64610
|
};
|
|
64806
|
-
|
|
64807
|
-
|
|
64808
|
-
|
|
64809
|
-
|
|
64810
|
-
* (pops it from the stack of hooks if more are present)
|
|
64811
|
-
*
|
|
64812
|
-
* @param {String} entryPoint entry point for the hook to remove
|
|
64813
|
-
* @return {Function} removed(popped) hook
|
|
64814
|
-
*/
|
|
64815
|
-
DOMPurify.removeHook = function (entryPoint) {
|
|
64816
|
-
if (hooks[entryPoint]) {
|
|
64817
|
-
return arrayPop(hooks[entryPoint]);
|
|
64611
|
+
DOMPurify.removeHook = function (entryPoint, hookFunction) {
|
|
64612
|
+
if (hookFunction !== undefined) {
|
|
64613
|
+
const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);
|
|
64614
|
+
return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];
|
|
64818
64615
|
}
|
|
64616
|
+
return arrayPop(hooks[entryPoint]);
|
|
64819
64617
|
};
|
|
64820
|
-
|
|
64821
|
-
/**
|
|
64822
|
-
* RemoveHooks
|
|
64823
|
-
* Public method to remove all DOMPurify hooks at a given entryPoint
|
|
64824
|
-
*
|
|
64825
|
-
* @param {String} entryPoint entry point for the hooks to remove
|
|
64826
|
-
*/
|
|
64827
64618
|
DOMPurify.removeHooks = function (entryPoint) {
|
|
64828
|
-
|
|
64829
|
-
hooks[entryPoint] = [];
|
|
64830
|
-
}
|
|
64619
|
+
hooks[entryPoint] = [];
|
|
64831
64620
|
};
|
|
64832
|
-
|
|
64833
|
-
/**
|
|
64834
|
-
* RemoveAllHooks
|
|
64835
|
-
* Public method to remove all DOMPurify hooks
|
|
64836
|
-
*/
|
|
64837
64621
|
DOMPurify.removeAllHooks = function () {
|
|
64838
|
-
hooks =
|
|
64622
|
+
hooks = _createHooksMap();
|
|
64839
64623
|
};
|
|
64840
64624
|
return DOMPurify;
|
|
64841
64625
|
}
|
|
@@ -64848,7 +64632,7 @@ const InstructionalText = ({
|
|
|
64848
64632
|
style = {}
|
|
64849
64633
|
}) => {
|
|
64850
64634
|
const tokens = useTokens();
|
|
64851
|
-
const styles = getStyles$
|
|
64635
|
+
const styles = getStyles$R(tokens);
|
|
64852
64636
|
const sanitizedInstructionalText = purify.sanitize(instructionalText, {
|
|
64853
64637
|
ALLOWED_TAGS: ["a"],
|
|
64854
64638
|
// Only allow <a />
|
|
@@ -64886,7 +64670,7 @@ const InstructionalText = ({
|
|
|
64886
64670
|
}
|
|
64887
64671
|
);
|
|
64888
64672
|
};
|
|
64889
|
-
const getStyles$
|
|
64673
|
+
const getStyles$R = (tokens) => ({
|
|
64890
64674
|
instructionalLink: {
|
|
64891
64675
|
display: "inline",
|
|
64892
64676
|
whiteSpace: "normal",
|
|
@@ -64906,7 +64690,7 @@ InstructionalText.propTypes = {
|
|
|
64906
64690
|
const InstructionList = (props) => {
|
|
64907
64691
|
const tokens = useTokens();
|
|
64908
64692
|
const listRef = useRef(null);
|
|
64909
|
-
const styles = getStyles$
|
|
64693
|
+
const styles = getStyles$Q(tokens);
|
|
64910
64694
|
const sanitizedItems = props.items.map(
|
|
64911
64695
|
(item) => purify.sanitize(item, {
|
|
64912
64696
|
ALLOWED_TAGS: ["a"],
|
|
@@ -64957,7 +64741,7 @@ const InstructionList = (props) => {
|
|
|
64957
64741
|
item
|
|
64958
64742
|
)) });
|
|
64959
64743
|
};
|
|
64960
|
-
const getStyles$
|
|
64744
|
+
const getStyles$Q = (tokens) => ({
|
|
64961
64745
|
list: {
|
|
64962
64746
|
listStyleType: "none",
|
|
64963
64747
|
listStylePosition: "outside",
|
|
@@ -65019,7 +64803,7 @@ const OAuthDefault = (props) => {
|
|
|
65019
64803
|
const isOauthLoading = useSelector((state) => state.connect.isOauthLoading);
|
|
65020
64804
|
const oauthURL = useSelector((state) => state.connect.oauthURL);
|
|
65021
64805
|
const tokens = useTokens();
|
|
65022
|
-
const styles = getStyles$
|
|
64806
|
+
const styles = getStyles$P(tokens);
|
|
65023
64807
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { role: "alert", children: [
|
|
65024
64808
|
/* @__PURE__ */ jsxRuntimeExports.jsx(InstitutionBlock, { institution: props.institution }),
|
|
65025
64809
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -65081,7 +64865,7 @@ OAuthDefault.propTypes = {
|
|
|
65081
64865
|
selectedInstructionalData: PropTypes$1.object.isRequired,
|
|
65082
64866
|
setIsLeavingUrl: PropTypes$1.func.isRequired
|
|
65083
64867
|
};
|
|
65084
|
-
const getStyles$
|
|
64868
|
+
const getStyles$P = (tokens) => ({
|
|
65085
64869
|
primaryButton: {
|
|
65086
64870
|
display: "flex",
|
|
65087
64871
|
marginTop: tokens.Spacing.XLarge
|
|
@@ -65228,7 +65012,7 @@ const WaitingForOAuth = ({
|
|
|
65228
65012
|
const sendPosthogEvent = useAnalyticsEvent();
|
|
65229
65013
|
const [disableOauthButtons, setDisableOauthButtons] = useState(true);
|
|
65230
65014
|
const tokens = useTokens();
|
|
65231
|
-
const styles = getStyles$
|
|
65015
|
+
const styles = getStyles$O(tokens);
|
|
65232
65016
|
const getNextDelay = getDelay();
|
|
65233
65017
|
const { api } = useApi();
|
|
65234
65018
|
useEffect(() => {
|
|
@@ -65299,7 +65083,7 @@ const WaitingForOAuth = ({
|
|
|
65299
65083
|
) })
|
|
65300
65084
|
] });
|
|
65301
65085
|
};
|
|
65302
|
-
const getStyles$
|
|
65086
|
+
const getStyles$O = (tokens) => ({
|
|
65303
65087
|
spinner: {
|
|
65304
65088
|
marginTop: tokens.Spacing.XLarge
|
|
65305
65089
|
},
|
|
@@ -65321,7 +65105,7 @@ WaitingForOAuth.propTypes = {
|
|
|
65321
65105
|
const MemberError = (props) => {
|
|
65322
65106
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
65323
65107
|
const tokens = useTokens();
|
|
65324
|
-
const styles = getStyles$
|
|
65108
|
+
const styles = getStyles$N(tokens);
|
|
65325
65109
|
const errorStatus = props.error?.response?.status;
|
|
65326
65110
|
useEffect(() => {
|
|
65327
65111
|
const errorPayload = {
|
|
@@ -65355,7 +65139,7 @@ const MemberError = (props) => {
|
|
|
65355
65139
|
/* @__PURE__ */ jsxRuntimeExports.jsx(AriaLive, { level: "assertive", message: `Something went wrong. ${getMessage()}` })
|
|
65356
65140
|
] });
|
|
65357
65141
|
};
|
|
65358
|
-
const getStyles$
|
|
65142
|
+
const getStyles$N = (tokens) => ({
|
|
65359
65143
|
messageBox: {
|
|
65360
65144
|
marginBottom: tokens.Spacing.Medium
|
|
65361
65145
|
}
|
|
@@ -65367,7 +65151,7 @@ MemberError.propTypes = {
|
|
|
65367
65151
|
|
|
65368
65152
|
const OAuthStartError = (props) => {
|
|
65369
65153
|
const tokens = useTokens();
|
|
65370
|
-
const styles = getStyles$
|
|
65154
|
+
const styles = getStyles$M(tokens);
|
|
65371
65155
|
const getNextDelay = getDelay();
|
|
65372
65156
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
65373
65157
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsx(InstitutionBlock, { institution: props.institution }) }),
|
|
@@ -65384,7 +65168,7 @@ const OAuthStartError = (props) => {
|
|
|
65384
65168
|
) })
|
|
65385
65169
|
] });
|
|
65386
65170
|
};
|
|
65387
|
-
const getStyles$
|
|
65171
|
+
const getStyles$M = (tokens) => ({
|
|
65388
65172
|
spinner: {
|
|
65389
65173
|
marginTop: tokens.Spacing.XLarge
|
|
65390
65174
|
},
|
|
@@ -65404,7 +65188,7 @@ OAuthStartError.propTypes = {
|
|
|
65404
65188
|
|
|
65405
65189
|
const PoweredByMX = ({ onClick }) => {
|
|
65406
65190
|
useTokens();
|
|
65407
|
-
const styles = getStyles$
|
|
65191
|
+
const styles = getStyles$L();
|
|
65408
65192
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
65409
65193
|
Button$1,
|
|
65410
65194
|
{
|
|
@@ -65424,7 +65208,7 @@ const PoweredByMX = ({ onClick }) => {
|
|
|
65424
65208
|
PoweredByMX.propTypes = {
|
|
65425
65209
|
onClick: PropTypes$1.func
|
|
65426
65210
|
};
|
|
65427
|
-
const getStyles$
|
|
65211
|
+
const getStyles$L = () => {
|
|
65428
65212
|
return {
|
|
65429
65213
|
button: {
|
|
65430
65214
|
display: "flex",
|
|
@@ -65437,7 +65221,7 @@ const getStyles$J = () => {
|
|
|
65437
65221
|
const StickyComponentContainer = React__default.forwardRef(
|
|
65438
65222
|
({ children, header = null, footer = null }, ref) => {
|
|
65439
65223
|
const tokens = useTokens();
|
|
65440
|
-
const styles = getStyles$
|
|
65224
|
+
const styles = getStyles$K(tokens);
|
|
65441
65225
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref, style: styles.container, children: [
|
|
65442
65226
|
header && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.header, children: header }),
|
|
65443
65227
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.content, children }),
|
|
@@ -65450,7 +65234,7 @@ StickyComponentContainer.propTypes = {
|
|
|
65450
65234
|
header: PropTypes$1.element
|
|
65451
65235
|
};
|
|
65452
65236
|
StickyComponentContainer.displayName = "StickyComponentContainer";
|
|
65453
|
-
const getStyles$
|
|
65237
|
+
const getStyles$K = (tokens) => {
|
|
65454
65238
|
return {
|
|
65455
65239
|
container: {
|
|
65456
65240
|
display: "flex",
|
|
@@ -65549,7 +65333,7 @@ const ConnectLogoHeader = (props) => {
|
|
|
65549
65333
|
const colorScheme = useSelector(selectColorScheme);
|
|
65550
65334
|
const clientGuid = useSelector((state) => state.profiles.client.guid);
|
|
65551
65335
|
const tokens = useTokens();
|
|
65552
|
-
const styles = getStyles$
|
|
65336
|
+
const styles = getStyles$J();
|
|
65553
65337
|
const defaultInstitutionImage = () => colorScheme === COLOR_SCHEME.LIGHT ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { borderRadius: tokens.BorderRadius.Large }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(SvgConnectHeaderInstitutionLight, {}) }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { borderRadius: tokens.BorderRadius.Large }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(SvgConnectHeaderInstitutionDark, {}) });
|
|
65554
65338
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { "aria-hidden": true, style: styles.container, children: [
|
|
65555
65339
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-test": "mxLogo", style: styles.backdropImage, children: colorScheme === COLOR_SCHEME.LIGHT ? /* @__PURE__ */ jsxRuntimeExports.jsx(SvgConnectHeaderBackdropLight, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(SvgConnectHeaderBackdropDark, {}) }),
|
|
@@ -65566,7 +65350,7 @@ const ConnectLogoHeader = (props) => {
|
|
|
65566
65350
|
) : defaultInstitutionImage() })
|
|
65567
65351
|
] });
|
|
65568
65352
|
};
|
|
65569
|
-
const getStyles$
|
|
65353
|
+
const getStyles$J = () => {
|
|
65570
65354
|
const maxHeight = "64px";
|
|
65571
65355
|
const maxWidth = "240px";
|
|
65572
65356
|
return {
|
|
@@ -65687,7 +65471,7 @@ const getDataClusters = () => {
|
|
|
65687
65471
|
|
|
65688
65472
|
const DataCluster = (props) => {
|
|
65689
65473
|
const tokens = useTokens();
|
|
65690
|
-
const styles = getStyles$
|
|
65474
|
+
const styles = getStyles$I(tokens);
|
|
65691
65475
|
const dataCluster = props.dataCluster;
|
|
65692
65476
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
|
|
65693
65477
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -65713,7 +65497,7 @@ const DataCluster = (props) => {
|
|
|
65713
65497
|
)
|
|
65714
65498
|
] });
|
|
65715
65499
|
};
|
|
65716
|
-
const getStyles$
|
|
65500
|
+
const getStyles$I = (tokens) => ({
|
|
65717
65501
|
subTitle: {
|
|
65718
65502
|
fontSize: tokens.FontSize.Body,
|
|
65719
65503
|
fontWeight: tokens.FontWeight.Semibold,
|
|
@@ -65739,7 +65523,7 @@ const DataRequested = (props) => {
|
|
|
65739
65523
|
} = getDataClusters();
|
|
65740
65524
|
const connectConfig = useSelector(selectConnectConfig);
|
|
65741
65525
|
const tokens = useTokens();
|
|
65742
|
-
const styles = getStyles$
|
|
65526
|
+
const styles = getStyles$H(tokens);
|
|
65743
65527
|
const getNextDelay = getDelay();
|
|
65744
65528
|
const appName = useSelector((state) => state.profiles.client.oauth_app_name || null);
|
|
65745
65529
|
const mode = connectConfig.mode ?? AGG_MODE;
|
|
@@ -65810,7 +65594,7 @@ const DataRequested = (props) => {
|
|
|
65810
65594
|
)
|
|
65811
65595
|
] }) });
|
|
65812
65596
|
};
|
|
65813
|
-
const getStyles$
|
|
65597
|
+
const getStyles$H = (tokens) => {
|
|
65814
65598
|
return {
|
|
65815
65599
|
title: {
|
|
65816
65600
|
marginBottom: tokens.Spacing.Tiny
|
|
@@ -65835,7 +65619,7 @@ const DataAvailable = () => {
|
|
|
65835
65619
|
useAnalyticsPath(...PageviewInfo.CONNECT_DISCLOSURE_DATA_AVAILABLE);
|
|
65836
65620
|
const { dataClusters } = getDataClusters();
|
|
65837
65621
|
const tokens = useTokens();
|
|
65838
|
-
const styles = getStyles$
|
|
65622
|
+
const styles = getStyles$G(tokens);
|
|
65839
65623
|
const getNextDelay = getDelay();
|
|
65840
65624
|
const appName = useSelector((state) => state.profiles.client.oauth_app_name || null);
|
|
65841
65625
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.container, children: [
|
|
@@ -65868,7 +65652,7 @@ const DataAvailable = () => {
|
|
|
65868
65652
|
Object.values(dataClusters).map((cluster, i) => /* @__PURE__ */ jsxRuntimeExports.jsx(DataCluster, { dataCluster: cluster }, i))
|
|
65869
65653
|
] }) }) });
|
|
65870
65654
|
};
|
|
65871
|
-
const getStyles$
|
|
65655
|
+
const getStyles$G = (tokens) => {
|
|
65872
65656
|
return {
|
|
65873
65657
|
title: {
|
|
65874
65658
|
marginBottom: tokens.Spacing.Tiny
|
|
@@ -65899,7 +65683,7 @@ const DisclosureInterstitial = React__default.forwardRef((props, interstitialNav
|
|
|
65899
65683
|
const { handleGoBack, scrollToTop } = props;
|
|
65900
65684
|
useAnalyticsPath(...PageviewInfo.CONNECT_DISCLOSURE);
|
|
65901
65685
|
const tokens = useTokens();
|
|
65902
|
-
const styles = getStyles$
|
|
65686
|
+
const styles = getStyles$F(tokens);
|
|
65903
65687
|
const getNextDelay = getDelay();
|
|
65904
65688
|
const institution = useSelector((state) => state.connect.selectedInstitution);
|
|
65905
65689
|
const appName = useSelector((state) => state.profiles.client.oauth_app_name || null);
|
|
@@ -66048,7 +65832,7 @@ const DisclosureInterstitial = React__default.forwardRef((props, interstitialNav
|
|
|
66048
65832
|
] })
|
|
66049
65833
|
] });
|
|
66050
65834
|
});
|
|
66051
|
-
const getStyles$
|
|
65835
|
+
const getStyles$F = (tokens) => {
|
|
66052
65836
|
return {
|
|
66053
65837
|
logoHeader: {
|
|
66054
65838
|
marginTop: tokens.Spacing.Medium,
|
|
@@ -66303,7 +66087,7 @@ const OAuthError = React__default.forwardRef((props, navigationRef) => {
|
|
|
66303
66087
|
const errorReason = useSelector((state) => state.connect.oauthErrorReason);
|
|
66304
66088
|
const selectedInstitution = useSelector((state) => state.connect.selectedInstitution);
|
|
66305
66089
|
const tokens = useTokens();
|
|
66306
|
-
const styles = getStyles$
|
|
66090
|
+
const styles = getStyles$E(tokens);
|
|
66307
66091
|
const getNextDelay = getDelay();
|
|
66308
66092
|
useImperativeHandle(navigationRef, () => {
|
|
66309
66093
|
return {
|
|
@@ -66351,7 +66135,7 @@ OAuthError.propTypes = {
|
|
|
66351
66135
|
onReturnToSearch: PropTypes$1.func.isRequired
|
|
66352
66136
|
};
|
|
66353
66137
|
OAuthError.displayName = "OAuthError";
|
|
66354
|
-
const getStyles$
|
|
66138
|
+
const getStyles$E = (tokens) => {
|
|
66355
66139
|
return {
|
|
66356
66140
|
errorTitle: {
|
|
66357
66141
|
fontWeight: tokens.FontWeight.Semibold
|
|
@@ -66390,6 +66174,22 @@ const getOAuthErrorMessage = (errorReason, memberName = null) => {
|
|
|
66390
66174
|
};
|
|
66391
66175
|
|
|
66392
66176
|
const getInstitutionLoginUrl = (institution) => institution.login_url ?? institution.url;
|
|
66177
|
+
const instutionSupportRequestedProducts = (config, institution) => {
|
|
66178
|
+
const products = config?.data_request?.products;
|
|
66179
|
+
if (Array.isArray(products) && products.length > 0) {
|
|
66180
|
+
return products.every((product) => {
|
|
66181
|
+
switch (product) {
|
|
66182
|
+
case COMBO_JOB_DATA_TYPES.ACCOUNT_NUMBER:
|
|
66183
|
+
return institution.account_verification_is_enabled;
|
|
66184
|
+
case COMBO_JOB_DATA_TYPES.ACCOUNT_OWNER:
|
|
66185
|
+
return institution.account_identification_is_enabled;
|
|
66186
|
+
default:
|
|
66187
|
+
return true;
|
|
66188
|
+
}
|
|
66189
|
+
});
|
|
66190
|
+
}
|
|
66191
|
+
return true;
|
|
66192
|
+
};
|
|
66393
66193
|
|
|
66394
66194
|
const buildInitialValues = (loginFields) => {
|
|
66395
66195
|
return loginFields.reduce((acc, currentField) => {
|
|
@@ -66553,7 +66353,7 @@ const Credentials = React__default.forwardRef(
|
|
|
66553
66353
|
const [needToSendAnalyticEvent, setNeedToSendAnalyticEvent] = useState(true);
|
|
66554
66354
|
const [needToSendPasswordAnalyticEvent, setPasswordAnalyticEvent] = useState(true);
|
|
66555
66355
|
const tokens = useTokens();
|
|
66556
|
-
const styles = getStyles$
|
|
66356
|
+
const styles = getStyles$D(tokens);
|
|
66557
66357
|
const getNextDelay = getDelay(0, 100);
|
|
66558
66358
|
const initialValues = buildInitialValues(credentials);
|
|
66559
66359
|
const formSchema = buildFormSchema(credentials);
|
|
@@ -66927,7 +66727,7 @@ const Credentials = React__default.forwardRef(
|
|
|
66927
66727
|
] });
|
|
66928
66728
|
}
|
|
66929
66729
|
);
|
|
66930
|
-
const getStyles$
|
|
66730
|
+
const getStyles$D = (tokens) => {
|
|
66931
66731
|
return {
|
|
66932
66732
|
headerText: {
|
|
66933
66733
|
paddingBottom: tokens.Spacing.XSmall
|
|
@@ -67185,7 +66985,7 @@ CreateMemberForm.propTypes = {
|
|
|
67185
66985
|
const DeleteMemberSuccess = ({ institution, onContinueClick }) => {
|
|
67186
66986
|
useAnalyticsPath(...PageviewInfo.CONNECT_DELETE_MEMBER_SUCCESS);
|
|
67187
66987
|
const tokens = useTokens();
|
|
67188
|
-
const styles = getStyles$
|
|
66988
|
+
const styles = getStyles$C(tokens);
|
|
67189
66989
|
const getNextDelay = getDelay();
|
|
67190
66990
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(React__default.Fragment, { children: [
|
|
67191
66991
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(SlideDown, { delay: getNextDelay(), children: [
|
|
@@ -67205,7 +67005,7 @@ const DeleteMemberSuccess = ({ institution, onContinueClick }) => {
|
|
|
67205
67005
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsx(PrivateAndSecure, {}) })
|
|
67206
67006
|
] });
|
|
67207
67007
|
};
|
|
67208
|
-
const getStyles$
|
|
67008
|
+
const getStyles$C = (tokens) => {
|
|
67209
67009
|
return {
|
|
67210
67010
|
primaryText: {
|
|
67211
67011
|
fontSize: tokens.FontSize.H2,
|
|
@@ -67509,7 +67309,7 @@ const Connecting = (props) => {
|
|
|
67509
67309
|
authentication_method: currentMember.is_oauth ? AuthenticationMethods.OAUTH : AuthenticationMethods.NON_OAUTH
|
|
67510
67310
|
});
|
|
67511
67311
|
const tokens = useTokens();
|
|
67512
|
-
const styles = getStyles$
|
|
67312
|
+
const styles = getStyles$B(tokens);
|
|
67513
67313
|
const getNextDelay = getDelay();
|
|
67514
67314
|
const dispatch = useDispatch();
|
|
67515
67315
|
const analyticFunctions = useContext(AnalyticContext);
|
|
@@ -67692,7 +67492,7 @@ const Connecting = (props) => {
|
|
|
67692
67492
|
/* @__PURE__ */ jsxRuntimeExports.jsx(AriaLive, { level: "assertive", message, timeout: 500 })
|
|
67693
67493
|
] });
|
|
67694
67494
|
};
|
|
67695
|
-
const getStyles$
|
|
67495
|
+
const getStyles$B = (tokens) => ({
|
|
67696
67496
|
container: {
|
|
67697
67497
|
textAlign: "center"
|
|
67698
67498
|
},
|
|
@@ -67755,7 +67555,7 @@ const PrimaryActions = ({
|
|
|
67755
67555
|
onUpdateCredentialsClick
|
|
67756
67556
|
}) => {
|
|
67757
67557
|
const tokens = useTokens();
|
|
67758
|
-
const styles = getStyles$
|
|
67558
|
+
const styles = getStyles$A(tokens);
|
|
67759
67559
|
const actionMap = {
|
|
67760
67560
|
[REFRESH]: {
|
|
67761
67561
|
text: __("Try again"),
|
|
@@ -67790,7 +67590,7 @@ const PrimaryActions = ({
|
|
|
67790
67590
|
);
|
|
67791
67591
|
}) });
|
|
67792
67592
|
};
|
|
67793
|
-
const getStyles$
|
|
67593
|
+
const getStyles$A = (tokens) => {
|
|
67794
67594
|
return {
|
|
67795
67595
|
container: {
|
|
67796
67596
|
marginTop: tokens.Spacing.XLarge
|
|
@@ -67818,7 +67618,7 @@ const SecondaryActions = ({
|
|
|
67818
67618
|
}) => {
|
|
67819
67619
|
const sendPosthogEvent = useAnalyticsEvent();
|
|
67820
67620
|
const tokens = useTokens();
|
|
67821
|
-
const styles = getStyles$
|
|
67621
|
+
const styles = getStyles$z(tokens);
|
|
67822
67622
|
const actionMap = [
|
|
67823
67623
|
{
|
|
67824
67624
|
key: VISIT_WEBSITE,
|
|
@@ -67876,7 +67676,7 @@ const SecondaryActions = ({
|
|
|
67876
67676
|
);
|
|
67877
67677
|
}) });
|
|
67878
67678
|
};
|
|
67879
|
-
const getStyles$
|
|
67679
|
+
const getStyles$z = (tokens) => {
|
|
67880
67680
|
return {
|
|
67881
67681
|
container: {
|
|
67882
67682
|
display: "flex",
|
|
@@ -67926,7 +67726,7 @@ const ImpededMemberError = ({
|
|
|
67926
67726
|
title
|
|
67927
67727
|
}) => {
|
|
67928
67728
|
const tokens = useTokens();
|
|
67929
|
-
const styles = getStyles$
|
|
67729
|
+
const styles = getStyles$y(tokens);
|
|
67930
67730
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.container, children: [
|
|
67931
67731
|
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { truncate: false, variant: "H2", children: title }),
|
|
67932
67732
|
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { truncate: false, variant: "Paragraph", children: message }),
|
|
@@ -67965,7 +67765,7 @@ const ImpededMemberError = ({
|
|
|
67965
67765
|
] })
|
|
67966
67766
|
] });
|
|
67967
67767
|
};
|
|
67968
|
-
const getStyles$
|
|
67768
|
+
const getStyles$y = (tokens) => {
|
|
67969
67769
|
return {
|
|
67970
67770
|
container: {
|
|
67971
67771
|
display: "flex",
|
|
@@ -68008,7 +67808,7 @@ ImpededMemberError.propTypes = {
|
|
|
68008
67808
|
const NoEligibleAccounts = () => {
|
|
68009
67809
|
const sendPosthogEvent = useAnalyticsEvent();
|
|
68010
67810
|
const tokens = useTokens();
|
|
68011
|
-
const styles = getStyles$
|
|
67811
|
+
const styles = getStyles$x(tokens);
|
|
68012
67812
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
68013
67813
|
const dispatch = useDispatch();
|
|
68014
67814
|
const currentMember = useSelector(getCurrentMember);
|
|
@@ -68093,7 +67893,7 @@ const NoEligibleAccounts = () => {
|
|
|
68093
67893
|
)
|
|
68094
67894
|
] });
|
|
68095
67895
|
};
|
|
68096
|
-
const getStyles$
|
|
67896
|
+
const getStyles$x = (tokens) => {
|
|
68097
67897
|
return {
|
|
68098
67898
|
headerText: {
|
|
68099
67899
|
fontWeight: tokens.FontWeight.Bold
|
|
@@ -68842,7 +68642,7 @@ const ThankYouMessage = ({
|
|
|
68842
68642
|
portalTo = "connect-wrapper"
|
|
68843
68643
|
}) => {
|
|
68844
68644
|
const tokens = useTokens();
|
|
68845
|
-
const styles = getStyles$
|
|
68645
|
+
const styles = getStyles$w(tokens);
|
|
68846
68646
|
return createPortal(
|
|
68847
68647
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.container, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.thankYouContainer, children: [
|
|
68848
68648
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.checkMarkIcon, children: /* @__PURE__ */ jsxRuntimeExports.jsx(CheckmarkFilled, { color: "#12875E", size: 80 }) }) }),
|
|
@@ -68852,7 +68652,7 @@ const ThankYouMessage = ({
|
|
|
68852
68652
|
document.getElementById(portalTo)
|
|
68853
68653
|
);
|
|
68854
68654
|
};
|
|
68855
|
-
const getStyles$
|
|
68655
|
+
const getStyles$w = (tokens) => ({
|
|
68856
68656
|
container: {
|
|
68857
68657
|
top: 0,
|
|
68858
68658
|
margin: "0 auto",
|
|
@@ -68864,8 +68664,7 @@ const getStyles$u = (tokens) => ({
|
|
|
68864
68664
|
},
|
|
68865
68665
|
checkMarkIcon: {
|
|
68866
68666
|
display: "flex",
|
|
68867
|
-
justifyContent: "center"
|
|
68868
|
-
marginBottom: tokens.Spacing.XLarge
|
|
68667
|
+
justifyContent: "center"
|
|
68869
68668
|
},
|
|
68870
68669
|
thankYouContainer: {
|
|
68871
68670
|
display: "flex",
|
|
@@ -68873,14 +68672,14 @@ const getStyles$u = (tokens) => ({
|
|
|
68873
68672
|
justifyContent: "center",
|
|
68874
68673
|
alignItems: "center",
|
|
68875
68674
|
maxWidth: "400px",
|
|
68876
|
-
margin: "
|
|
68675
|
+
margin: "80px auto 0",
|
|
68877
68676
|
padding: "0 24px"
|
|
68878
68677
|
},
|
|
68879
68678
|
thankYouMessage: {
|
|
68880
|
-
marginTop: "
|
|
68679
|
+
marginTop: "24px"
|
|
68881
68680
|
},
|
|
68882
68681
|
button: {
|
|
68883
|
-
marginTop: "
|
|
68682
|
+
marginTop: "32px"
|
|
68884
68683
|
}
|
|
68885
68684
|
});
|
|
68886
68685
|
|
|
@@ -68905,125 +68704,123 @@ const SURVEY_RATING = {
|
|
|
68905
68704
|
4: "4",
|
|
68906
68705
|
5: "5"
|
|
68907
68706
|
};
|
|
68908
|
-
const ConnectSuccessSurvey = React__default.forwardRef(
|
|
68909
|
-
|
|
68910
|
-
|
|
68911
|
-
|
|
68912
|
-
|
|
68913
|
-
|
|
68914
|
-
|
|
68915
|
-
|
|
68916
|
-
|
|
68917
|
-
|
|
68918
|
-
|
|
68919
|
-
|
|
68920
|
-
|
|
68921
|
-
|
|
68922
|
-
|
|
68923
|
-
|
|
68924
|
-
setShowErrorMessage(false);
|
|
68925
|
-
}
|
|
68707
|
+
const ConnectSuccessSurvey = React__default.forwardRef(({ handleBack, handleDone }, connectSuccessSurveyRef) => {
|
|
68708
|
+
const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0);
|
|
68709
|
+
const [answers, setAnswers] = useState({});
|
|
68710
|
+
const [showThankYouMessage, setShowThankYouMessage] = useState(false);
|
|
68711
|
+
const [showErrorMessage, setShowErrorMessage] = useState(false);
|
|
68712
|
+
const { onSubmitConnectSuccessSurvey } = useContext(AnalyticContext);
|
|
68713
|
+
const tokens = useTokens();
|
|
68714
|
+
const styles = getStyles$v(tokens);
|
|
68715
|
+
useImperativeHandle(connectSuccessSurveyRef, () => {
|
|
68716
|
+
return {
|
|
68717
|
+
handleConnectSuccessSurveyBackButton() {
|
|
68718
|
+
if (currentQuestionIndex === 0) {
|
|
68719
|
+
handleBack();
|
|
68720
|
+
} else {
|
|
68721
|
+
setCurrentQuestionIndex(currentQuestionIndex - 1);
|
|
68722
|
+
setShowErrorMessage(false);
|
|
68926
68723
|
}
|
|
68927
|
-
};
|
|
68928
|
-
}, [currentQuestionIndex]);
|
|
68929
|
-
const handleToggleButtonChange = (questionIndex, answer) => {
|
|
68930
|
-
if (answer !== null) {
|
|
68931
|
-
setAnswers({ ...answers, [questionIndex]: answer });
|
|
68932
|
-
setShowErrorMessage(false);
|
|
68933
68724
|
}
|
|
68934
68725
|
};
|
|
68935
|
-
|
|
68726
|
+
}, [currentQuestionIndex]);
|
|
68727
|
+
const handleToggleButtonChange = (questionIndex, answer) => {
|
|
68728
|
+
if (answer !== null) {
|
|
68936
68729
|
setAnswers({ ...answers, [questionIndex]: answer });
|
|
68937
|
-
|
|
68938
|
-
|
|
68939
|
-
|
|
68940
|
-
|
|
68941
|
-
|
|
68942
|
-
|
|
68943
|
-
|
|
68944
|
-
|
|
68945
|
-
|
|
68946
|
-
|
|
68947
|
-
|
|
68948
|
-
}
|
|
68949
|
-
|
|
68950
|
-
|
|
68951
|
-
|
|
68952
|
-
|
|
68953
|
-
|
|
68954
|
-
|
|
68955
|
-
|
|
68956
|
-
|
|
68957
|
-
|
|
68958
|
-
|
|
68959
|
-
|
|
68960
|
-
|
|
68961
|
-
|
|
68962
|
-
|
|
68963
|
-
|
|
68964
|
-
|
|
68965
|
-
|
|
68730
|
+
setShowErrorMessage(false);
|
|
68731
|
+
}
|
|
68732
|
+
};
|
|
68733
|
+
const handleTextFieldChange = (questionIndex, answer) => {
|
|
68734
|
+
setAnswers({ ...answers, [questionIndex]: answer });
|
|
68735
|
+
};
|
|
68736
|
+
const handleContinue = () => {
|
|
68737
|
+
if (currentQuestionIndex in answers) {
|
|
68738
|
+
setCurrentQuestionIndex(currentQuestionIndex + 1);
|
|
68739
|
+
} else {
|
|
68740
|
+
setShowErrorMessage(true);
|
|
68741
|
+
}
|
|
68742
|
+
};
|
|
68743
|
+
const sendFeedback = () => {
|
|
68744
|
+
onSubmitConnectSuccessSurvey(answers);
|
|
68745
|
+
setShowThankYouMessage(true);
|
|
68746
|
+
};
|
|
68747
|
+
const currentQuestion = SURVEY_QUESTIONS[currentQuestionIndex];
|
|
68748
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: showThankYouMessage ? /* @__PURE__ */ jsxRuntimeExports.jsx(ThankYouMessage, { handleDone }) : /* @__PURE__ */ jsxRuntimeExports.jsx(React__default.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.surveyQuestion, children: [
|
|
68749
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { component: "h2", truncate: false, variant: "H2", children: currentQuestion.question() }),
|
|
68750
|
+
currentQuestion.type === "number" ? /* @__PURE__ */ jsxRuntimeExports.jsxs(React__default.Fragment, { children: [
|
|
68751
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
68752
|
+
ToggleButtonGroup,
|
|
68753
|
+
{
|
|
68754
|
+
"aria-label": "Platform",
|
|
68755
|
+
color: "primary",
|
|
68756
|
+
exclusive: true,
|
|
68757
|
+
onChange: (_, newSelected) => handleToggleButtonChange(currentQuestionIndex, newSelected),
|
|
68758
|
+
style: styles.toggleButtonGroup,
|
|
68759
|
+
value: answers[currentQuestionIndex],
|
|
68760
|
+
children: Object.keys(SURVEY_RATING).map((key) => {
|
|
68761
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
68762
|
+
ToggleButton,
|
|
68763
|
+
{
|
|
68764
|
+
style: styles.toggleButton,
|
|
68765
|
+
sx: {
|
|
68966
68766
|
color: "#2C64EF",
|
|
68967
|
-
|
|
68968
|
-
|
|
68969
|
-
|
|
68970
|
-
|
|
68971
|
-
|
|
68972
|
-
boxShadow: "none"
|
|
68973
|
-
}
|
|
68974
|
-
},
|
|
68975
|
-
value: SURVEY_RATING[key],
|
|
68976
|
-
children: key
|
|
68767
|
+
"&.Mui-selected": {
|
|
68768
|
+
backgroundColor: "#2C64EF",
|
|
68769
|
+
color: tokens.TextColor.Light,
|
|
68770
|
+
boxShadow: "none"
|
|
68771
|
+
}
|
|
68977
68772
|
},
|
|
68978
|
-
key
|
|
68979
|
-
|
|
68980
|
-
|
|
68981
|
-
|
|
68982
|
-
|
|
68983
|
-
|
|
68984
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { bold: true, variant: "Small", children: __("Strongly disagree") }),
|
|
68985
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { bold: true, variant: "Small", children: __("Strongly agree") })
|
|
68986
|
-
] })
|
|
68987
|
-
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.textQuestion, children: [
|
|
68988
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { style: styles.textQuestionTitle, variant: "Paragraph", children: __("Please let us know how we can improve.") }),
|
|
68989
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
68990
|
-
TextField$1,
|
|
68991
|
-
{
|
|
68992
|
-
autoFocus: true,
|
|
68993
|
-
multiline: true,
|
|
68994
|
-
onChange: (e) => handleTextFieldChange(currentQuestionIndex, e.target.value),
|
|
68995
|
-
rows: 4,
|
|
68996
|
-
value: answers[currentQuestionIndex]
|
|
68997
|
-
}
|
|
68998
|
-
)
|
|
68999
|
-
] }),
|
|
69000
|
-
showErrorMessage && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.errorMessage, children: [
|
|
69001
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(AttentionFilled, { color: "#E32727", size: 16, style: styles.errorIcon }),
|
|
69002
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { color: "#E32727", sx: { fontSize: "12px" }, variant: "XSmall", children: __("Please select an option before continuing.") })
|
|
69003
|
-
] }),
|
|
69004
|
-
currentQuestionIndex === SURVEY_QUESTIONS.length - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
69005
|
-
Button$1,
|
|
69006
|
-
{
|
|
69007
|
-
fullWidth: true,
|
|
69008
|
-
onClick: sendFeedback,
|
|
69009
|
-
style: styles.button,
|
|
69010
|
-
variant: "contained",
|
|
69011
|
-
children: __("Send feedback")
|
|
68773
|
+
value: SURVEY_RATING[+key],
|
|
68774
|
+
children: key
|
|
68775
|
+
},
|
|
68776
|
+
key
|
|
68777
|
+
);
|
|
68778
|
+
})
|
|
69012
68779
|
}
|
|
69013
|
-
)
|
|
69014
|
-
|
|
68780
|
+
),
|
|
68781
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.boundLabels, children: [
|
|
68782
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { bold: true, variant: "Small", children: __("Strongly disagree") }),
|
|
68783
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { bold: true, variant: "Small", children: __("Strongly agree") })
|
|
68784
|
+
] })
|
|
68785
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.textQuestion, children: [
|
|
68786
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { style: styles.textQuestionTitle, variant: "Paragraph", children: __("Please let us know how we can improve.") }),
|
|
68787
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
68788
|
+
TextField$1,
|
|
69015
68789
|
{
|
|
69016
|
-
|
|
69017
|
-
|
|
69018
|
-
|
|
69019
|
-
|
|
69020
|
-
|
|
68790
|
+
autoFocus: true,
|
|
68791
|
+
multiline: true,
|
|
68792
|
+
onChange: (e) => handleTextFieldChange(currentQuestionIndex, e.target.value),
|
|
68793
|
+
rows: 4,
|
|
68794
|
+
value: answers[currentQuestionIndex]
|
|
69021
68795
|
}
|
|
69022
68796
|
)
|
|
69023
|
-
] })
|
|
69024
|
-
|
|
69025
|
-
)
|
|
69026
|
-
|
|
68797
|
+
] }),
|
|
68798
|
+
showErrorMessage && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.errorMessage, children: [
|
|
68799
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(AttentionFilled, { color: "#E32727", size: 16, style: styles.errorIcon }),
|
|
68800
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { color: "#E32727", sx: { fontSize: "12px" }, variant: "XSmall", children: __("Please select an option before continuing.") })
|
|
68801
|
+
] }),
|
|
68802
|
+
currentQuestionIndex === SURVEY_QUESTIONS.length - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
68803
|
+
Button$1,
|
|
68804
|
+
{
|
|
68805
|
+
fullWidth: true,
|
|
68806
|
+
onClick: sendFeedback,
|
|
68807
|
+
style: styles.button,
|
|
68808
|
+
variant: "contained",
|
|
68809
|
+
children: __("Send feedback")
|
|
68810
|
+
}
|
|
68811
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
68812
|
+
Button$1,
|
|
68813
|
+
{
|
|
68814
|
+
fullWidth: true,
|
|
68815
|
+
onClick: handleContinue,
|
|
68816
|
+
style: styles.button,
|
|
68817
|
+
variant: "contained",
|
|
68818
|
+
children: __("Continue")
|
|
68819
|
+
}
|
|
68820
|
+
)
|
|
68821
|
+
] }) }) });
|
|
68822
|
+
});
|
|
68823
|
+
const getStyles$v = (tokens) => ({
|
|
69027
68824
|
checkMarkIcon: {
|
|
69028
68825
|
display: "flex",
|
|
69029
68826
|
justifyContent: "center",
|
|
@@ -69082,8 +68879,7 @@ const getStyles$t = (tokens) => ({
|
|
|
69082
68879
|
display: "flex",
|
|
69083
68880
|
flexDirection: "column",
|
|
69084
68881
|
width: "100%",
|
|
69085
|
-
marginTop: tokens.Spacing.Large
|
|
69086
|
-
marginBottom: tokens.Spacing.XLarge
|
|
68882
|
+
marginTop: tokens.Spacing.Large
|
|
69087
68883
|
},
|
|
69088
68884
|
textQuestionTitle: {
|
|
69089
68885
|
marginBottom: tokens.Spacing.Medium
|
|
@@ -69104,7 +68900,7 @@ const Connected = React__default.forwardRef(
|
|
|
69104
68900
|
const appName = useSelector((state) => state.profiles.client.oauth_app_name || null);
|
|
69105
68901
|
const { onShowConnectSuccessSurvey } = useContext(AnalyticContext);
|
|
69106
68902
|
const tokens = useTokens();
|
|
69107
|
-
const styles = getStyles$
|
|
68903
|
+
const styles = getStyles$u(tokens);
|
|
69108
68904
|
const getNextDelay = getDelay();
|
|
69109
68905
|
const [showFeedBack, setShowFeedBack] = useState(false);
|
|
69110
68906
|
const { name: institutionName } = institution;
|
|
@@ -69119,7 +68915,7 @@ const Connected = React__default.forwardRef(
|
|
|
69119
68915
|
useImperativeHandle(navigationRef, () => {
|
|
69120
68916
|
return {
|
|
69121
68917
|
handleBackButton() {
|
|
69122
|
-
connectSuccessSurveyRef.current
|
|
68918
|
+
connectSuccessSurveyRef.current?.handleConnectSuccessSurveyBackButton();
|
|
69123
68919
|
},
|
|
69124
68920
|
showBackButton() {
|
|
69125
68921
|
return showFeedBack;
|
|
@@ -69212,7 +69008,7 @@ const Connected = React__default.forwardRef(
|
|
|
69212
69008
|
] });
|
|
69213
69009
|
}
|
|
69214
69010
|
);
|
|
69215
|
-
const getStyles$
|
|
69011
|
+
const getStyles$u = (tokens) => {
|
|
69216
69012
|
return {
|
|
69217
69013
|
header: {
|
|
69218
69014
|
display: "flex",
|
|
@@ -69265,13 +69061,13 @@ const Tag = ({
|
|
|
69265
69061
|
...rest
|
|
69266
69062
|
}) => {
|
|
69267
69063
|
const tokens = useTokens();
|
|
69268
|
-
const styles = getStyles$
|
|
69064
|
+
const styles = getStyles$t(tokens);
|
|
69269
69065
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: `${dist.css(styles.wrapper)} ${size} ${variant} kyper-tag ${className}`, ...rest, children: [
|
|
69270
69066
|
title,
|
|
69271
69067
|
children
|
|
69272
69068
|
] });
|
|
69273
69069
|
};
|
|
69274
|
-
const getStyles$
|
|
69070
|
+
const getStyles$t = (tokens) => ({
|
|
69275
69071
|
wrapper: {
|
|
69276
69072
|
display: "inline-flex",
|
|
69277
69073
|
alignItems: "center",
|
|
@@ -69348,7 +69144,7 @@ Tag.propTypes = {
|
|
|
69348
69144
|
const ActionTile = (props) => {
|
|
69349
69145
|
const { icon, onSelectAction, subTitle, title } = props;
|
|
69350
69146
|
const tokens = useTokens();
|
|
69351
|
-
const styles = getStyles$
|
|
69147
|
+
const styles = getStyles$s(tokens);
|
|
69352
69148
|
const startIcon = /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.iconColumn, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.iconBackground, children: icon }) });
|
|
69353
69149
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
69354
69150
|
Button$1,
|
|
@@ -69366,7 +69162,7 @@ const ActionTile = (props) => {
|
|
|
69366
69162
|
}
|
|
69367
69163
|
) });
|
|
69368
69164
|
};
|
|
69369
|
-
const getStyles$
|
|
69165
|
+
const getStyles$s = (tokens) => ({
|
|
69370
69166
|
iconColumn: {
|
|
69371
69167
|
alignSelf: "start",
|
|
69372
69168
|
display: "flex",
|
|
@@ -69404,7 +69200,7 @@ const SharedRoutingNumber = (props) => {
|
|
|
69404
69200
|
useAnalyticsPath(...PageviewInfo.CONNECT_SHARED_ROUTING_NUMBER);
|
|
69405
69201
|
const containerRef = useRef(null);
|
|
69406
69202
|
const tokens = useTokens();
|
|
69407
|
-
const styles = getStyles$
|
|
69203
|
+
const styles = getStyles$r(tokens);
|
|
69408
69204
|
const getNextDelay = getDelay();
|
|
69409
69205
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: containerRef, style: styles.container, children: [
|
|
69410
69206
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(SlideDown, { delay: getNextDelay(), children: [
|
|
@@ -69464,7 +69260,7 @@ const SharedRoutingNumber = (props) => {
|
|
|
69464
69260
|
] })
|
|
69465
69261
|
] });
|
|
69466
69262
|
};
|
|
69467
|
-
const getStyles$
|
|
69263
|
+
const getStyles$r = (tokens) => ({
|
|
69468
69264
|
container: {
|
|
69469
69265
|
display: "flex",
|
|
69470
69266
|
flexDirection: "column"
|
|
@@ -69515,7 +69311,7 @@ const SvgCheckRoutingNumber = (props) => /* @__PURE__ */ React$2.createElement("
|
|
|
69515
69311
|
const FindAccountInfo = ({ onClose, step }) => {
|
|
69516
69312
|
const containerRef = useRef(null);
|
|
69517
69313
|
const tokens = useTokens();
|
|
69518
|
-
const styles = getStyles$
|
|
69314
|
+
const styles = getStyles$q(tokens);
|
|
69519
69315
|
const getNextDelay = getDelay();
|
|
69520
69316
|
const type = step === VIEWS.ACCOUNT_INFO ? __("account") : __("routing");
|
|
69521
69317
|
const handleClose = () => fadeOut(containerRef.current, "up", 300).then(onClose);
|
|
@@ -69570,7 +69366,7 @@ const FindAccountInfo = ({ onClose, step }) => {
|
|
|
69570
69366
|
) })
|
|
69571
69367
|
] });
|
|
69572
69368
|
};
|
|
69573
|
-
const getStyles$
|
|
69369
|
+
const getStyles$q = (tokens) => ({
|
|
69574
69370
|
container: {
|
|
69575
69371
|
display: "flex",
|
|
69576
69372
|
flexDirection: "column",
|
|
@@ -69596,7 +69392,7 @@ FindAccountInfo.propTypes = {
|
|
|
69596
69392
|
const ActionableUtilityRow = (props) => {
|
|
69597
69393
|
const { text, textStyles, onClick, icon, role = "button", showHorizontalLine = true } = props;
|
|
69598
69394
|
const tokens = useTokens();
|
|
69599
|
-
const styles = getStyles$
|
|
69395
|
+
const styles = getStyles$p(tokens);
|
|
69600
69396
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.container, children: [
|
|
69601
69397
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
69602
69398
|
Button$1,
|
|
@@ -69626,7 +69422,7 @@ const ActionableUtilityRow = (props) => {
|
|
|
69626
69422
|
showHorizontalLine && /* @__PURE__ */ jsxRuntimeExports.jsx("hr", { style: styles.hr })
|
|
69627
69423
|
] });
|
|
69628
69424
|
};
|
|
69629
|
-
const getStyles$
|
|
69425
|
+
const getStyles$p = (tokens) => {
|
|
69630
69426
|
return {
|
|
69631
69427
|
container: {
|
|
69632
69428
|
marginLeft: `-${tokens.Spacing.Small}px`,
|
|
@@ -69668,7 +69464,7 @@ const RoutingNumber = (props) => {
|
|
|
69668
69464
|
const containerRef = useRef(null);
|
|
69669
69465
|
useAnalyticsPath(...PageviewInfo.CONNECT_MICRODEPOSITS_ROUTING_NUMBER);
|
|
69670
69466
|
const tokens = useTokens();
|
|
69671
|
-
const styles = getStyles$
|
|
69467
|
+
const styles = getStyles$o(tokens);
|
|
69672
69468
|
const getNextDelay = getDelay();
|
|
69673
69469
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
69674
69470
|
const [routingBlocked, setRoutingBlocked] = useState("");
|
|
@@ -69810,7 +69606,7 @@ const RoutingNumber = (props) => {
|
|
|
69810
69606
|
] })
|
|
69811
69607
|
] });
|
|
69812
69608
|
};
|
|
69813
|
-
const getStyles$
|
|
69609
|
+
const getStyles$o = (tokens) => ({
|
|
69814
69610
|
header: {
|
|
69815
69611
|
display: "flex",
|
|
69816
69612
|
flexDirection: "column"
|
|
@@ -69835,7 +69631,7 @@ const HowItWorks = ({ onContinue }) => {
|
|
|
69835
69631
|
const containerRef = useRef(null);
|
|
69836
69632
|
useAnalyticsPath(...PageviewInfo.CONNECT_MICRODEPOSITS_HOW_IT_WORKS);
|
|
69837
69633
|
const tokens = useTokens();
|
|
69838
|
-
const styles = getStyles$
|
|
69634
|
+
const styles = getStyles$n(tokens);
|
|
69839
69635
|
const getNextDelay = getDelay();
|
|
69840
69636
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: containerRef, children: [
|
|
69841
69637
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.body, children: [
|
|
@@ -69864,7 +69660,7 @@ const HowItWorks = ({ onContinue }) => {
|
|
|
69864
69660
|
) })
|
|
69865
69661
|
] });
|
|
69866
69662
|
};
|
|
69867
|
-
const getStyles$
|
|
69663
|
+
const getStyles$n = (tokens) => {
|
|
69868
69664
|
return {
|
|
69869
69665
|
body: {
|
|
69870
69666
|
display: "flex",
|
|
@@ -69909,7 +69705,7 @@ const PersonalInfoForm = ({ accountDetails, onContinue }) => {
|
|
|
69909
69705
|
initialFormValues
|
|
69910
69706
|
);
|
|
69911
69707
|
const tokens = useTokens();
|
|
69912
|
-
const styles = getStyles$
|
|
69708
|
+
const styles = getStyles$m(tokens);
|
|
69913
69709
|
const getNextDelay = getDelay();
|
|
69914
69710
|
useEffect(() => {
|
|
69915
69711
|
if (!isSubmitting) return () => {
|
|
@@ -69996,7 +69792,7 @@ const PersonalInfoForm = ({ accountDetails, onContinue }) => {
|
|
|
69996
69792
|
/* @__PURE__ */ jsxRuntimeExports.jsx(AriaLive, { level: "assertive", message: Object.values(errors).join(", ") })
|
|
69997
69793
|
] }) });
|
|
69998
69794
|
};
|
|
69999
|
-
const getStyles$
|
|
69795
|
+
const getStyles$m = (tokens) => ({
|
|
70000
69796
|
header: {
|
|
70001
69797
|
display: "flex",
|
|
70002
69798
|
flexDirection: "column"
|
|
@@ -70048,7 +69844,7 @@ const AccountInfo = (props) => {
|
|
|
70048
69844
|
initialForm
|
|
70049
69845
|
);
|
|
70050
69846
|
const tokens = useTokens();
|
|
70051
|
-
const styles = getStyles$
|
|
69847
|
+
const styles = getStyles$l(tokens);
|
|
70052
69848
|
const getNextDelay = getDelay();
|
|
70053
69849
|
function handleContinue() {
|
|
70054
69850
|
const newAccountDetails = {
|
|
@@ -70159,7 +69955,7 @@ const AccountInfo = (props) => {
|
|
|
70159
69955
|
] })
|
|
70160
69956
|
] });
|
|
70161
69957
|
};
|
|
70162
|
-
const getStyles$
|
|
69958
|
+
const getStyles$l = (tokens) => ({
|
|
70163
69959
|
header: {
|
|
70164
69960
|
display: "flex",
|
|
70165
69961
|
flexDirection: "column"
|
|
@@ -70210,7 +70006,7 @@ Edit.displayName = "Edit";
|
|
|
70210
70006
|
|
|
70211
70007
|
const DetailReviewItem = (props) => {
|
|
70212
70008
|
const tokens = useTokens();
|
|
70213
|
-
const styles = getStyles$
|
|
70009
|
+
const styles = getStyles$k(tokens);
|
|
70214
70010
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.infoRow, children: [
|
|
70215
70011
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.textGroup, children: [
|
|
70216
70012
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -70254,7 +70050,7 @@ const DetailReviewItem = (props) => {
|
|
|
70254
70050
|
)
|
|
70255
70051
|
] });
|
|
70256
70052
|
};
|
|
70257
|
-
const getStyles$
|
|
70053
|
+
const getStyles$k = (tokens) => ({
|
|
70258
70054
|
infoRow: {
|
|
70259
70055
|
alignItems: "center",
|
|
70260
70056
|
borderBottom: `1px solid ${tokens.Color.Neutral300}`,
|
|
@@ -70295,7 +70091,7 @@ const ConfirmDetails = (props) => {
|
|
|
70295
70091
|
const is_mobile_webview = useSelector(selectIsMobileWebView);
|
|
70296
70092
|
const user_guid = useSelector((state) => state.profiles.user.guid);
|
|
70297
70093
|
const tokens = useTokens();
|
|
70298
|
-
const styles = getStyles$
|
|
70094
|
+
const styles = getStyles$j(tokens);
|
|
70299
70095
|
const getNextDelay = getDelay();
|
|
70300
70096
|
const analyticFunctions = useContext(AnalyticContext);
|
|
70301
70097
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
@@ -70431,7 +70227,7 @@ const ConfirmDetails = (props) => {
|
|
|
70431
70227
|
] })
|
|
70432
70228
|
] });
|
|
70433
70229
|
};
|
|
70434
|
-
const getStyles$
|
|
70230
|
+
const getStyles$j = (tokens) => ({
|
|
70435
70231
|
header: {
|
|
70436
70232
|
display: "flex",
|
|
70437
70233
|
flexDirection: "column"
|
|
@@ -70477,7 +70273,7 @@ const ComeBack = ({ microdeposit, onDone }) => {
|
|
|
70477
70273
|
const containerRef = useRef(null);
|
|
70478
70274
|
useAnalyticsPath(...PageviewInfo.CONNECT_MICRODEPOSITS_COME_BACK);
|
|
70479
70275
|
const tokens = useTokens();
|
|
70480
|
-
const styles = getStyles$
|
|
70276
|
+
const styles = getStyles$i(tokens);
|
|
70481
70277
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
70482
70278
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: containerRef, children: [
|
|
70483
70279
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: 100, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "aria-hidden": true, "data-test": "svg-header", style: styles.svg, children: /* @__PURE__ */ jsxRuntimeExports.jsx(SvgComeBackGraphic, {}) }) }),
|
|
@@ -70515,7 +70311,7 @@ const ComeBack = ({ microdeposit, onDone }) => {
|
|
|
70515
70311
|
) })
|
|
70516
70312
|
] });
|
|
70517
70313
|
};
|
|
70518
|
-
const getStyles$
|
|
70314
|
+
const getStyles$i = (tokens) => ({
|
|
70519
70315
|
header: {
|
|
70520
70316
|
display: "flex",
|
|
70521
70317
|
flexDirection: "column"
|
|
@@ -70577,7 +70373,7 @@ const VerifyDeposits = ({ microdeposit, onSuccess }) => {
|
|
|
70577
70373
|
initialForm
|
|
70578
70374
|
);
|
|
70579
70375
|
const tokens = useTokens();
|
|
70580
|
-
const styles = getStyles$
|
|
70376
|
+
const styles = getStyles$h(tokens);
|
|
70581
70377
|
const [state, dispatch] = useReducer(reducer$3, { isSubmitting: false, submittingError: false });
|
|
70582
70378
|
useEffect(() => {
|
|
70583
70379
|
if (!state.isSubmitting) return () => {
|
|
@@ -70672,7 +70468,7 @@ const VerifyDeposits = ({ microdeposit, onSuccess }) => {
|
|
|
70672
70468
|
] })
|
|
70673
70469
|
] });
|
|
70674
70470
|
};
|
|
70675
|
-
const getStyles$
|
|
70471
|
+
const getStyles$h = (tokens) => ({
|
|
70676
70472
|
header: {
|
|
70677
70473
|
display: "flex",
|
|
70678
70474
|
flexDirection: "column"
|
|
@@ -70720,7 +70516,7 @@ const MicrodepositErrors = ({
|
|
|
70720
70516
|
const containerRef = useRef(null);
|
|
70721
70517
|
useAnalyticsPath(...PageviewInfo.CONNECT_MICRODEPOSITS_MICRODEPOSIT_ERRORS);
|
|
70722
70518
|
const tokens = useTokens();
|
|
70723
|
-
const styles = getStyles$
|
|
70519
|
+
const styles = getStyles$g(tokens);
|
|
70724
70520
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
70725
70521
|
const isErroredStatus = microdeposit?.status === MicrodepositsStatuses.ERRORED || microdepositCreateError?.status === 400;
|
|
70726
70522
|
const accountNumber = microdeposit?.account_number || microdepositCreateError?.data.micro_deposit.account_number || accountDetails?.account_number;
|
|
@@ -70794,7 +70590,7 @@ const MicrodepositErrors = ({
|
|
|
70794
70590
|
] })
|
|
70795
70591
|
] });
|
|
70796
70592
|
};
|
|
70797
|
-
const getStyles$
|
|
70593
|
+
const getStyles$g = (tokens) => ({
|
|
70798
70594
|
header: {
|
|
70799
70595
|
display: "flex",
|
|
70800
70596
|
flexDirection: "column"
|
|
@@ -70845,7 +70641,7 @@ const Verifying = ({ microdeposit, onError, onSuccess }) => {
|
|
|
70845
70641
|
useAnalyticsPath(...PageviewInfo.CONNECT_MICRODEPOSITS_VERIFYING);
|
|
70846
70642
|
const { api } = useApi();
|
|
70847
70643
|
const tokens = useTokens();
|
|
70848
|
-
const styles = getStyles$
|
|
70644
|
+
const styles = getStyles$f(tokens);
|
|
70849
70645
|
useEffect(() => {
|
|
70850
70646
|
const pollStatus = (originalMicrodeposit) => interval(3e3).pipe(
|
|
70851
70647
|
switchMap(() => defer(() => api.loadMicrodepositByGuid(microdeposit.guid))),
|
|
@@ -70896,7 +70692,7 @@ const Verifying = ({ microdeposit, onError, onSuccess }) => {
|
|
|
70896
70692
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.spinner, children: /* @__PURE__ */ jsxRuntimeExports.jsx(LoadingSpinner, {}) }) })
|
|
70897
70693
|
] });
|
|
70898
70694
|
};
|
|
70899
|
-
const getStyles$
|
|
70695
|
+
const getStyles$f = (tokens) => ({
|
|
70900
70696
|
header: {
|
|
70901
70697
|
display: "flex",
|
|
70902
70698
|
flexDirection: "column"
|
|
@@ -70923,7 +70719,7 @@ const Verified = ({ microdeposit, onDone }) => {
|
|
|
70923
70719
|
const containerRef = useRef(null);
|
|
70924
70720
|
useAnalyticsPath(...PageviewInfo.CONNECT_MICRODEPOSITS_VERIFIED);
|
|
70925
70721
|
const tokens = useTokens();
|
|
70926
|
-
const styles = getStyles$
|
|
70722
|
+
const styles = getStyles$e(tokens);
|
|
70927
70723
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
70928
70724
|
const is_mobile_webview = useSelector(selectIsMobileWebView);
|
|
70929
70725
|
const analyticFunctions = useContext(AnalyticContext);
|
|
@@ -70957,7 +70753,7 @@ const Verified = ({ microdeposit, onDone }) => {
|
|
|
70957
70753
|
) })
|
|
70958
70754
|
] });
|
|
70959
70755
|
};
|
|
70960
|
-
const getStyles$
|
|
70756
|
+
const getStyles$e = (tokens) => ({
|
|
70961
70757
|
container: {
|
|
70962
70758
|
position: "relative"
|
|
70963
70759
|
},
|
|
@@ -71358,7 +71154,7 @@ const VerifyExistingMember = (props) => {
|
|
|
71358
71154
|
institutionError: null
|
|
71359
71155
|
});
|
|
71360
71156
|
const tokens = useTokens();
|
|
71361
|
-
const styles = getStyles$
|
|
71157
|
+
const styles = getStyles$d(tokens);
|
|
71362
71158
|
const handleMemberClick = (selectedMember2) => {
|
|
71363
71159
|
setSelectedMember(selectedMember2);
|
|
71364
71160
|
setInstitution((state) => ({ ...state, isLoadingInstitution: true }));
|
|
@@ -71473,7 +71269,7 @@ const VerifyExistingMember = (props) => {
|
|
|
71473
71269
|
/* @__PURE__ */ jsxRuntimeExports.jsx(PrivateAndSecure, {})
|
|
71474
71270
|
] });
|
|
71475
71271
|
};
|
|
71476
|
-
const getStyles$
|
|
71272
|
+
const getStyles$d = (tokens) => {
|
|
71477
71273
|
return {
|
|
71478
71274
|
container: {
|
|
71479
71275
|
display: "flex",
|
|
@@ -71493,7 +71289,7 @@ VerifyExistingMember.displayName = "VerifyExistingMember";
|
|
|
71493
71289
|
const VerifyError = ({ error, onGoBack }) => {
|
|
71494
71290
|
const buttonText = __("Go back");
|
|
71495
71291
|
const tokens = useTokens();
|
|
71496
|
-
const styles = getStyles$
|
|
71292
|
+
const styles = getStyles$c(tokens);
|
|
71497
71293
|
const getNextDelay = getDelay();
|
|
71498
71294
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(React__default.Fragment, { children: [
|
|
71499
71295
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsx(ViewTitle, { title: __("Something went wrong") }) }),
|
|
@@ -71521,7 +71317,7 @@ function getErrorMessage(status = 500) {
|
|
|
71521
71317
|
return __("Oops! Something went wrong. Error code: %1", status);
|
|
71522
71318
|
}
|
|
71523
71319
|
}
|
|
71524
|
-
const getStyles$
|
|
71320
|
+
const getStyles$c = (tokens) => {
|
|
71525
71321
|
return {
|
|
71526
71322
|
header: {
|
|
71527
71323
|
fontSize: tokens.FontSize.H2,
|
|
@@ -71874,7 +71670,7 @@ const StyledAccountTypeIcon = ({
|
|
|
71874
71670
|
...props
|
|
71875
71671
|
}) => {
|
|
71876
71672
|
const tokens = useTokens();
|
|
71877
|
-
const styles = getStyles$
|
|
71673
|
+
const styles = getStyles$b(tokens, props.size, style);
|
|
71878
71674
|
const getIcon = () => {
|
|
71879
71675
|
switch (props.icon) {
|
|
71880
71676
|
case AccountTypes.CHECKING:
|
|
@@ -71909,7 +71705,7 @@ const StyledAccountTypeIcon = ({
|
|
|
71909
71705
|
};
|
|
71910
71706
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.wrapper, children: getIcon() });
|
|
71911
71707
|
};
|
|
71912
|
-
const getStyles$
|
|
71708
|
+
const getStyles$b = (tokens, size, style) => ({
|
|
71913
71709
|
wrapper: {
|
|
71914
71710
|
background: "linear-gradient(to top right, rgba(77, 214, 214, 0.35), rgba(143, 69, 229, 0.35)",
|
|
71915
71711
|
border: `1px solid rgba(18, 20, 23, 0.25)`,
|
|
@@ -71962,7 +71758,7 @@ const _range = /*@__PURE__*/getDefaultExportFromCjs(range_1);
|
|
|
71962
71758
|
const DayOfMonthPicker = React__default.forwardRef(
|
|
71963
71759
|
(props, ref) => {
|
|
71964
71760
|
const tokens = useTokens();
|
|
71965
|
-
const styles = getStyles$
|
|
71761
|
+
const styles = getStyles$a(tokens);
|
|
71966
71762
|
const getNextDelay = getDelay();
|
|
71967
71763
|
const days = _range(1, 32);
|
|
71968
71764
|
const containerRef = ref;
|
|
@@ -72017,7 +71813,7 @@ const DayOfMonthPicker = React__default.forwardRef(
|
|
|
72017
71813
|
] });
|
|
72018
71814
|
}
|
|
72019
71815
|
);
|
|
72020
|
-
const getStyles$
|
|
71816
|
+
const getStyles$a = (tokens) => ({
|
|
72021
71817
|
buttons: {
|
|
72022
71818
|
display: "flex",
|
|
72023
71819
|
flexWrap: "wrap",
|
|
@@ -72041,7 +71837,7 @@ const ManualAccountForm = React__default.forwardRef(
|
|
|
72041
71837
|
const [accountCreationError, setAccountCreationError] = useState(null);
|
|
72042
71838
|
const dispatch = useDispatch();
|
|
72043
71839
|
const tokens = useTokens();
|
|
72044
|
-
const styles = getStyles$
|
|
71840
|
+
const styles = getStyles$9(tokens);
|
|
72045
71841
|
const getNextDelay = getDelay();
|
|
72046
71842
|
const fields = getFormFields(props.accountType);
|
|
72047
71843
|
const formRef = ref;
|
|
@@ -72275,7 +72071,7 @@ const ManualAccountForm = React__default.forwardRef(
|
|
|
72275
72071
|
] });
|
|
72276
72072
|
}
|
|
72277
72073
|
);
|
|
72278
|
-
const getStyles$
|
|
72074
|
+
const getStyles$9 = (tokens) => ({
|
|
72279
72075
|
title: {
|
|
72280
72076
|
display: "flex",
|
|
72281
72077
|
marginBottom: tokens.Spacing.Large,
|
|
@@ -72311,7 +72107,7 @@ ManualAccountForm.displayName = "ManualAccountForm";
|
|
|
72311
72107
|
|
|
72312
72108
|
const ManualAccountMenu = React__default.forwardRef((props, ref) => {
|
|
72313
72109
|
const tokens = useTokens();
|
|
72314
|
-
const styles = getStyles$
|
|
72110
|
+
const styles = getStyles$8(tokens);
|
|
72315
72111
|
const getNextDelay = getDelay();
|
|
72316
72112
|
const typeList = props.availableAccountTypes?.length !== 0 ? props.availableAccountTypes : [
|
|
72317
72113
|
AccountTypes.CHECKING,
|
|
@@ -72388,7 +72184,7 @@ const ManualAccountMenu = React__default.forwardRef((props, ref) => {
|
|
|
72388
72184
|
)) })
|
|
72389
72185
|
] });
|
|
72390
72186
|
});
|
|
72391
|
-
const getStyles$
|
|
72187
|
+
const getStyles$8 = (tokens) => ({
|
|
72392
72188
|
title: {
|
|
72393
72189
|
marginBottom: tokens.Spacing.XSmall,
|
|
72394
72190
|
marginTop: tokens.Spacing.Large
|
|
@@ -72409,7 +72205,7 @@ const ManualAccountSuccess = (props) => {
|
|
|
72409
72205
|
useAnalyticsPath(...PageviewInfo.CONNECT_MANUAL_ACCOUNT_SUCCESS);
|
|
72410
72206
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
72411
72207
|
const tokens = useTokens();
|
|
72412
|
-
const styles = getStyles$
|
|
72208
|
+
const styles = getStyles$7(tokens);
|
|
72413
72209
|
const getNextDelay = getDelay();
|
|
72414
72210
|
const handleDone = () => fadeOut(containerRef.current, "up", 300).then(() => props.handleDone());
|
|
72415
72211
|
const manualAccountSuccessMessage = __(
|
|
@@ -72474,7 +72270,7 @@ const ManualAccountSuccess = (props) => {
|
|
|
72474
72270
|
/* @__PURE__ */ jsxRuntimeExports.jsx(AriaLive, { level: "assertive", message: manualAccountSuccessMessage, timeout: 100 })
|
|
72475
72271
|
] });
|
|
72476
72272
|
};
|
|
72477
|
-
const getStyles$
|
|
72273
|
+
const getStyles$7 = (tokens) => ({
|
|
72478
72274
|
container: {
|
|
72479
72275
|
textAlign: "center"
|
|
72480
72276
|
},
|
|
@@ -72659,7 +72455,7 @@ const RenderConnectStep = (props) => {
|
|
|
72659
72455
|
const { handleSelectInstitution } = useSelectInstitution();
|
|
72660
72456
|
const dispatch = useDispatch();
|
|
72661
72457
|
const tokens = useTokens();
|
|
72662
|
-
const styles = getStyles$
|
|
72458
|
+
const styles = getStyles$6(tokens, step);
|
|
72663
72459
|
const mode = connectConfig?.mode ?? AGG_MODE;
|
|
72664
72460
|
const isMicrodepositsEnabled = mode === VERIFY_MODE && // MDV is only enabled in verification
|
|
72665
72461
|
clientProfile.account_verification_is_enabled && // Client supports verification
|
|
@@ -72885,7 +72681,7 @@ RenderConnectStep.propTypes = {
|
|
|
72885
72681
|
setConnectLocalState: PropTypes$1.func.isRequired
|
|
72886
72682
|
};
|
|
72887
72683
|
RenderConnectStep.displayName = "RenderConnectStep";
|
|
72888
|
-
const getStyles$
|
|
72684
|
+
const getStyles$6 = (tokens, step) => {
|
|
72889
72685
|
return {
|
|
72890
72686
|
container: {
|
|
72891
72687
|
backgroundColor: tokens.BackgroundColor.Container,
|
|
@@ -74402,7 +74198,7 @@ const DeleteMemberSurvey = (props) => {
|
|
|
74402
74198
|
});
|
|
74403
74199
|
const [isSubmitted, setIsSubmitted] = useState(false);
|
|
74404
74200
|
const tokens = useTokens();
|
|
74405
|
-
const styles = getStyles$
|
|
74201
|
+
const styles = getStyles$5(tokens);
|
|
74406
74202
|
useEffect(() => {
|
|
74407
74203
|
if (deleteMemberState.loading === false) return () => {
|
|
74408
74204
|
};
|
|
@@ -74500,7 +74296,7 @@ const DeleteMemberSurvey = (props) => {
|
|
|
74500
74296
|
)
|
|
74501
74297
|
] }) }) }) });
|
|
74502
74298
|
};
|
|
74503
|
-
const getStyles$
|
|
74299
|
+
const getStyles$5 = (tokens) => ({
|
|
74504
74300
|
component: {
|
|
74505
74301
|
display: "block",
|
|
74506
74302
|
whiteSpace: "normal"
|
|
@@ -74582,7 +74378,7 @@ const NON_CONECTED_REASONS = [
|
|
|
74582
74378
|
const ConnectNavigationHeader = (props) => {
|
|
74583
74379
|
const goBackButtonContainerRef = useRef();
|
|
74584
74380
|
const tokens = useTokens();
|
|
74585
|
-
const styles = getStyles$
|
|
74381
|
+
const styles = getStyles$4(tokens);
|
|
74586
74382
|
const step = useSelector(
|
|
74587
74383
|
(state) => state.connect.location[state.connect.location.length - 1]?.step ?? STEPS.SEARCH
|
|
74588
74384
|
);
|
|
@@ -74614,7 +74410,7 @@ ConnectNavigationHeader.propTypes = {
|
|
|
74614
74410
|
connectGoBack: PropTypes$1.func.isRequired,
|
|
74615
74411
|
stepComponentRef: PropTypes$1.object
|
|
74616
74412
|
};
|
|
74617
|
-
const getStyles$
|
|
74413
|
+
const getStyles$4 = (tokens) => {
|
|
74618
74414
|
return {
|
|
74619
74415
|
container: {
|
|
74620
74416
|
display: "flex",
|
|
@@ -74638,6 +74434,61 @@ const getStyles$2 = (tokens) => {
|
|
|
74638
74434
|
};
|
|
74639
74435
|
};
|
|
74640
74436
|
|
|
74437
|
+
const Container = (props) => {
|
|
74438
|
+
const tokens = useTokens();
|
|
74439
|
+
const styles = getStyles$3(tokens, props.step);
|
|
74440
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-test": "container", style: styles.container, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: styles.content, children: props.children }) });
|
|
74441
|
+
};
|
|
74442
|
+
Container.propTypes = {
|
|
74443
|
+
step: PropTypes$1.string
|
|
74444
|
+
};
|
|
74445
|
+
const getStyles$3 = (tokens, step) => {
|
|
74446
|
+
return {
|
|
74447
|
+
container: {
|
|
74448
|
+
backgroundColor: tokens.BackgroundColor.Container,
|
|
74449
|
+
minHeight: "100%",
|
|
74450
|
+
maxHeight: step === STEPS.SEARCH ? "100%" : null,
|
|
74451
|
+
display: "flex",
|
|
74452
|
+
justifyContent: "center"
|
|
74453
|
+
},
|
|
74454
|
+
content: {
|
|
74455
|
+
maxWidth: "400px",
|
|
74456
|
+
// Our max content width (does not include side margin)
|
|
74457
|
+
minWidth: "270px",
|
|
74458
|
+
// Our min content width (does not include side margin)
|
|
74459
|
+
width: "100%",
|
|
74460
|
+
// We want this container to shrink and grow between our min-max
|
|
74461
|
+
margin: tokens.Spacing.Large
|
|
74462
|
+
}
|
|
74463
|
+
};
|
|
74464
|
+
};
|
|
74465
|
+
|
|
74466
|
+
const ConfigError = ({ error }) => {
|
|
74467
|
+
const tokens = useTokens();
|
|
74468
|
+
const styles = getStyles$2(tokens);
|
|
74469
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Container, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: styles.container, children: [
|
|
74470
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(AttentionFilled, { color: "#4D4D4D", size: 32, style: styles.errorIcon }),
|
|
74471
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { component: "h2", style: styles.errorTitle, truncate: false, variant: "H2", children: error.title }),
|
|
74472
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { component: "p", truncate: false, variant: "Paragraph", children: error.message })
|
|
74473
|
+
] }) });
|
|
74474
|
+
};
|
|
74475
|
+
const getStyles$2 = (tokens) => ({
|
|
74476
|
+
container: {
|
|
74477
|
+
display: "flex",
|
|
74478
|
+
flexDirection: "column",
|
|
74479
|
+
alignItems: "center",
|
|
74480
|
+
justifyCcontent: "center",
|
|
74481
|
+
marginTop: "36px",
|
|
74482
|
+
textAlign: "center"
|
|
74483
|
+
},
|
|
74484
|
+
errorTitle: {
|
|
74485
|
+
marginBottom: tokens.Spacing.Tiny
|
|
74486
|
+
},
|
|
74487
|
+
errorIcon: {
|
|
74488
|
+
marginBottom: tokens.Spacing.Large
|
|
74489
|
+
}
|
|
74490
|
+
});
|
|
74491
|
+
|
|
74641
74492
|
const getErrorResource = (err) => {
|
|
74642
74493
|
if (err.config?.url.includes("/institutions")) {
|
|
74643
74494
|
return "/institutions";
|
|
@@ -74670,23 +74521,39 @@ const useLoadConnect = () => {
|
|
|
74670
74521
|
request$ = of({ config });
|
|
74671
74522
|
}
|
|
74672
74523
|
const requestSubscription$ = request$.pipe(
|
|
74673
|
-
mergeMap(
|
|
74674
|
-
(
|
|
74675
|
-
|
|
74676
|
-
(
|
|
74677
|
-
members
|
|
74678
|
-
|
|
74679
|
-
|
|
74680
|
-
|
|
74681
|
-
|
|
74682
|
-
|
|
74683
|
-
|
|
74524
|
+
mergeMap((dependencies) => {
|
|
74525
|
+
if (clientSupportRequestedProducts(config, profiles.clientProfile)) {
|
|
74526
|
+
return from(api.loadMembers()).pipe(
|
|
74527
|
+
map(
|
|
74528
|
+
(members) => loadConnectSuccess$1({
|
|
74529
|
+
members,
|
|
74530
|
+
widgetProfile: profiles.widgetProfile,
|
|
74531
|
+
...dependencies
|
|
74532
|
+
})
|
|
74533
|
+
)
|
|
74534
|
+
);
|
|
74535
|
+
}
|
|
74536
|
+
return of(
|
|
74537
|
+
loadConnectError$1({
|
|
74538
|
+
title: __("Mode not enabled"),
|
|
74539
|
+
message: __(
|
|
74540
|
+
"This mode isn’t available in your current plan. Please contact your representative to explore options."
|
|
74541
|
+
),
|
|
74542
|
+
type: "config"
|
|
74543
|
+
})
|
|
74544
|
+
);
|
|
74545
|
+
}),
|
|
74684
74546
|
catchError((err) => {
|
|
74685
|
-
if (err instanceof
|
|
74547
|
+
if (err instanceof InstitutionConfigNotEnabled) {
|
|
74686
74548
|
return of(
|
|
74687
74549
|
loadConnectError$1({
|
|
74688
|
-
|
|
74689
|
-
|
|
74550
|
+
title: __("Feature not available"),
|
|
74551
|
+
message: __(
|
|
74552
|
+
"%1 does not offer this feature. Please contact your representative to explore options.",
|
|
74553
|
+
err.entity.name
|
|
74554
|
+
),
|
|
74555
|
+
resource: err.entity_type,
|
|
74556
|
+
type: "config"
|
|
74690
74557
|
})
|
|
74691
74558
|
);
|
|
74692
74559
|
} else {
|
|
@@ -74714,16 +74581,21 @@ const useLoadConnect = () => {
|
|
|
74714
74581
|
function loadConnectFromMemberConfig(config, api) {
|
|
74715
74582
|
return from(api.loadMemberByGuid(config.current_member_guid)).pipe(
|
|
74716
74583
|
mergeMap((member) => {
|
|
74717
|
-
if (config.mode === VERIFY_MODE && !member.verification_is_enabled) {
|
|
74718
|
-
throw new VerifyNotEnabled(member, "Loaded member does not support verification", "/member");
|
|
74719
|
-
}
|
|
74720
|
-
if (config.mode === VERIFY_MODE && member.connection_status === ReadableStatuses$1.CONNECTED) {
|
|
74721
|
-
return defer(() => api.loadInstitutionByGuid(member.institution_guid)).pipe(
|
|
74722
|
-
map((institution) => ({ member, institution, config }))
|
|
74723
|
-
);
|
|
74724
|
-
}
|
|
74725
74584
|
return defer(() => api.loadInstitutionByGuid(member.institution_guid)).pipe(
|
|
74726
|
-
map((institution) =>
|
|
74585
|
+
map((institution) => {
|
|
74586
|
+
if (instutionSupportRequestedProducts(config, institution)) {
|
|
74587
|
+
return {
|
|
74588
|
+
member,
|
|
74589
|
+
institution,
|
|
74590
|
+
config
|
|
74591
|
+
};
|
|
74592
|
+
}
|
|
74593
|
+
throw new InstitutionConfigNotEnabled(
|
|
74594
|
+
institution,
|
|
74595
|
+
"Loaded institution does not support verification",
|
|
74596
|
+
"/institution"
|
|
74597
|
+
);
|
|
74598
|
+
})
|
|
74727
74599
|
);
|
|
74728
74600
|
})
|
|
74729
74601
|
);
|
|
@@ -74732,14 +74604,17 @@ function loadConnectFromInstitutionConfig(config, api) {
|
|
|
74732
74604
|
const request$ = config.current_institution_guid ? from(api.loadInstitutionByGuid(config.current_institution_guid)) : from(api.loadInstitutionByCode(config.current_institution_code));
|
|
74733
74605
|
return request$.pipe(
|
|
74734
74606
|
map((institution) => {
|
|
74735
|
-
if (config
|
|
74736
|
-
|
|
74607
|
+
if (instutionSupportRequestedProducts(config, institution)) {
|
|
74608
|
+
return {
|
|
74737
74609
|
institution,
|
|
74738
|
-
|
|
74739
|
-
|
|
74740
|
-
);
|
|
74610
|
+
config
|
|
74611
|
+
};
|
|
74741
74612
|
}
|
|
74742
|
-
|
|
74613
|
+
throw new InstitutionConfigNotEnabled(
|
|
74614
|
+
institution,
|
|
74615
|
+
"Loaded institution does not support verification",
|
|
74616
|
+
"/institution"
|
|
74617
|
+
);
|
|
74743
74618
|
})
|
|
74744
74619
|
);
|
|
74745
74620
|
}
|
|
@@ -74748,12 +74623,28 @@ function loadConnectFromMicrodepositConfig(config, api) {
|
|
|
74748
74623
|
map((microdeposit) => ({ microdeposit, config }))
|
|
74749
74624
|
);
|
|
74750
74625
|
}
|
|
74751
|
-
|
|
74626
|
+
function clientSupportRequestedProducts(config, clientProfile) {
|
|
74627
|
+
const products = config?.data_request?.products;
|
|
74628
|
+
if (Array.isArray(products) && products.length > 0) {
|
|
74629
|
+
return products.every((product) => {
|
|
74630
|
+
switch (product) {
|
|
74631
|
+
case COMBO_JOB_DATA_TYPES.ACCOUNT_NUMBER:
|
|
74632
|
+
return clientProfile.account_verification_is_enabled;
|
|
74633
|
+
case COMBO_JOB_DATA_TYPES.ACCOUNT_OWNER:
|
|
74634
|
+
return clientProfile.account_identification_is_enabled;
|
|
74635
|
+
default:
|
|
74636
|
+
return true;
|
|
74637
|
+
}
|
|
74638
|
+
});
|
|
74639
|
+
}
|
|
74640
|
+
return true;
|
|
74641
|
+
}
|
|
74642
|
+
class InstitutionConfigNotEnabled extends Error {
|
|
74752
74643
|
entity;
|
|
74753
74644
|
entity_type;
|
|
74754
74645
|
constructor(entity, message, entity_type) {
|
|
74755
74646
|
super(message);
|
|
74756
|
-
this.name = "
|
|
74647
|
+
this.name = "InstitutionConfigNotEnabled";
|
|
74757
74648
|
this.message = message;
|
|
74758
74649
|
this.stack = new Error().stack;
|
|
74759
74650
|
this.entity = entity;
|
|
@@ -74766,7 +74657,7 @@ const AnalyticContext = createContext({
|
|
|
74766
74657
|
},
|
|
74767
74658
|
onAnalyticPageview: () => {
|
|
74768
74659
|
},
|
|
74769
|
-
onShowConnectSuccessSurvey:
|
|
74660
|
+
onShowConnectSuccessSurvey: void 0,
|
|
74770
74661
|
onSubmitConnectSuccessSurvey: () => {
|
|
74771
74662
|
}
|
|
74772
74663
|
});
|
|
@@ -74784,7 +74675,7 @@ const Connect$2 = ({
|
|
|
74784
74675
|
},
|
|
74785
74676
|
onAnalyticPageview = () => {
|
|
74786
74677
|
},
|
|
74787
|
-
onShowConnectSuccessSurvey =
|
|
74678
|
+
onShowConnectSuccessSurvey = void 0,
|
|
74788
74679
|
onSubmitConnectSuccessSurvey = () => {
|
|
74789
74680
|
},
|
|
74790
74681
|
...props
|
|
@@ -74794,12 +74685,6 @@ const Connect$2 = ({
|
|
|
74794
74685
|
const hasAtriumAPI = useSelector((state2) => state2.profiles.client.has_atrium_api);
|
|
74795
74686
|
const isLoading = useSelector((state2) => state2.connect.isComponentLoading);
|
|
74796
74687
|
const isMobileWebview = useSelector(selectIsMobileWebView);
|
|
74797
|
-
const isVerificationEnabled = useSelector(
|
|
74798
|
-
(state2) => state2.profiles.clientProfile.account_verification_is_enabled
|
|
74799
|
-
);
|
|
74800
|
-
const isTaxStatementIsEnabled = useSelector(
|
|
74801
|
-
(state2) => state2.profiles.clientProfile.tax_statement_is_enabled
|
|
74802
|
-
);
|
|
74803
74688
|
const step = useSelector(
|
|
74804
74689
|
(state2) => state2.connect.location[state2.connect.location.length - 1]?.step ?? STEPS.SEARCH
|
|
74805
74690
|
);
|
|
@@ -74818,10 +74703,10 @@ const Connect$2 = ({
|
|
|
74818
74703
|
const dispatch = useDispatch();
|
|
74819
74704
|
useEffect(() => {
|
|
74820
74705
|
const [name, path] = PageviewInfo.CONNECT;
|
|
74821
|
-
const
|
|
74822
|
-
dispatch(addAnalyticPath({ name, path: `${path}/${
|
|
74706
|
+
const mode = props.clientConfig.mode;
|
|
74707
|
+
dispatch(addAnalyticPath({ name, path: `${path}/${mode}` }));
|
|
74823
74708
|
return () => {
|
|
74824
|
-
dispatch(removeAnalyticPath(`${PageviewInfo.CONNECT[1]}/${
|
|
74709
|
+
dispatch(removeAnalyticPath(`${PageviewInfo.CONNECT[1]}/${mode}`));
|
|
74825
74710
|
};
|
|
74826
74711
|
}, []);
|
|
74827
74712
|
useEffect(() => {
|
|
@@ -74922,19 +74807,13 @@ const Connect$2 = ({
|
|
|
74922
74807
|
const _handleStepDOMChange = useCallback((ref) => {
|
|
74923
74808
|
setState((prevState) => ({ ...prevState, stepComponentRef: ref }));
|
|
74924
74809
|
}, []);
|
|
74925
|
-
const mode = connectConfig?.mode ?? AGG_MODE;
|
|
74926
|
-
const IS_IN_TAX_MODE = mode === TAX_MODE;
|
|
74927
|
-
const IS_IN_VERIFY_MODE = mode === VERIFY_MODE;
|
|
74928
|
-
const invalidTaxMode = IS_IN_TAX_MODE && !isTaxStatementIsEnabled;
|
|
74929
|
-
const invalidVerifyMode = IS_IN_VERIFY_MODE && !isVerificationEnabled;
|
|
74930
|
-
if (invalidVerifyMode || invalidTaxMode) {
|
|
74931
|
-
const title = IS_IN_TAX_MODE ? __("Oops! Tax statements must be enabled to use this feature.") : __("Oops! Verification must be enabled to use this feature.");
|
|
74932
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(GenericError, { onAnalyticPageview, title });
|
|
74933
|
-
}
|
|
74934
74810
|
if (isLoading) {
|
|
74935
74811
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(LoadingSpinner, { showText: true });
|
|
74936
74812
|
}
|
|
74937
74813
|
if (loadError) {
|
|
74814
|
+
if (loadError.type === "config") {
|
|
74815
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(ConfigError, { error: loadError });
|
|
74816
|
+
}
|
|
74938
74817
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
74939
74818
|
GenericError,
|
|
74940
74819
|
{
|
|
@@ -75425,6 +75304,11 @@ const frCa = {
|
|
|
75425
75304
|
"Please select an option before continuing.": "Veuillez sélectionner une option avant de continuer.",
|
|
75426
75305
|
"Send feedback": "Envoyer des commentaires",
|
|
75427
75306
|
"Give feedback": "Donnez votre avis",
|
|
75307
|
+
"Disconnect institution": "Déconnecter l'institution",
|
|
75308
|
+
"Mode not enabled": "Mode non activé",
|
|
75309
|
+
"This mode isn’t available in your current plan. Please contact your representative to explore options.": "Ce mode n'est pas disponible avec votre forfait actuel. Veuillez contacter votre représentant pour explorer les options.",
|
|
75310
|
+
"Feature not available": "Fonctionnalité non disponible",
|
|
75311
|
+
"%1 does not offer this feature. Please contact your representative to explore options.": "%1 n'offre pas cette fonctionnalité. Veuillez contacter votre représentant pour explorer les options.",
|
|
75428
75312
|
"connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "En cliquant sur Continuer, vous acceptez la ",
|
|
75429
75313
|
"connect/disclosure/policy/link\u0004MX Privacy Policy.": "Politique de confidentialité de MX.",
|
|
75430
75314
|
"connect/disclosure/policy/link\u0004MX Privacy Policy": "Politique de confidentialité de MX.",
|
|
@@ -75851,6 +75735,11 @@ const es = {
|
|
|
75851
75735
|
"Please select an option before continuing.": "Seleccione una opción antes de continuar.",
|
|
75852
75736
|
"Send feedback": "Enviar comentarios",
|
|
75853
75737
|
"Give feedback": "Dar retroalimentación",
|
|
75738
|
+
"Disconnect institution": "Desconectar institución",
|
|
75739
|
+
"Mode not enabled": "Modo no habilitado",
|
|
75740
|
+
"This mode isn’t available in your current plan. Please contact your representative to explore options.": "Este modo no está disponible en tu plan actual. Contacte a su representante para explorar las opciones.",
|
|
75741
|
+
"Feature not available": "Característica no disponible",
|
|
75742
|
+
"%1 does not offer this feature. Please contact your representative to explore options.": "%1 no ofrece esta función. Contacte a su representante para explorar las opciones.",
|
|
75854
75743
|
"connect/disclosure/button\u0004Continue": "Continuar",
|
|
75855
75744
|
"connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "Al hacer clic en Continuar, tu aceptas la ",
|
|
75856
75745
|
"connect/disclosure/policy/link\u0004MX Privacy Policy.": "Política de privacidad de Money Experience.",
|