From cabc04ab36b149a6934455a7467755898c185aeb Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 20 Dec 2018 15:23:07 +0100 Subject: [PATCH 1/4] refactor: remove `element-closest` dependency --- demo/src/polyfill.js | 2 -- package.json | 3 +-- src/Shared/element-closest.js | 33 +++++++++++++++++++++++++++++++++ src/Sidebar.js | 9 +++++---- 4 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 src/Shared/element-closest.js diff --git a/demo/src/polyfill.js b/demo/src/polyfill.js index d09b4a21..4826bf56 100644 --- a/demo/src/polyfill.js +++ b/demo/src/polyfill.js @@ -26,8 +26,6 @@ import 'core-js/es7/object' // Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove. // import 'core-js/es7/reflect' -import 'element-closest' - // CustomEvent() constructor functionality in IE9, IE10, IE11 (function () { diff --git a/package.json b/package.json index 4cca9b66..9476b23a 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,7 @@ "dependencies": { "@coreui/icons": "0.3.0", "classnames": "^2.2.6", - "core-js": "^2.5.7", - "element-closest": "^2.0.2", + "core-js": "^2.6.1", "prop-types": "^15.6.2", "react-onclickout": "^2.0.8", "react-perfect-scrollbar": "^1.4.2", diff --git a/src/Shared/element-closest.js b/src/Shared/element-closest.js new file mode 100644 index 00000000..c25d59ab --- /dev/null +++ b/src/Shared/element-closest.js @@ -0,0 +1,33 @@ +(function (ElementProto) { + if (!ElementProto) { + return; + } + if (typeof ElementProto.matches !== 'function') { + ElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) { + const element = this; + const elements = (element.document || element.ownerDocument).querySelectorAll(selector); + let index = 0; + + while (elements[index] && elements[index] !== element) { + ++index; + } + + return Boolean(elements[index]); + }; + } + + if (typeof ElementProto.closest !== 'function') { + ElementProto.closest = function closest(selector) { + let element = this; + + while (element && element.nodeType === 1) { + if (element.matches(selector)) { + return element; + } + element = element.parentNode; + } + + return null; + }; + } +})(typeof window !== 'undefined' && window.Element.prototype); diff --git a/src/Sidebar.js b/src/Sidebar.js index 5263bb90..b6f2e107 100644 --- a/src/Sidebar.js +++ b/src/Sidebar.js @@ -3,7 +3,7 @@ import classNames from 'classnames'; import PropTypes from 'prop-types'; import { sidebarCssClasses } from './Shared'; import ClickOutHandler from 'react-onclickout' -import 'element-closest' +import './Shared/element-closest' const propTypes = { children: PropTypes.node, @@ -80,10 +80,11 @@ class AppSidebar extends Component { } onClickOut(e) { - if (!e.target.closest('[data-sidebar-toggler]')) { - this.hideMobile(); + if (typeof window !== 'undefined' && document.body.classList.contains('sidebar-show')) { + if (!e.target.closest('[data-sidebar-toggler]')) { + this.hideMobile(); + } } - } render() { From 28ee63782dfea724b50a676feb374a377b8067ad Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 20 Dec 2018 15:23:51 +0100 Subject: [PATCH 2/4] chore: dependencies update - chore: update `core-js` to `2.6.1` - chore: update `enzyme` to `3.8.0` - chore: update `enzyme-adapter-react-16` to `1.7.1` - chore: update `eslint` to `5.10.0` - chore: update `react` to `16.7.0` - chore: update `react-dom` to `16.7.0` --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9476b23a..dd668449 100644 --- a/package.json +++ b/package.json @@ -50,14 +50,14 @@ }, "devDependencies": { "babel-eslint": "^10.0.1", - "enzyme": "^3.7.0", - "enzyme-adapter-react-16": "^1.7.0", - "eslint": "^5.9.0", + "enzyme": "^3.8.0", + "enzyme-adapter-react-16": "^1.7.1", + "eslint": "^5.10.0", "eslint-plugin-import": "^2.14.0", "eslint-plugin-react": "^7.11.1", "nwb": "^0.23.0", - "react": "^16.6.3", - "react-dom": "^16.6.3", + "react": "^16.7.0", + "react-dom": "^16.7.0", "sinon": "^5.1.1" }, "repository": { From 3893adcf38292e72ec76c4d607b1e31225ec8c8f Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 20 Dec 2018 15:25:33 +0100 Subject: [PATCH 3/4] chore: demo css update to @coreui/coreui v2.1.4 --- demo/src/scss/style.css | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/demo/src/scss/style.css b/demo/src/scss/style.css index 8a10e5c3..c49634cd 100644 --- a/demo/src/scss/style.css +++ b/demo/src/scss/style.css @@ -1,7 +1,7 @@ @charset "UTF-8"; /*! * CoreUI - Open Source Dashboard UI Kit - * @version v2.1.1 + * @version v2.1.4 * @link https://coreui.io * Copyright (c) 2018 creativeLabs Ɓukasz Holeczek * Licensed under MIT (https://coreui.io/license) @@ -12,6 +12,7 @@ * Copyright 2011-2018 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ + :root { --blue: #20a8d8; --indigo: #6610f2; @@ -12054,12 +12055,19 @@ canvas { .sidebar-minimized .sidebar .nav-item:hover > .nav-link .nav-icon { color: #fff; } - .sidebar-minimized .sidebar .nav-item:hover > .nav-link.disabled { + .sidebar-minimized .sidebar .nav-item:hover .nav-link.disabled, + .sidebar-minimized .sidebar .nav-item:hover .nav-link :disabled { background: #2f353a; } - .sidebar-minimized .sidebar .nav-item:hover > .nav-link.disabled .nav-icon { + .sidebar-minimized .sidebar .nav-item:hover .nav-link.disabled .nav-icon, + .sidebar-minimized .sidebar .nav-item:hover .nav-link :disabled .nav-icon { color: #73818f; } + .sidebar-minimized .sidebar section :not(.nav-dropdown-items) > .nav-item:last-child::after { + display: block; + margin-bottom: 50px; + content: ""; + } .sidebar-minimized .sidebar .nav-link { position: relative; padding-left: 0; @@ -14168,3 +14176,11 @@ body { breakpoint-xl: 1200px; } /*# sourceMappingURL=coreui.css.map */ + +/* ie11 floating footer temp fix, react only */ +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + #demo { + display: flex; + flex-direction: column; + } +} From d43f49a975363ecc19767be32b42c505938552be Mon Sep 17 00:00:00 2001 From: xidedix Date: Thu, 20 Dec 2018 15:25:55 +0100 Subject: [PATCH 4/4] Ship: v2.1.2 --- CHANGELOG.md | 35 ++++++++++++++++++++++------------- package.json | 2 +- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6561dcb0..adb406a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,24 +1,33 @@ ### [@coreui/react](https://coreui.io/) changelog +##### `v2.1.2` +- refactor: remove `element-closest` dependency issue #37 #50 +- chore: update `core-js` to `2.6.1` +- chore: update `enzyme` to `3.8.0` +- chore: update `enzyme-adapter-react-16` to `1.7.1` +- chore: update `eslint` to `5.10.0` +- chore: update `react` to `16.7.0` +- chore: update `react-dom` to `16.7.0` + ##### `v2.1.1` -chore: update `enzyme-adapter-react-16` to `1.7.0` -chore: update `eslint` to `5.9.0` -chore: update `react-dom` to `16.6.3` -chore: update `react` to `16.6.3` +- chore: update `enzyme-adapter-react-16` to `1.7.0` +- chore: update `eslint` to `5.9.0` +- chore: update `react-dom` to `16.6.3` +- chore: update `react` to `16.6.3` ##### `v2.1.0` - feat(SidebarNav): navLink `attributes` - optional JS object with valid JS API naming: - valid attributes: `rel`, `target`, `hidden`, `disabled`, etc... - item example: - ```js - { - name: 'Try CoreUI PRO', - url: 'https://coreui.io/pro/react/', - icon: 'cui-layers icons', - variant: 'danger', - attributes: { target: '_blank', rel: "noopener" }, - }, - ``` + ``` + { + name: 'Try CoreUI PRO', + url: 'https://coreui.io/pro/react/', + icon: 'cui-layers icons', + variant: 'danger', + attributes: { target: '_blank', rel: "noopener" }, + }, + ``` - update `@coreui/coreui` to `2.1.0` - sidebar-nav-link-disabled-* - chore: update `react-perfect-scrollbar` to `1.4.2` - chore: update `eslint` to `5.8.0` diff --git a/package.json b/package.json index dd668449..fb5761ec 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/react", - "version": "2.1.1", + "version": "2.1.2", "description": "CoreUI React Bootstrap 4 components", "license": "MIT", "author": {