diff --git a/node_modules/semantic-ui-react/dist/es/lib/doesNodeContainClick.js b/node_modules/semantic-ui-react/dist/es/lib/doesNodeContainClick.js index 6d06078..e22d4f0 100644 --- a/node_modules/semantic-ui-react/dist/es/lib/doesNodeContainClick.js +++ b/node_modules/semantic-ui-react/dist/es/lib/doesNodeContainClick.js @@ -17,13 +17,7 @@ var doesNodeContainClick = function doesNodeContainClick(node, e) { if (_some([e, node], _isNil)) return false; // if there is an e.target and it is in the document, use a simple node.contains() check if (e.target) { - _invoke(e.target, 'setAttribute', 'data-suir-click-target', true); - - if (document.querySelector('[data-suir-click-target=true]')) { - _invoke(e.target, 'removeAttribute', 'data-suir-click-target'); - - return node.contains(e.target); - } + return node.contains(e.target); } // Below logic handles cases where the e.target is no longer in the document. // The result of the click likely has removed the e.target node. // Instead of node.contains(), we'll identify the click by X/Y position. diff --git a/node_modules/semantic-ui-react/dist/es/modules/Dropdown/Dropdown.js b/node_modules/semantic-ui-react/dist/es/modules/Dropdown/Dropdown.js index 1cc1bab..0e178ee 100644 --- a/node_modules/semantic-ui-react/dist/es/modules/Dropdown/Dropdown.js +++ b/node_modules/semantic-ui-react/dist/es/modules/Dropdown/Dropdown.js @@ -342,7 +342,7 @@ var Dropdown = /*#__PURE__*/function (_Component) { return; } - if (searchQuery.length >= minCharacters || minCharacters === 1) { + if (searchQuery.length >= minCharacters || minCharacters === 0) { _this.open(e); return; @@ -480,7 +480,7 @@ var Dropdown = /*#__PURE__*/function (_Component) { } // close search dropdown if search query is too small - if (open && minCharacters !== 1 && newQuery.length < minCharacters) _this.close(); + if (open && minCharacters !== 0 && newQuery.length < minCharacters) _this.close(); }; _this.handleKeyDown = function (e) { @@ -1048,7 +1048,7 @@ var Dropdown = /*#__PURE__*/function (_Component) { if (!prevState.focus && this.state.focus) { if (!this.isMouseDown) { - var openable = !search || search && minCharacters === 1 && !this.state.open; + var openable = !search || search && minCharacters === 0 && !this.state.open; if (openOnFocus && openable) this.open(); } } else if (prevState.focus && !this.state.focus) { @@ -1436,7 +1436,7 @@ Dropdown.defaultProps = { closeOnEscape: true, deburr: false, icon: 'dropdown', - minCharacters: 1, + minCharacters: 0, noResultsMessage: 'No results found.', openOnFocus: true, renderLabel: renderItemContent, diff --git a/node_modules/semantic-ui-react/dist/es/modules/Modal/Modal.js b/node_modules/semantic-ui-react/dist/es/modules/Modal/Modal.js index a39f694..c9c616a 100644 --- a/node_modules/semantic-ui-react/dist/es/modules/Modal/Modal.js +++ b/node_modules/semantic-ui-react/dist/es/modules/Modal/Modal.js @@ -20,6 +20,7 @@ import ModalDescription from './ModalDescription'; import ModalDimmer from './ModalDimmer'; import ModalHeader from './ModalHeader'; import { canFit, getLegacyStyles, isLegacy } from './utils'; +var IS_WINDOWS = navigator.platform.startsWith('Win'); /** * A modal displays content that temporarily blocks interactions with the main view of a site. @@ -41,6 +42,7 @@ var Modal = /*#__PURE__*/function (_Component) { _this.ref = /*#__PURE__*/createRef(); _this.dimmerRef = /*#__PURE__*/createRef(); _this.latestDocumentMouseDownEvent = null; + _this.latestWindowFocusTimeOnWindows = null; _this.getMountNode = function () { return isBrowser() ? _this.props.mountNode || document.body : null; @@ -68,11 +70,17 @@ var Modal = /*#__PURE__*/function (_Component) { })); }; + _this.handleWindowFocusOnWindows = function () { + _this.latestWindowFocusTimeOnWindows = Date.now(); + }; + _this.handleDocumentMouseDown = function (e) { + if (_this.latestWindowFocusTimeOnWindows && Date.now() - _this.latestWindowFocusTimeOnWindows < 50) return; _this.latestDocumentMouseDownEvent = e; }; _this.handleDocumentClick = function (e) { + if (!_this.latestDocumentMouseDownEvent) return; var closeOnDimmerClick = _this.props.closeOnDimmerClick; var currentDocumentMouseDownEvent = _this.latestDocumentMouseDownEvent; _this.latestDocumentMouseDownEvent = null; @@ -116,6 +124,13 @@ var Modal = /*#__PURE__*/function (_Component) { _this.setPositionAndClassNames(); + if (IS_WINDOWS) { + eventStack.sub('focus', _this.handleWindowFocusOnWindows, { + pool: eventPool, + target: window + }); + } + eventStack.sub('mousedown', _this.handleDocumentMouseDown, { pool: eventPool, target: _this.dimmerRef.current @@ -131,6 +146,14 @@ var Modal = /*#__PURE__*/function (_Component) { _this.handlePortalUnmount = function (e) { var eventPool = _this.props.eventPool; cancelAnimationFrame(_this.animationRequestId); + + if (IS_WINDOWS) { + eventStack.unsub('focus', _this.handleWindowFocusOnWindows, { + pool: eventPool, + target: window + }); + } + eventStack.unsub('mousedown', _this.handleDocumentMouseDown, { pool: eventPool, target: _this.dimmerRef.current diff --git a/node_modules/semantic-ui-react/src/lib/doesNodeContainClick.js b/node_modules/semantic-ui-react/src/lib/doesNodeContainClick.js index d1ae271..43e1170 100644 --- a/node_modules/semantic-ui-react/src/lib/doesNodeContainClick.js +++ b/node_modules/semantic-ui-react/src/lib/doesNodeContainClick.js @@ -14,12 +14,7 @@ const doesNodeContainClick = (node, e) => { // if there is an e.target and it is in the document, use a simple node.contains() check if (e.target) { - _.invoke(e.target, 'setAttribute', 'data-suir-click-target', true) - - if (document.querySelector('[data-suir-click-target=true]')) { - _.invoke(e.target, 'removeAttribute', 'data-suir-click-target') - return node.contains(e.target) - } + return node.contains(e.target) } // Below logic handles cases where the e.target is no longer in the document.