%PDF- %PDF-
Direktori : /home/emergentqj/actioncivile/pre-auth/.8352c036a19b0051d0217d27d25e3f4a/static/node_modules/@mui/system/esm/ |
Current File : /home/emergentqj/actioncivile/pre-auth/.8352c036a19b0051d0217d27d25e3f4a/static/node_modules/@mui/system/esm/createStyled.js |
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; import _extends from "@babel/runtime/helpers/esm/extends"; const _excluded = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"]; /* eslint-disable no-underscore-dangle */ import styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine'; import { getDisplayName } from '@mui/utils'; import createTheme from './createTheme'; import propsToClassKey from './propsToClassKey'; import styleFunctionSx from './styleFunctionSx'; function isEmpty(obj) { return Object.keys(obj).length === 0; } // https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40 function isStringTag(tag) { return typeof tag === 'string' && // 96 is one less than the char code // for "a" so this is checking that // it's a lowercase character tag.charCodeAt(0) > 96; } const getStyleOverrides = (name, theme) => { if (theme.components && theme.components[name] && theme.components[name].styleOverrides) { return theme.components[name].styleOverrides; } return null; }; const getVariantStyles = (name, theme) => { let variants = []; if (theme && theme.components && theme.components[name] && theme.components[name].variants) { variants = theme.components[name].variants; } const variantsStyles = {}; variants.forEach(definition => { const key = propsToClassKey(definition.props); variantsStyles[key] = definition.style; }); return variantsStyles; }; const variantsResolver = (props, styles, theme, name) => { var _theme$components, _theme$components$nam; const { ownerState = {} } = props; const variantsStyles = []; const themeVariants = theme == null ? void 0 : (_theme$components = theme.components) == null ? void 0 : (_theme$components$nam = _theme$components[name]) == null ? void 0 : _theme$components$nam.variants; if (themeVariants) { themeVariants.forEach(themeVariant => { let isMatch = true; Object.keys(themeVariant.props).forEach(key => { if (ownerState[key] !== themeVariant.props[key] && props[key] !== themeVariant.props[key]) { isMatch = false; } }); if (isMatch) { variantsStyles.push(styles[propsToClassKey(themeVariant.props)]); } }); } return variantsStyles; }; // Update /system/styled/#api in case if this changes export function shouldForwardProp(prop) { return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as'; } export const systemDefaultTheme = createTheme(); const lowercaseFirstLetter = string => { return string.charAt(0).toLowerCase() + string.slice(1); }; function resolveTheme({ defaultTheme, theme, themeId }) { return isEmpty(theme) ? defaultTheme : theme[themeId] || theme; } export default function createStyled(input = {}) { const { themeId, defaultTheme = systemDefaultTheme, rootShouldForwardProp = shouldForwardProp, slotShouldForwardProp = shouldForwardProp } = input; const systemSx = props => { return styleFunctionSx(_extends({}, props, { theme: resolveTheme(_extends({}, props, { defaultTheme, themeId })) })); }; systemSx.__mui_systemSx = true; return (tag, inputOptions = {}) => { // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components. processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx))); const { name: componentName, slot: componentSlot, skipVariantsResolver: inputSkipVariantsResolver, skipSx: inputSkipSx, overridesResolver } = inputOptions, options = _objectWithoutPropertiesLoose(inputOptions, _excluded); // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots. const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver : componentSlot && componentSlot !== 'Root' || false; const skipSx = inputSkipSx || false; let label; if (process.env.NODE_ENV !== 'production') { if (componentName) { label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`; } } let shouldForwardPropOption = shouldForwardProp; if (componentSlot === 'Root') { shouldForwardPropOption = rootShouldForwardProp; } else if (componentSlot) { // any other slot specified shouldForwardPropOption = slotShouldForwardProp; } else if (isStringTag(tag)) { // for string (html) tag, preserve the behavior in emotion & styled-components. shouldForwardPropOption = undefined; } const defaultStyledResolver = styledEngineStyled(tag, _extends({ shouldForwardProp: shouldForwardPropOption, label }, options)); const muiStyledResolver = (styleArg, ...expressions) => { const expressionsWithDefaultTheme = expressions ? expressions.map(stylesArg => { // On the server Emotion doesn't use React.forwardRef for creating components, so the created // component stays as a function. This condition makes sure that we do not interpolate functions // which are basically components used as a selectors. return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? props => { return stylesArg(_extends({}, props, { theme: resolveTheme(_extends({}, props, { defaultTheme, themeId })) })); } : stylesArg; }) : []; let transformedStyleArg = styleArg; if (componentName && overridesResolver) { expressionsWithDefaultTheme.push(props => { const theme = resolveTheme(_extends({}, props, { defaultTheme, themeId })); const styleOverrides = getStyleOverrides(componentName, theme); if (styleOverrides) { const resolvedStyleOverrides = {}; Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => { resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, { theme })) : slotStyle; }); return overridesResolver(props, resolvedStyleOverrides); } return null; }); } if (componentName && !skipVariantsResolver) { expressionsWithDefaultTheme.push(props => { const theme = resolveTheme(_extends({}, props, { defaultTheme, themeId })); return variantsResolver(props, getVariantStyles(componentName, theme), theme, componentName); }); } if (!skipSx) { expressionsWithDefaultTheme.push(systemSx); } const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length; if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) { const placeholders = new Array(numOfCustomFnsApplied).fill(''); // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles. transformedStyleArg = [...styleArg, ...placeholders]; transformedStyleArg.raw = [...styleArg.raw, ...placeholders]; } else if (typeof styleArg === 'function' && // On the server Emotion doesn't use React.forwardRef for creating components, so the created // component stays as a function. This condition makes sure that we do not interpolate functions // which are basically components used as a selectors. styleArg.__emotion_real !== styleArg) { // If the type is function, we need to define the default theme. transformedStyleArg = props => styleArg(_extends({}, props, { theme: resolveTheme(_extends({}, props, { defaultTheme, themeId })) })); } const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme); if (process.env.NODE_ENV !== 'production') { let displayName; if (componentName) { displayName = `${componentName}${componentSlot || ''}`; } if (displayName === undefined) { displayName = `Styled(${getDisplayName(tag)})`; } Component.displayName = displayName; } if (tag.muiName) { Component.muiName = tag.muiName; } return Component; }; if (defaultStyledResolver.withConfig) { muiStyledResolver.withConfig = defaultStyledResolver.withConfig; } return muiStyledResolver; }; }