mirror of
https://github.com/idanoo/GoScrobble
synced 2025-07-01 21:52:19 +00:00
0.2.0 - Mid migration
This commit is contained in:
parent
139e6a915e
commit
7e38fdbd7d
42393 changed files with 5358157 additions and 62 deletions
113
web/node_modules/@material-ui/core/ButtonBase/ButtonBase.d.ts
generated
vendored
Normal file
113
web/node_modules/@material-ui/core/ButtonBase/ButtonBase.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,113 @@
|
|||
import * as React from 'react';
|
||||
import { TouchRippleProps } from './TouchRipple';
|
||||
import { OverrideProps, OverridableComponent, OverridableTypeMap } from '../OverridableComponent';
|
||||
|
||||
export interface ButtonBaseTypeMap<P = {}, D extends React.ElementType = 'button'> {
|
||||
props: P & {
|
||||
/**
|
||||
* A ref for imperative actions.
|
||||
* It currently only supports `focusVisible()` action.
|
||||
*/
|
||||
action?: React.Ref<ButtonBaseActions>;
|
||||
/**
|
||||
* @ignore
|
||||
*
|
||||
* Use that prop to pass a ref to the native button component.
|
||||
* @deprecated Use `ref` instead.
|
||||
*/
|
||||
buttonRef?: React.Ref<unknown>;
|
||||
/**
|
||||
* If `true`, the ripples will be centered.
|
||||
* They won't start at the cursor interaction position.
|
||||
*/
|
||||
centerRipple?: boolean;
|
||||
/**
|
||||
* The content of the component.
|
||||
*/
|
||||
children?: React.ReactNode;
|
||||
/**
|
||||
* If `true`, the base button will be disabled.
|
||||
*/
|
||||
disabled?: boolean;
|
||||
/**
|
||||
* If `true`, the ripple effect will be disabled.
|
||||
*
|
||||
* ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
|
||||
* to highlight the element by applying separate styles with the `focusVisibleClassName`.
|
||||
*/
|
||||
disableRipple?: boolean;
|
||||
/**
|
||||
* If `true`, the touch ripple effect will be disabled.
|
||||
*/
|
||||
disableTouchRipple?: boolean;
|
||||
/**
|
||||
* If `true`, the base button will have a keyboard focus ripple.
|
||||
*/
|
||||
focusRipple?: boolean;
|
||||
/**
|
||||
* This prop can help identify which element has keyboard focus.
|
||||
* The class name will be applied when the element gains the focus through keyboard interaction.
|
||||
* It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
|
||||
* The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/master/explainer.md).
|
||||
* A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
|
||||
* if needed.
|
||||
*/
|
||||
focusVisibleClassName?: string;
|
||||
/**
|
||||
* Callback fired when the component is focused with a keyboard.
|
||||
* We trigger a `onFocus` callback too.
|
||||
*/
|
||||
onFocusVisible?: React.FocusEventHandler<any>;
|
||||
// @types/react is stricter
|
||||
tabIndex?: string | number;
|
||||
/**
|
||||
* Props applied to the `TouchRipple` element.
|
||||
*/
|
||||
TouchRippleProps?: Partial<TouchRippleProps>;
|
||||
};
|
||||
defaultComponent: D;
|
||||
classKey: ButtonBaseClassKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* utility to create component types that inherit props from ButtonBase.
|
||||
* This component has an additional overload if the `href` prop is set which
|
||||
* can make extension quite tricky
|
||||
*/
|
||||
export interface ExtendButtonBaseTypeMap<M extends OverridableTypeMap> {
|
||||
props: M['props'] & ButtonBaseTypeMap['props'];
|
||||
defaultComponent: M['defaultComponent'];
|
||||
classKey: M['classKey'];
|
||||
}
|
||||
|
||||
export type ExtendButtonBase<M extends OverridableTypeMap> = ((
|
||||
props: { href: string } & OverrideProps<ExtendButtonBaseTypeMap<M>, 'a'>
|
||||
) => JSX.Element) &
|
||||
OverridableComponent<ExtendButtonBaseTypeMap<M>>;
|
||||
|
||||
/**
|
||||
* `ButtonBase` contains as few styles as possible.
|
||||
* It aims to be a simple building block for creating a button.
|
||||
* It contains a load of style reset and some focus/ripple logic.
|
||||
* Demos:
|
||||
*
|
||||
* - [Buttons](https://material-ui.com/components/buttons/)
|
||||
*
|
||||
* API:
|
||||
*
|
||||
* - [ButtonBase API](https://material-ui.com/api/button-base/)
|
||||
*/
|
||||
declare const ButtonBase: ExtendButtonBase<ButtonBaseTypeMap>;
|
||||
|
||||
export type ButtonBaseProps<
|
||||
D extends React.ElementType = ButtonBaseTypeMap['defaultComponent'],
|
||||
P = {}
|
||||
> = OverrideProps<ButtonBaseTypeMap<P, D>, D>;
|
||||
|
||||
export type ButtonBaseClassKey = 'root' | 'disabled' | 'focusVisible';
|
||||
|
||||
export interface ButtonBaseActions {
|
||||
focusVisible(): void;
|
||||
}
|
||||
|
||||
export default ButtonBase;
|
523
web/node_modules/@material-ui/core/ButtonBase/ButtonBase.js
generated
vendored
Normal file
523
web/node_modules/@material-ui/core/ButtonBase/ButtonBase.js
generated
vendored
Normal file
|
@ -0,0 +1,523 @@
|
|||
"use strict";
|
||||
|
||||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = exports.styles = void 0;
|
||||
|
||||
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
||||
|
||||
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
||||
|
||||
var React = _interopRequireWildcard(require("react"));
|
||||
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
|
||||
var ReactDOM = _interopRequireWildcard(require("react-dom"));
|
||||
|
||||
var _clsx = _interopRequireDefault(require("clsx"));
|
||||
|
||||
var _utils = require("@material-ui/utils");
|
||||
|
||||
var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
|
||||
|
||||
var _useEventCallback = _interopRequireDefault(require("../utils/useEventCallback"));
|
||||
|
||||
var _deprecatedPropType = _interopRequireDefault(require("../utils/deprecatedPropType"));
|
||||
|
||||
var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
|
||||
|
||||
var _useIsFocusVisible2 = _interopRequireDefault(require("../utils/useIsFocusVisible"));
|
||||
|
||||
var _TouchRipple = _interopRequireDefault(require("./TouchRipple"));
|
||||
|
||||
var styles = {
|
||||
/* Styles applied to the root element. */
|
||||
root: {
|
||||
display: 'inline-flex',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
position: 'relative',
|
||||
WebkitTapHighlightColor: 'transparent',
|
||||
backgroundColor: 'transparent',
|
||||
// Reset default value
|
||||
// We disable the focus ring for mouse, touch and keyboard users.
|
||||
outline: 0,
|
||||
border: 0,
|
||||
margin: 0,
|
||||
// Remove the margin in Safari
|
||||
borderRadius: 0,
|
||||
padding: 0,
|
||||
// Remove the padding in Firefox
|
||||
cursor: 'pointer',
|
||||
userSelect: 'none',
|
||||
verticalAlign: 'middle',
|
||||
'-moz-appearance': 'none',
|
||||
// Reset
|
||||
'-webkit-appearance': 'none',
|
||||
// Reset
|
||||
textDecoration: 'none',
|
||||
// So we take precedent over the style of a native <a /> element.
|
||||
color: 'inherit',
|
||||
'&::-moz-focus-inner': {
|
||||
borderStyle: 'none' // Remove Firefox dotted outline.
|
||||
|
||||
},
|
||||
'&$disabled': {
|
||||
pointerEvents: 'none',
|
||||
// Disable link interactions
|
||||
cursor: 'default'
|
||||
},
|
||||
'@media print': {
|
||||
colorAdjust: 'exact'
|
||||
}
|
||||
},
|
||||
|
||||
/* Pseudo-class applied to the root element if `disabled={true}`. */
|
||||
disabled: {},
|
||||
|
||||
/* Pseudo-class applied to the root element if keyboard focused. */
|
||||
focusVisible: {}
|
||||
};
|
||||
/**
|
||||
* `ButtonBase` contains as few styles as possible.
|
||||
* It aims to be a simple building block for creating a button.
|
||||
* It contains a load of style reset and some focus/ripple logic.
|
||||
*/
|
||||
|
||||
exports.styles = styles;
|
||||
var ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(props, ref) {
|
||||
var action = props.action,
|
||||
buttonRefProp = props.buttonRef,
|
||||
_props$centerRipple = props.centerRipple,
|
||||
centerRipple = _props$centerRipple === void 0 ? false : _props$centerRipple,
|
||||
children = props.children,
|
||||
classes = props.classes,
|
||||
className = props.className,
|
||||
_props$component = props.component,
|
||||
component = _props$component === void 0 ? 'button' : _props$component,
|
||||
_props$disabled = props.disabled,
|
||||
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
||||
_props$disableRipple = props.disableRipple,
|
||||
disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,
|
||||
_props$disableTouchRi = props.disableTouchRipple,
|
||||
disableTouchRipple = _props$disableTouchRi === void 0 ? false : _props$disableTouchRi,
|
||||
_props$focusRipple = props.focusRipple,
|
||||
focusRipple = _props$focusRipple === void 0 ? false : _props$focusRipple,
|
||||
focusVisibleClassName = props.focusVisibleClassName,
|
||||
onBlur = props.onBlur,
|
||||
onClick = props.onClick,
|
||||
onFocus = props.onFocus,
|
||||
onFocusVisible = props.onFocusVisible,
|
||||
onKeyDown = props.onKeyDown,
|
||||
onKeyUp = props.onKeyUp,
|
||||
onMouseDown = props.onMouseDown,
|
||||
onMouseLeave = props.onMouseLeave,
|
||||
onMouseUp = props.onMouseUp,
|
||||
onTouchEnd = props.onTouchEnd,
|
||||
onTouchMove = props.onTouchMove,
|
||||
onTouchStart = props.onTouchStart,
|
||||
onDragLeave = props.onDragLeave,
|
||||
_props$tabIndex = props.tabIndex,
|
||||
tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,
|
||||
TouchRippleProps = props.TouchRippleProps,
|
||||
_props$type = props.type,
|
||||
type = _props$type === void 0 ? 'button' : _props$type,
|
||||
other = (0, _objectWithoutProperties2.default)(props, ["action", "buttonRef", "centerRipple", "children", "classes", "className", "component", "disabled", "disableRipple", "disableTouchRipple", "focusRipple", "focusVisibleClassName", "onBlur", "onClick", "onFocus", "onFocusVisible", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseLeave", "onMouseUp", "onTouchEnd", "onTouchMove", "onTouchStart", "onDragLeave", "tabIndex", "TouchRippleProps", "type"]);
|
||||
var buttonRef = React.useRef(null);
|
||||
|
||||
function getButtonNode() {
|
||||
// #StrictMode ready
|
||||
return ReactDOM.findDOMNode(buttonRef.current);
|
||||
}
|
||||
|
||||
var rippleRef = React.useRef(null);
|
||||
|
||||
var _React$useState = React.useState(false),
|
||||
focusVisible = _React$useState[0],
|
||||
setFocusVisible = _React$useState[1];
|
||||
|
||||
if (disabled && focusVisible) {
|
||||
setFocusVisible(false);
|
||||
}
|
||||
|
||||
var _useIsFocusVisible = (0, _useIsFocusVisible2.default)(),
|
||||
isFocusVisible = _useIsFocusVisible.isFocusVisible,
|
||||
onBlurVisible = _useIsFocusVisible.onBlurVisible,
|
||||
focusVisibleRef = _useIsFocusVisible.ref;
|
||||
|
||||
React.useImperativeHandle(action, function () {
|
||||
return {
|
||||
focusVisible: function focusVisible() {
|
||||
setFocusVisible(true);
|
||||
buttonRef.current.focus();
|
||||
}
|
||||
};
|
||||
}, []);
|
||||
React.useEffect(function () {
|
||||
if (focusVisible && focusRipple && !disableRipple) {
|
||||
rippleRef.current.pulsate();
|
||||
}
|
||||
}, [disableRipple, focusRipple, focusVisible]);
|
||||
|
||||
function useRippleHandler(rippleAction, eventCallback) {
|
||||
var skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;
|
||||
return (0, _useEventCallback.default)(function (event) {
|
||||
if (eventCallback) {
|
||||
eventCallback(event);
|
||||
}
|
||||
|
||||
var ignore = skipRippleAction;
|
||||
|
||||
if (!ignore && rippleRef.current) {
|
||||
rippleRef.current[rippleAction](event);
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
var handleMouseDown = useRippleHandler('start', onMouseDown);
|
||||
var handleDragLeave = useRippleHandler('stop', onDragLeave);
|
||||
var handleMouseUp = useRippleHandler('stop', onMouseUp);
|
||||
var handleMouseLeave = useRippleHandler('stop', function (event) {
|
||||
if (focusVisible) {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
if (onMouseLeave) {
|
||||
onMouseLeave(event);
|
||||
}
|
||||
});
|
||||
var handleTouchStart = useRippleHandler('start', onTouchStart);
|
||||
var handleTouchEnd = useRippleHandler('stop', onTouchEnd);
|
||||
var handleTouchMove = useRippleHandler('stop', onTouchMove);
|
||||
var handleBlur = useRippleHandler('stop', function (event) {
|
||||
if (focusVisible) {
|
||||
onBlurVisible(event);
|
||||
setFocusVisible(false);
|
||||
}
|
||||
|
||||
if (onBlur) {
|
||||
onBlur(event);
|
||||
}
|
||||
}, false);
|
||||
var handleFocus = (0, _useEventCallback.default)(function (event) {
|
||||
// Fix for https://github.com/facebook/react/issues/7769
|
||||
if (!buttonRef.current) {
|
||||
buttonRef.current = event.currentTarget;
|
||||
}
|
||||
|
||||
if (isFocusVisible(event)) {
|
||||
setFocusVisible(true);
|
||||
|
||||
if (onFocusVisible) {
|
||||
onFocusVisible(event);
|
||||
}
|
||||
}
|
||||
|
||||
if (onFocus) {
|
||||
onFocus(event);
|
||||
}
|
||||
});
|
||||
|
||||
var isNonNativeButton = function isNonNativeButton() {
|
||||
var button = getButtonNode();
|
||||
return component && component !== 'button' && !(button.tagName === 'A' && button.href);
|
||||
};
|
||||
/**
|
||||
* IE 11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat
|
||||
*/
|
||||
|
||||
|
||||
var keydownRef = React.useRef(false);
|
||||
var handleKeyDown = (0, _useEventCallback.default)(function (event) {
|
||||
// Check if key is already down to avoid repeats being counted as multiple activations
|
||||
if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {
|
||||
keydownRef.current = true;
|
||||
event.persist();
|
||||
rippleRef.current.stop(event, function () {
|
||||
rippleRef.current.start(event);
|
||||
});
|
||||
}
|
||||
|
||||
if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
if (onKeyDown) {
|
||||
onKeyDown(event);
|
||||
} // Keyboard accessibility for non interactive elements
|
||||
|
||||
|
||||
if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {
|
||||
event.preventDefault();
|
||||
|
||||
if (onClick) {
|
||||
onClick(event);
|
||||
}
|
||||
}
|
||||
});
|
||||
var handleKeyUp = (0, _useEventCallback.default)(function (event) {
|
||||
// calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed
|
||||
// https://codesandbox.io/s/button-keyup-preventdefault-dn7f0
|
||||
if (focusRipple && event.key === ' ' && rippleRef.current && focusVisible && !event.defaultPrevented) {
|
||||
keydownRef.current = false;
|
||||
event.persist();
|
||||
rippleRef.current.stop(event, function () {
|
||||
rippleRef.current.pulsate(event);
|
||||
});
|
||||
}
|
||||
|
||||
if (onKeyUp) {
|
||||
onKeyUp(event);
|
||||
} // Keyboard accessibility for non interactive elements
|
||||
|
||||
|
||||
if (onClick && event.target === event.currentTarget && isNonNativeButton() && event.key === ' ' && !event.defaultPrevented) {
|
||||
onClick(event);
|
||||
}
|
||||
});
|
||||
var ComponentProp = component;
|
||||
|
||||
if (ComponentProp === 'button' && other.href) {
|
||||
ComponentProp = 'a';
|
||||
}
|
||||
|
||||
var buttonProps = {};
|
||||
|
||||
if (ComponentProp === 'button') {
|
||||
buttonProps.type = type;
|
||||
buttonProps.disabled = disabled;
|
||||
} else {
|
||||
if (ComponentProp !== 'a' || !other.href) {
|
||||
buttonProps.role = 'button';
|
||||
}
|
||||
|
||||
buttonProps['aria-disabled'] = disabled;
|
||||
}
|
||||
|
||||
var handleUserRef = (0, _useForkRef.default)(buttonRefProp, ref);
|
||||
var handleOwnRef = (0, _useForkRef.default)(focusVisibleRef, buttonRef);
|
||||
var handleRef = (0, _useForkRef.default)(handleUserRef, handleOwnRef);
|
||||
|
||||
var _React$useState2 = React.useState(false),
|
||||
mountedState = _React$useState2[0],
|
||||
setMountedState = _React$useState2[1];
|
||||
|
||||
React.useEffect(function () {
|
||||
setMountedState(true);
|
||||
}, []);
|
||||
var enableTouchRipple = mountedState && !disableRipple && !disabled;
|
||||
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
// eslint-disable-next-line react-hooks/rules-of-hooks
|
||||
React.useEffect(function () {
|
||||
if (enableTouchRipple && !rippleRef.current) {
|
||||
console.error(['Material-UI: The `component` prop provided to ButtonBase is invalid.', 'Please make sure the children prop is rendered in this custom component.'].join('\n'));
|
||||
}
|
||||
}, [enableTouchRipple]);
|
||||
}
|
||||
|
||||
return /*#__PURE__*/React.createElement(ComponentProp, (0, _extends2.default)({
|
||||
className: (0, _clsx.default)(classes.root, className, focusVisible && [classes.focusVisible, focusVisibleClassName], disabled && classes.disabled),
|
||||
onBlur: handleBlur,
|
||||
onClick: onClick,
|
||||
onFocus: handleFocus,
|
||||
onKeyDown: handleKeyDown,
|
||||
onKeyUp: handleKeyUp,
|
||||
onMouseDown: handleMouseDown,
|
||||
onMouseLeave: handleMouseLeave,
|
||||
onMouseUp: handleMouseUp,
|
||||
onDragLeave: handleDragLeave,
|
||||
onTouchEnd: handleTouchEnd,
|
||||
onTouchMove: handleTouchMove,
|
||||
onTouchStart: handleTouchStart,
|
||||
ref: handleRef,
|
||||
tabIndex: disabled ? -1 : tabIndex
|
||||
}, buttonProps, other), children, enableTouchRipple ?
|
||||
/*#__PURE__*/
|
||||
|
||||
/* TouchRipple is only needed client-side, x2 boost on the server. */
|
||||
React.createElement(_TouchRipple.default, (0, _extends2.default)({
|
||||
ref: rippleRef,
|
||||
center: centerRipple
|
||||
}, TouchRippleProps)) : null);
|
||||
});
|
||||
process.env.NODE_ENV !== "production" ? ButtonBase.propTypes = {
|
||||
// ----------------------------- Warning --------------------------------
|
||||
// | These PropTypes are generated from the TypeScript type definitions |
|
||||
// | To update them edit the d.ts file and run "yarn proptypes" |
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* A ref for imperative actions.
|
||||
* It currently only supports `focusVisible()` action.
|
||||
*/
|
||||
action: _utils.refType,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*
|
||||
* Use that prop to pass a ref to the native button component.
|
||||
* @deprecated Use `ref` instead.
|
||||
*/
|
||||
buttonRef: (0, _deprecatedPropType.default)(_utils.refType, 'Use `ref` instead.'),
|
||||
|
||||
/**
|
||||
* If `true`, the ripples will be centered.
|
||||
* They won't start at the cursor interaction position.
|
||||
*/
|
||||
centerRipple: _propTypes.default.bool,
|
||||
|
||||
/**
|
||||
* The content of the component.
|
||||
*/
|
||||
children: _propTypes.default.node,
|
||||
|
||||
/**
|
||||
* Override or extend the styles applied to the component.
|
||||
* See [CSS API](#css) below for more details.
|
||||
*/
|
||||
classes: _propTypes.default.object,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
className: _propTypes.default.string,
|
||||
|
||||
/**
|
||||
* The component used for the root node.
|
||||
* Either a string to use a HTML element or a component.
|
||||
*/
|
||||
component: _utils.elementTypeAcceptingRef,
|
||||
|
||||
/**
|
||||
* If `true`, the base button will be disabled.
|
||||
*/
|
||||
disabled: _propTypes.default.bool,
|
||||
|
||||
/**
|
||||
* If `true`, the ripple effect will be disabled.
|
||||
*
|
||||
* ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
|
||||
* to highlight the element by applying separate styles with the `focusVisibleClassName`.
|
||||
*/
|
||||
disableRipple: _propTypes.default.bool,
|
||||
|
||||
/**
|
||||
* If `true`, the touch ripple effect will be disabled.
|
||||
*/
|
||||
disableTouchRipple: _propTypes.default.bool,
|
||||
|
||||
/**
|
||||
* If `true`, the base button will have a keyboard focus ripple.
|
||||
*/
|
||||
focusRipple: _propTypes.default.bool,
|
||||
|
||||
/**
|
||||
* This prop can help identify which element has keyboard focus.
|
||||
* The class name will be applied when the element gains the focus through keyboard interaction.
|
||||
* It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
|
||||
* The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/master/explainer.md).
|
||||
* A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
|
||||
* if needed.
|
||||
*/
|
||||
focusVisibleClassName: _propTypes.default.string,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
href: _propTypes.default.string,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onBlur: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onClick: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onDragLeave: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onFocus: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* Callback fired when the component is focused with a keyboard.
|
||||
* We trigger a `onFocus` callback too.
|
||||
*/
|
||||
onFocusVisible: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onKeyDown: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onKeyUp: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onMouseDown: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onMouseLeave: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onMouseUp: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onTouchEnd: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onTouchMove: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
onTouchStart: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
tabIndex: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
||||
|
||||
/**
|
||||
* Props applied to the `TouchRipple` element.
|
||||
*/
|
||||
TouchRippleProps: _propTypes.default.object,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
type: _propTypes.default.oneOfType([_propTypes.default.oneOf(['button', 'reset', 'submit']), _propTypes.default.string])
|
||||
} : void 0;
|
||||
|
||||
var _default = (0, _withStyles.default)(styles, {
|
||||
name: 'MuiButtonBase'
|
||||
})(ButtonBase);
|
||||
|
||||
exports.default = _default;
|
115
web/node_modules/@material-ui/core/ButtonBase/Ripple.js
generated
vendored
Normal file
115
web/node_modules/@material-ui/core/ButtonBase/Ripple.js
generated
vendored
Normal file
|
@ -0,0 +1,115 @@
|
|||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
|
||||
var React = _interopRequireWildcard(require("react"));
|
||||
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
|
||||
var _clsx = _interopRequireDefault(require("clsx"));
|
||||
|
||||
var _useEventCallback = _interopRequireDefault(require("../utils/useEventCallback"));
|
||||
|
||||
var useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
|
||||
/**
|
||||
* @ignore - internal component.
|
||||
*/
|
||||
|
||||
function Ripple(props) {
|
||||
var classes = props.classes,
|
||||
_props$pulsate = props.pulsate,
|
||||
pulsate = _props$pulsate === void 0 ? false : _props$pulsate,
|
||||
rippleX = props.rippleX,
|
||||
rippleY = props.rippleY,
|
||||
rippleSize = props.rippleSize,
|
||||
inProp = props.in,
|
||||
_props$onExited = props.onExited,
|
||||
onExited = _props$onExited === void 0 ? function () {} : _props$onExited,
|
||||
timeout = props.timeout;
|
||||
|
||||
var _React$useState = React.useState(false),
|
||||
leaving = _React$useState[0],
|
||||
setLeaving = _React$useState[1];
|
||||
|
||||
var rippleClassName = (0, _clsx.default)(classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);
|
||||
var rippleStyles = {
|
||||
width: rippleSize,
|
||||
height: rippleSize,
|
||||
top: -(rippleSize / 2) + rippleY,
|
||||
left: -(rippleSize / 2) + rippleX
|
||||
};
|
||||
var childClassName = (0, _clsx.default)(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);
|
||||
var handleExited = (0, _useEventCallback.default)(onExited); // Ripple is used for user feedback (e.g. click or press) so we want to apply styles with the highest priority
|
||||
|
||||
useEnhancedEffect(function () {
|
||||
if (!inProp) {
|
||||
// react-transition-group#onExit
|
||||
setLeaving(true); // react-transition-group#onExited
|
||||
|
||||
var timeoutId = setTimeout(handleExited, timeout);
|
||||
return function () {
|
||||
clearTimeout(timeoutId);
|
||||
};
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}, [handleExited, inProp, timeout]);
|
||||
return /*#__PURE__*/React.createElement("span", {
|
||||
className: rippleClassName,
|
||||
style: rippleStyles
|
||||
}, /*#__PURE__*/React.createElement("span", {
|
||||
className: childClassName
|
||||
}));
|
||||
}
|
||||
|
||||
process.env.NODE_ENV !== "production" ? Ripple.propTypes = {
|
||||
/**
|
||||
* Override or extend the styles applied to the component.
|
||||
* See [CSS API](#css) below for more details.
|
||||
*/
|
||||
classes: _propTypes.default.object.isRequired,
|
||||
|
||||
/**
|
||||
* @ignore - injected from TransitionGroup
|
||||
*/
|
||||
in: _propTypes.default.bool,
|
||||
|
||||
/**
|
||||
* @ignore - injected from TransitionGroup
|
||||
*/
|
||||
onExited: _propTypes.default.func,
|
||||
|
||||
/**
|
||||
* If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.
|
||||
*/
|
||||
pulsate: _propTypes.default.bool,
|
||||
|
||||
/**
|
||||
* Diameter of the ripple.
|
||||
*/
|
||||
rippleSize: _propTypes.default.number,
|
||||
|
||||
/**
|
||||
* Horizontal position of the ripple center.
|
||||
*/
|
||||
rippleX: _propTypes.default.number,
|
||||
|
||||
/**
|
||||
* Vertical position of the ripple center.
|
||||
*/
|
||||
rippleY: _propTypes.default.number,
|
||||
|
||||
/**
|
||||
* exit delay
|
||||
*/
|
||||
timeout: _propTypes.default.number.isRequired
|
||||
} : void 0;
|
||||
var _default = Ripple;
|
||||
exports.default = _default;
|
22
web/node_modules/@material-ui/core/ButtonBase/TouchRipple.d.ts
generated
vendored
Normal file
22
web/node_modules/@material-ui/core/ButtonBase/TouchRipple.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
import * as React from 'react';
|
||||
import { StandardProps } from '..';
|
||||
|
||||
export type TouchRippleProps = StandardProps<
|
||||
React.HTMLAttributes<HTMLElement>,
|
||||
TouchRippleClassKey
|
||||
> & {
|
||||
center?: boolean;
|
||||
};
|
||||
|
||||
export type TouchRippleClassKey =
|
||||
| 'root'
|
||||
| 'ripple'
|
||||
| 'rippleVisible'
|
||||
| 'ripplePulsate'
|
||||
| 'child'
|
||||
| 'childLeaving'
|
||||
| 'childPulsate';
|
||||
|
||||
declare const TouchRipple: React.ComponentType<TouchRippleProps>;
|
||||
|
||||
export default TouchRipple;
|
340
web/node_modules/@material-ui/core/ButtonBase/TouchRipple.js
generated
vendored
Normal file
340
web/node_modules/@material-ui/core/ButtonBase/TouchRipple.js
generated
vendored
Normal file
|
@ -0,0 +1,340 @@
|
|||
"use strict";
|
||||
|
||||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = exports.styles = exports.DELAY_RIPPLE = void 0;
|
||||
|
||||
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
||||
|
||||
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
||||
|
||||
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
||||
|
||||
var React = _interopRequireWildcard(require("react"));
|
||||
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
|
||||
var _reactTransitionGroup = require("react-transition-group");
|
||||
|
||||
var _clsx = _interopRequireDefault(require("clsx"));
|
||||
|
||||
var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
|
||||
|
||||
var _Ripple = _interopRequireDefault(require("./Ripple"));
|
||||
|
||||
var DURATION = 550;
|
||||
var DELAY_RIPPLE = 80;
|
||||
exports.DELAY_RIPPLE = DELAY_RIPPLE;
|
||||
|
||||
var styles = function styles(theme) {
|
||||
return {
|
||||
/* Styles applied to the root element. */
|
||||
root: {
|
||||
overflow: 'hidden',
|
||||
pointerEvents: 'none',
|
||||
position: 'absolute',
|
||||
zIndex: 0,
|
||||
top: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
borderRadius: 'inherit'
|
||||
},
|
||||
|
||||
/* Styles applied to the internal `Ripple` components `ripple` class. */
|
||||
ripple: {
|
||||
opacity: 0,
|
||||
position: 'absolute'
|
||||
},
|
||||
|
||||
/* Styles applied to the internal `Ripple` components `rippleVisible` class. */
|
||||
rippleVisible: {
|
||||
opacity: 0.3,
|
||||
transform: 'scale(1)',
|
||||
animation: "$enter ".concat(DURATION, "ms ").concat(theme.transitions.easing.easeInOut)
|
||||
},
|
||||
|
||||
/* Styles applied to the internal `Ripple` components `ripplePulsate` class. */
|
||||
ripplePulsate: {
|
||||
animationDuration: "".concat(theme.transitions.duration.shorter, "ms")
|
||||
},
|
||||
|
||||
/* Styles applied to the internal `Ripple` components `child` class. */
|
||||
child: {
|
||||
opacity: 1,
|
||||
display: 'block',
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
borderRadius: '50%',
|
||||
backgroundColor: 'currentColor'
|
||||
},
|
||||
|
||||
/* Styles applied to the internal `Ripple` components `childLeaving` class. */
|
||||
childLeaving: {
|
||||
opacity: 0,
|
||||
animation: "$exit ".concat(DURATION, "ms ").concat(theme.transitions.easing.easeInOut)
|
||||
},
|
||||
|
||||
/* Styles applied to the internal `Ripple` components `childPulsate` class. */
|
||||
childPulsate: {
|
||||
position: 'absolute',
|
||||
left: 0,
|
||||
top: 0,
|
||||
animation: "$pulsate 2500ms ".concat(theme.transitions.easing.easeInOut, " 200ms infinite")
|
||||
},
|
||||
'@keyframes enter': {
|
||||
'0%': {
|
||||
transform: 'scale(0)',
|
||||
opacity: 0.1
|
||||
},
|
||||
'100%': {
|
||||
transform: 'scale(1)',
|
||||
opacity: 0.3
|
||||
}
|
||||
},
|
||||
'@keyframes exit': {
|
||||
'0%': {
|
||||
opacity: 1
|
||||
},
|
||||
'100%': {
|
||||
opacity: 0
|
||||
}
|
||||
},
|
||||
'@keyframes pulsate': {
|
||||
'0%': {
|
||||
transform: 'scale(1)'
|
||||
},
|
||||
'50%': {
|
||||
transform: 'scale(0.92)'
|
||||
},
|
||||
'100%': {
|
||||
transform: 'scale(1)'
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @ignore - internal component.
|
||||
*
|
||||
* TODO v5: Make private
|
||||
*/
|
||||
|
||||
|
||||
exports.styles = styles;
|
||||
var TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(props, ref) {
|
||||
var _props$center = props.center,
|
||||
centerProp = _props$center === void 0 ? false : _props$center,
|
||||
classes = props.classes,
|
||||
className = props.className,
|
||||
other = (0, _objectWithoutProperties2.default)(props, ["center", "classes", "className"]);
|
||||
|
||||
var _React$useState = React.useState([]),
|
||||
ripples = _React$useState[0],
|
||||
setRipples = _React$useState[1];
|
||||
|
||||
var nextKey = React.useRef(0);
|
||||
var rippleCallback = React.useRef(null);
|
||||
React.useEffect(function () {
|
||||
if (rippleCallback.current) {
|
||||
rippleCallback.current();
|
||||
rippleCallback.current = null;
|
||||
}
|
||||
}, [ripples]); // Used to filter out mouse emulated events on mobile.
|
||||
|
||||
var ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch "click" like events.
|
||||
// We don't want to display the ripple for touch scroll events.
|
||||
|
||||
var startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.
|
||||
|
||||
var startTimerCommit = React.useRef(null);
|
||||
var container = React.useRef(null);
|
||||
React.useEffect(function () {
|
||||
return function () {
|
||||
clearTimeout(startTimer.current);
|
||||
};
|
||||
}, []);
|
||||
var startCommit = React.useCallback(function (params) {
|
||||
var pulsate = params.pulsate,
|
||||
rippleX = params.rippleX,
|
||||
rippleY = params.rippleY,
|
||||
rippleSize = params.rippleSize,
|
||||
cb = params.cb;
|
||||
setRipples(function (oldRipples) {
|
||||
return [].concat((0, _toConsumableArray2.default)(oldRipples), [/*#__PURE__*/React.createElement(_Ripple.default, {
|
||||
key: nextKey.current,
|
||||
classes: classes,
|
||||
timeout: DURATION,
|
||||
pulsate: pulsate,
|
||||
rippleX: rippleX,
|
||||
rippleY: rippleY,
|
||||
rippleSize: rippleSize
|
||||
})]);
|
||||
});
|
||||
nextKey.current += 1;
|
||||
rippleCallback.current = cb;
|
||||
}, [classes]);
|
||||
var start = React.useCallback(function () {
|
||||
var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
var cb = arguments.length > 2 ? arguments[2] : undefined;
|
||||
var _options$pulsate = options.pulsate,
|
||||
pulsate = _options$pulsate === void 0 ? false : _options$pulsate,
|
||||
_options$center = options.center,
|
||||
center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,
|
||||
_options$fakeElement = options.fakeElement,
|
||||
fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;
|
||||
|
||||
if (event.type === 'mousedown' && ignoringMouseDown.current) {
|
||||
ignoringMouseDown.current = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.type === 'touchstart') {
|
||||
ignoringMouseDown.current = true;
|
||||
}
|
||||
|
||||
var element = fakeElement ? null : container.current;
|
||||
var rect = element ? element.getBoundingClientRect() : {
|
||||
width: 0,
|
||||
height: 0,
|
||||
left: 0,
|
||||
top: 0
|
||||
}; // Get the size of the ripple
|
||||
|
||||
var rippleX;
|
||||
var rippleY;
|
||||
var rippleSize;
|
||||
|
||||
if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {
|
||||
rippleX = Math.round(rect.width / 2);
|
||||
rippleY = Math.round(rect.height / 2);
|
||||
} else {
|
||||
var _ref = event.touches ? event.touches[0] : event,
|
||||
clientX = _ref.clientX,
|
||||
clientY = _ref.clientY;
|
||||
|
||||
rippleX = Math.round(clientX - rect.left);
|
||||
rippleY = Math.round(clientY - rect.top);
|
||||
}
|
||||
|
||||
if (center) {
|
||||
rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.
|
||||
|
||||
if (rippleSize % 2 === 0) {
|
||||
rippleSize += 1;
|
||||
}
|
||||
} else {
|
||||
var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;
|
||||
var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;
|
||||
rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));
|
||||
} // Touche devices
|
||||
|
||||
|
||||
if (event.touches) {
|
||||
// check that this isn't another touchstart due to multitouch
|
||||
// otherwise we will only clear a single timer when unmounting while two
|
||||
// are running
|
||||
if (startTimerCommit.current === null) {
|
||||
// Prepare the ripple effect.
|
||||
startTimerCommit.current = function () {
|
||||
startCommit({
|
||||
pulsate: pulsate,
|
||||
rippleX: rippleX,
|
||||
rippleY: rippleY,
|
||||
rippleSize: rippleSize,
|
||||
cb: cb
|
||||
});
|
||||
}; // Delay the execution of the ripple effect.
|
||||
|
||||
|
||||
startTimer.current = setTimeout(function () {
|
||||
if (startTimerCommit.current) {
|
||||
startTimerCommit.current();
|
||||
startTimerCommit.current = null;
|
||||
}
|
||||
}, DELAY_RIPPLE); // We have to make a tradeoff with this value.
|
||||
}
|
||||
} else {
|
||||
startCommit({
|
||||
pulsate: pulsate,
|
||||
rippleX: rippleX,
|
||||
rippleY: rippleY,
|
||||
rippleSize: rippleSize,
|
||||
cb: cb
|
||||
});
|
||||
}
|
||||
}, [centerProp, startCommit]);
|
||||
var pulsate = React.useCallback(function () {
|
||||
start({}, {
|
||||
pulsate: true
|
||||
});
|
||||
}, [start]);
|
||||
var stop = React.useCallback(function (event, cb) {
|
||||
clearTimeout(startTimer.current); // The touch interaction occurs too quickly.
|
||||
// We still want to show ripple effect.
|
||||
|
||||
if (event.type === 'touchend' && startTimerCommit.current) {
|
||||
event.persist();
|
||||
startTimerCommit.current();
|
||||
startTimerCommit.current = null;
|
||||
startTimer.current = setTimeout(function () {
|
||||
stop(event, cb);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
startTimerCommit.current = null;
|
||||
setRipples(function (oldRipples) {
|
||||
if (oldRipples.length > 0) {
|
||||
return oldRipples.slice(1);
|
||||
}
|
||||
|
||||
return oldRipples;
|
||||
});
|
||||
rippleCallback.current = cb;
|
||||
}, []);
|
||||
React.useImperativeHandle(ref, function () {
|
||||
return {
|
||||
pulsate: pulsate,
|
||||
start: start,
|
||||
stop: stop
|
||||
};
|
||||
}, [pulsate, start, stop]);
|
||||
return /*#__PURE__*/React.createElement("span", (0, _extends2.default)({
|
||||
className: (0, _clsx.default)(classes.root, className),
|
||||
ref: container
|
||||
}, other), /*#__PURE__*/React.createElement(_reactTransitionGroup.TransitionGroup, {
|
||||
component: null,
|
||||
exit: true
|
||||
}, ripples));
|
||||
});
|
||||
process.env.NODE_ENV !== "production" ? TouchRipple.propTypes = {
|
||||
/**
|
||||
* If `true`, the ripple starts at the center of the component
|
||||
* rather than at the point of interaction.
|
||||
*/
|
||||
center: _propTypes.default.bool,
|
||||
|
||||
/**
|
||||
* Override or extend the styles applied to the component.
|
||||
* See [CSS API](#css) below for more details.
|
||||
*/
|
||||
classes: _propTypes.default.object.isRequired,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
className: _propTypes.default.string
|
||||
} : void 0;
|
||||
|
||||
var _default = (0, _withStyles.default)(styles, {
|
||||
flip: false,
|
||||
name: 'MuiTouchRipple'
|
||||
})( /*#__PURE__*/React.memo(TouchRipple));
|
||||
|
||||
exports.default = _default;
|
2
web/node_modules/@material-ui/core/ButtonBase/index.d.ts
generated
vendored
Normal file
2
web/node_modules/@material-ui/core/ButtonBase/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
export { default } from './ButtonBase';
|
||||
export * from './ButtonBase';
|
15
web/node_modules/@material-ui/core/ButtonBase/index.js
generated
vendored
Normal file
15
web/node_modules/@material-ui/core/ButtonBase/index.js
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "default", {
|
||||
enumerable: true,
|
||||
get: function get() {
|
||||
return _ButtonBase.default;
|
||||
}
|
||||
});
|
||||
|
||||
var _ButtonBase = _interopRequireDefault(require("./ButtonBase"));
|
5
web/node_modules/@material-ui/core/ButtonBase/package.json
generated
vendored
Normal file
5
web/node_modules/@material-ui/core/ButtonBase/package.json
generated
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"sideEffects": false,
|
||||
"module": "../esm/ButtonBase/index.js",
|
||||
"typings": "./index.d.ts"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue