diff --git a/CHANGELOG.md b/CHANGELOG.md index 28c7d7e4e6..dec0b99e77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,20 @@ The following is a curated list of changes in the Enact project, newest changes on the top. -## [1.14.0] - 2017-02-23 +## [1.15.0] - 2018-02-28 + +### Deprecated + +- `core/util/childrenEquals`, to be removed in 2.0.0 +- `moonstone/Marquee.Marquee`, to be moved to `moonstone/Marquee.MarqueeBase` in 2.0.0 +- `moonstone/Marquee.MarqueeText`, to be moved to `moonstone/Marquee.Marquee` in 2.0.0 + +### Fixed + +- `moonstone/GridListImageItem` to display correctly +- Internal method used by many components that sometimes prevented re-renders when they were needed + +## [1.14.0] - 2018-02-23 ### Deprecated @@ -21,7 +34,7 @@ The following is a curated list of changes in the Enact project, newest changes - `moonstone/EditableIntegerPicker` component - `moonstone/GridListImageItem` component -## [1.13.3] - 2017-01-16 +## [1.13.3] - 2018-01-16 ### Fixed diff --git a/lerna.json b/lerna.json index c63a3e0fd6..d24cc9731a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "lerna": "2.0.0-beta.30", - "version": "1.14.0" + "version": "1.15.0" } diff --git a/package.json b/package.json index 57c141506b..4da557e70c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "enact", - "version": "1.14.0", + "version": "1.15.0", "description": "Monorepo for all Enact front end libraries.", "private": true, "scripts": { @@ -14,4 +14,4 @@ "devDependencies": { "lerna": "2.0.0-beta.30" } -} \ No newline at end of file +} diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 586fcd213b..49a6f48565 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -2,13 +2,19 @@ The following is a curated list of changes in the Enact core module, newest changes on the top. -## [1.14.0] - 2017-02-23 +## [1.15.0] - 2018-02-28 + +### Deprecated + +- `core/util/childrenEquals`, to be removed in 2.0.0 + +## [1.14.0] - 2018-02-23 ### Deprecated - `core/factory`, to be removed in 2.0.0 -## [1.13.3] - 2017-01-16 +## [1.13.3] - 2018-01-16 ### Fixed diff --git a/packages/core/package.json b/packages/core/package.json index 73e29b0bbd..4891d117b3 100755 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@enact/core", - "version": "1.14.0", + "version": "1.15.0", "description": "Enact is an open source JavaScript framework containing everything you need to create a fast, scalable mobile or web application.", "main": "index.js", "scripts": { diff --git a/packages/core/util/util.js b/packages/core/util/util.js index 6c11514e52..3aabba86a0 100644 --- a/packages/core/util/util.js +++ b/packages/core/util/util.js @@ -15,6 +15,8 @@ import unless from 'ramda/src/unless'; import useWith from 'ramda/src/useWith'; import when from 'ramda/src/when'; +import deprecate from '../internal/deprecate'; + import Job from './Job'; const orderedKeys = map(when(React.isValidElement, prop('key'))); @@ -32,6 +34,7 @@ const orderedEquals = useWith(equals, [orderedKeys, orderedKeys]); * @param {Boolean} [ordered] `true` to require the same order * * @returns {Boolean} `true` if the children are the same + * @deprecated since 1.15.0. Will be removed in 2.0.0 */ const childrenEquals = (prev, next, ordered = false) => { const prevChildren = React.Children.toArray(prev); @@ -147,9 +150,12 @@ const perfNow = function () { } }; +const deprecatedChildrenEquals = deprecate(childrenEquals, {name: 'core/util.childrenEquals', since: '1.15.0', until: '2.0.0'}); + export { cap, - childrenEquals, + deprecatedChildrenEquals as childrenEquals, + childrenEquals as privateChildrenEquals, coerceFunction, coerceArray, Job, diff --git a/packages/i18n/CHANGELOG.md b/packages/i18n/CHANGELOG.md index 9729d6d992..d2a3256558 100644 --- a/packages/i18n/CHANGELOG.md +++ b/packages/i18n/CHANGELOG.md @@ -2,11 +2,15 @@ The following is a curated list of changes in the Enact i18n module, newest changes on the top. -## [1.14.0] - 2017-02-23 +## [1.15.0] - 2018-02-28 No significant changes. -## [1.13.3] - 2017-01-16 +## [1.14.0] - 2018-02-23 + +No significant changes. + +## [1.13.3] - 2018-01-16 No significant changes. diff --git a/packages/i18n/package.json b/packages/i18n/package.json index b30b792868..3665143acc 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,7 +1,7 @@ { "name": "@enact/i18n", "main": "./src/index.js", - "version": "1.14.0", + "version": "1.15.0", "description": "Internationalization support for Enact using iLib", "scripts": { "clean": "enact clean", @@ -34,7 +34,7 @@ "extends": "enact/strict" }, "dependencies": { - "@enact/core": "^1.14.0", + "@enact/core": "^1.15.0", "prop-types": "~15.6.0", "ramda": "~0.24.1", "react": "~15.6.1", diff --git a/packages/moonstone/CHANGELOG.md b/packages/moonstone/CHANGELOG.md index 2515d1e28e..4202533d8c 100644 --- a/packages/moonstone/CHANGELOG.md +++ b/packages/moonstone/CHANGELOG.md @@ -2,7 +2,18 @@ The following is a curated list of changes in the Enact moonstone module, newest changes on the top. -## [1.14.0] - 2017-02-23 +## [1.15.0] - 2018-02-28 + +### Deprecated + +- `moonstone/Marquee.Marquee`, to be moved to `moonstone/Marquee.MarqueeBase` in 2.0.0 +- `moonstone/Marquee.MarqueeText`, to be moved to `moonstone/Marquee.Marquee` in 2.0.0 + +### Fixed + +- `moonstone/GridListImageItem` to display correctly + +## [1.14.0] - 2018-02-23 ### Deprecated @@ -19,7 +30,7 @@ The following is a curated list of changes in the Enact moonstone module, newest - `moonstone/EditableIntegerPicker` component - `moonstone/GridListImageItem` component -## [1.13.3] - 2017-01-16 +## [1.13.3] - 2018-01-16 ### Fixed diff --git a/packages/moonstone/GridListImageItem/GridListImageItem.js b/packages/moonstone/GridListImageItem/GridListImageItem.js index bd13f2c2c1..1bf0a4c31e 100644 --- a/packages/moonstone/GridListImageItem/GridListImageItem.js +++ b/packages/moonstone/GridListImageItem/GridListImageItem.js @@ -1,32 +1,32 @@ /** * Exports the {@link moonstone/GridListImageItem.GridListImageItem} and * {@link moonstone/GridListImageItem.GridListImageItemBase} components. The default export is - * {@link moonstone/GridListImageItem}. + * {@link moonstone/GridListImageItem.GridListImageItem}. * * @module moonstone/GridListImageItem */ import kind from '@enact/core/kind'; -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import Spottable from '@enact/spotlight/Spottable'; import Icon from '../Icon'; import {Image} from '../Image'; import {MarqueeController, MarqueeText} from '../Marquee'; +import Skinnable from '../Skinnable'; import css from './GridListImageItem.less'; const defaultPlaceholder = 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC' + - '9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48cmVjdCB3aWR0aD0iMTAw' + - 'JSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0ic3Ryb2tlOiAjNDQ0OyBzdHJva2Utd2lkdGg6IDE7IGZpbGw6ICNhYW' + - 'E7IiAvPjxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjEwMCUiIHkyPSIxMDAlIiBzdHlsZT0ic3Ryb2tlOiAjNDQ0' + - 'OyBzdHJva2Utd2lkdGg6IDE7IiAvPjxsaW5lIHgxPSIxMDAlIiB5MT0iMCIgeDI9IjAiIHkyPSIxMDAlIiBzdH' + - 'lsZT0ic3Ryb2tlOiAjNDQ0OyBzdHJva2Utd2lkdGg6IDE7IiAvPjwvc3ZnPg=='; + '9zdmciPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0cm9rZT0iIzU1NSIgZmlsbD0iI2FhYSIg' + + 'ZmlsbC1vcGFjaXR5PSIwLjIiIHN0cm9rZS1vcGFjaXR5PSIwLjgiIHN0cm9rZS13aWR0aD0iNiIgLz48L3N2Zz' + + '4NCg=='; /** - * {@link moonstone/GridListImageItem.GridListImageItemBase} is a stateless - * GridListImageItem with Moonstone styling applied. + * {@link moonstone/GridListImageItem.GridListImageItemBase} is a stateless GridListImageItem with + * Moonstone styling applied. * * @class GridListImageItemBase * @memberof moonstone/GridListImageItem @@ -37,6 +37,15 @@ const GridListImageItemBase = kind({ name: 'GridListImageItem', propTypes: /** @lends moonstone/GridListImageItem.GridListImageItemBase.prototype */ { + /** + * The absolute URL path to the image. + * + * @type {String} + * @required + * @public + */ + source: PropTypes.string.isRequired, + /** * The primary caption to be displayed with the image. * @@ -45,6 +54,19 @@ const GridListImageItemBase = kind({ */ caption: PropTypes.string, + /** + * Placeholder image used while [source]{@link moonstone/GridListImageItem.GridListImageItemBase#source} + * is loaded. + * + * @type {String} + * @default 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC' + + * '9zdmciPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0cm9rZT0iIzU1NSIgZmlsbD0iI2FhYSIg' + + * 'ZmlsbC1vcGFjaXR5PSIwLjIiIHN0cm9rZS1vcGFjaXR5PSIwLjgiIHN0cm9rZS13aWR0aD0iNiIgLz48L3N2Zz' + + * '4NCg=='; + * @public + */ + placeholder: PropTypes.string, + /** * When `true`, applies a selected visual effect to the image, but only if `selectionOverlayShowing` * is also `true`. @@ -56,22 +78,33 @@ const GridListImageItemBase = kind({ selected: PropTypes.bool, /** - * When `true`, a selection overlay with a centered icon is shown. When `selected` is true, - * a check mark is shown. + * The custom selection overlay component to render. A component can be a stateless functional + * component, `kind()` or React component. The following is an example with custom selection + * overlay kind. * - * @type {Boolean} - * @default false + * Example Usage: + * ``` + * const SelectionOverlay = kind({ + * render: () =>
custom overlay
+ * }); + * + * + * ``` + * + * @type {Function} * @public */ - selectionOverlayShowing: PropTypes.bool, + selectionOverlay: PropTypes.func, /** - * The absolute URL path to the image. + * When `true`, a selection overlay with a centered icon is shown. When `selected` is true, + * a check mark is shown. * - * @type {String} + * @type {Boolean} + * @default false * @public */ - source: PropTypes.string, + selectionOverlayShowing: PropTypes.bool, /** * The second caption line to be displayed with the image. @@ -83,6 +116,7 @@ const GridListImageItemBase = kind({ }, defaultProps: { + placeholder: defaultPlaceholder, selected: false, selectionOverlayShowing: false }, @@ -97,39 +131,48 @@ const GridListImageItemBase = kind({ {selected}, caption ? 'useCaption' : null, subCaption ? 'useSubCaption' : null - ) + ), + selectionOverlay: ({selectionOverlay: SelectionOverlay, selectionOverlayShowing}) => { + if (selectionOverlayShowing) { + return ( +
+ { + SelectionOverlay ? + : +
+ check +
+ } +
+ ); + } + } }, - render: ({caption, source, subCaption, selectionOverlayShowing, ...rest}) => { - if (selectionOverlayShowing) { + render: ({caption, placeholder, source, subCaption, selectionOverlay, ...rest}) => { + if (selectionOverlay) { rest['role'] = 'checkbox'; rest['aria-checked'] = rest.selected; } delete rest.selected; + delete rest.selectionOverlayShowing; return (
- - { - selectionOverlayShowing ? ( -
-
- check -
-
- ) : null - } - {caption ? ({caption}) : null} - {subCaption ? ({subCaption}) : null} + + {selectionOverlay} + + {caption ? ({caption}) : null} + {subCaption ? ({subCaption}) : null}
); } }); /** - * {@link moonstone/GridListImageItem} is a GridListImageItem with - * Moonstone styling, Spottable applied. + * {@link moonstone/GridListImageItem.GridListImageItem} is a GridListImageItem with + * Moonstone styling, Marquee and Spottable applied. * * Usage: * ``` @@ -138,15 +181,18 @@ const GridListImageItemBase = kind({ * * @class GridListImageItem * @memberof moonstone/GridListImageItem - * @mixes spotlight/Spottable - * @see moonstone/GridListImageItem.GridListImageItemBase + * @mixes moonstone/Marquee.MarqueeController + * @mixes moonstone/Skinnable.Skinnable + * @mixes spotlight/Spottable.Spottable * @ui * @public */ const GridListImageItem = MarqueeController( {marqueeOnFocus: true}, Spottable( - GridListImageItemBase + Skinnable( + GridListImageItemBase, + ) ) ); diff --git a/packages/moonstone/GridListImageItem/GridListImageItem.less b/packages/moonstone/GridListImageItem/GridListImageItem.less index b995412c54..8c5fb318c4 100644 --- a/packages/moonstone/GridListImageItem/GridListImageItem.less +++ b/packages/moonstone/GridListImageItem/GridListImageItem.less @@ -1,24 +1,24 @@ -@import '../styles/colors.less'; @import '../styles/mixins.less'; @import '../styles/text.less'; @import '../styles/variables.less'; +@import '../styles/skin.less'; .gridListImageItem { box-sizing: border-box; - border: 6px solid transparent; - - color: @moon-white; + border-width: @moon-gridlist-item-border-width; + border-style: solid; .icon { - background-color: white; + width: @moon-gridlist-item-overlay-icon-size; + height: @moon-gridlist-item-overlay-icon-size; + line-height: @moon-gridlist-item-overlay-icon-size; position: relative; display: block; - border: @moon-button-border-width solid black; + border-width: @moon-button-border-width; + border-style: solid; border-radius: 50%; margin: 0; opacity: 0.5; - - color: transparent; } .image { @@ -29,68 +29,104 @@ } .overlayComponent { - position: absolute; - top: 50%; - left: 50%; - - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); + display: flex; + align-items: center; + justify-content: center; + height: 100%; } .overlayContainer { background-color: transparent; - position: absolute; - padding: 12px; - top: 0; - left: 0; - right: 0; - bottom: 0; - pointer-events: none; + height: 100%; } &.selected { .icon { - border-color: @moon-accent; opacity: 1; - - color: @moon-accent; } } &.useCaption, &.useSubCaption { - padding-bottom: 42px; + padding-bottom: @moon-gridlist-item-one-caption-padding-bottom; } &.useCaption.useSubCaption { - padding-bottom: 96px; + padding-bottom: @moon-gridlist-item-two-captions-padding-bottom; } .caption { .moon-sub-header-text(); - text-align: center; + padding-top: @moon-gridlist-item-caption-padding-top; } .subCaption { .moon-body-text(); - text-align: center; + padding-top: @moon-gridlist-item-caption-padding-top; } - &:global(.spottable):focus { - .caption, - .subCaption { - color: @moon-spotlight-text-color; + // Skin colors + .applySkins({ + border-color: transparent; + color: @moon-body-text-color; + + .icon { + background-color: @moon-white; + border-color: @moon-black; + color: transparent; } - } -} -[data-container-muted='true'] { - .gridListImageItem { - &:global(.spottable):focus { + &.selected { + border-color: @moon-gridlist-item-selection-color; + background-color: @moon-gridlist-item-selection-color; + + .icon { + border-color: @moon-accent; + color: @moon-accent; + } + .caption, .subCaption { - color: @moon-body-text-color; + color: @moon-spotlight-text-color; } } - } + + .focus({ + border-color: @moon-spotlight-border-color; + background-color: @moon-spotlight-border-color; + + .caption, + .subCaption { + color: @moon-spotlight-text-color; + } + }); + }); } + +.muted({ + .gridListImageItem { + // Skin colors + .applySkins({ + .focus({ + &:not(.selected) { + border-color: transparent; + background-color: transparent; + + .caption, + .subCaption { + color: @moon-body-text-color; + } + .icon { + color: transparent; + } + } + &.selected { + .icon { + border-color: @moon-accent; + color: @moon-accent; + } + } + }); + }); + } +}, parent); diff --git a/packages/moonstone/Item/Item.js b/packages/moonstone/Item/Item.js index c4d7d6c05c..ee91442f35 100644 --- a/packages/moonstone/Item/Item.js +++ b/packages/moonstone/Item/Item.js @@ -4,7 +4,7 @@ * @module moonstone/Item */ -import {childrenEquals} from '@enact/core/util'; +import {privateChildrenEquals as childrenEquals} from '@enact/core/util'; import deprecate from '@enact/core/internal/deprecate'; import {forProp, forward, handle} from '@enact/core/handle'; import kind from '@enact/core/kind'; diff --git a/packages/moonstone/Marquee/Marquee.js b/packages/moonstone/Marquee/Marquee.js index 9c2001b722..254bbd0c88 100644 --- a/packages/moonstone/Marquee/Marquee.js +++ b/packages/moonstone/Marquee/Marquee.js @@ -22,6 +22,7 @@ const animated = css.text + ' ' + css.animate; * @memberof moonstone/Marquee * @ui * @public + * @deprecated since 1.15.0. Will be moved to {@link moonstone/Marquee.MarqueeBase} in 2.0.0 */ const MarqueeBase = kind({ name: 'Marquee', diff --git a/packages/moonstone/Marquee/MarqueeDecorator.js b/packages/moonstone/Marquee/MarqueeDecorator.js index 693c65dfec..90ff48c3e3 100644 --- a/packages/moonstone/Marquee/MarqueeDecorator.js +++ b/packages/moonstone/Marquee/MarqueeDecorator.js @@ -1,7 +1,7 @@ import deprecate from '@enact/core/internal/deprecate'; import hoc from '@enact/core/hoc'; import {forward} from '@enact/core/handle'; -import {childrenEquals} from '@enact/core/util'; +import {privateChildrenEquals as childrenEquals} from '@enact/core/util'; import {isRtlText} from '@enact/i18n/util'; import React from 'react'; import PropTypes from 'prop-types'; diff --git a/packages/moonstone/Marquee/MarqueeText.js b/packages/moonstone/Marquee/MarqueeText.js index c87feebfa9..08e23106f2 100644 --- a/packages/moonstone/Marquee/MarqueeText.js +++ b/packages/moonstone/Marquee/MarqueeText.js @@ -8,6 +8,7 @@ import MarqueeDecorator from './MarqueeDecorator'; * @ui * @mixes moonstone/Marquee.MarqueeDecorator * @public + * @deprecated since 1.15.0. Will be moved to {@link moonstone/Marquee.Marquee} in 2.0.0 */ const MarqueeText = MarqueeDecorator('div'); MarqueeText.displayName = 'MarqueeText'; diff --git a/packages/moonstone/package.json b/packages/moonstone/package.json index bcf172b474..5691a52f12 100644 --- a/packages/moonstone/package.json +++ b/packages/moonstone/package.json @@ -1,6 +1,6 @@ { "name": "@enact/moonstone", - "version": "1.14.0", + "version": "1.15.0", "description": "Large-screen/TV support library for Enact, containing a variety of UI components.", "main": "index.js", "scripts": { @@ -28,10 +28,10 @@ "extends": "enact/strict" }, "dependencies": { - "@enact/core": "^1.14.0", - "@enact/i18n": "^1.14.0", - "@enact/spotlight": "^1.14.0", - "@enact/ui": "^1.14.0", + "@enact/core": "^1.15.0", + "@enact/i18n": "^1.15.0", + "@enact/spotlight": "^1.15.0", + "@enact/ui": "^1.15.0", "classnames": "~2.2.5", "eases": "~1.0.8", "invariant": "~2.2.2", diff --git a/packages/sampler/CHANGELOG.md b/packages/sampler/CHANGELOG.md index 70fe9dc8bd..e45f8f9683 100644 --- a/packages/sampler/CHANGELOG.md +++ b/packages/sampler/CHANGELOG.md @@ -2,11 +2,15 @@ The following is a curated list of changes in the Enact Sampler, newest changes on the top. -## [1.14.0] - 2017-02-23 +## [1.15.0] - 2018-02-28 No significant changes. -## [1.13.3] - 2017-01-16 +## [1.14.0] - 2018-02-23 + +No significant changes. + +## [1.13.3] - 2018-01-16 ### Fixed diff --git a/packages/sampler/npm-shrinkwrap.json b/packages/sampler/npm-shrinkwrap.json index 3fe905ed5f..6a43a91d82 100644 --- a/packages/sampler/npm-shrinkwrap.json +++ b/packages/sampler/npm-shrinkwrap.json @@ -1,36 +1,36 @@ { "name": "sampler", - "version": "1.14.0", + "version": "1.15.0", "dependencies": { "@enact/core": { - "version": "1.14.0", - "from": "@enact/core@>=1.14.0 <2.0.0", - "resolved": "https://registry.npmjs.org/@enact/core/-/core-1.14.0.tgz" + "version": "1.15.0", + "from": "@enact/core@>=1.15.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@enact/core/-/core-1.15.0.tgz" }, "@enact/i18n": { - "version": "1.14.0", - "from": "@enact/i18n@>=1.14.0 <2.0.0", - "resolved": "https://registry.npmjs.org/@enact/i18n/-/i18n-1.14.0.tgz" + "version": "1.15.0", + "from": "@enact/i18n@>=1.15.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@enact/i18n/-/i18n-1.15.0.tgz" }, "@enact/moonstone": { - "version": "1.14.0", - "from": "@enact/moonstone@>=1.14.0 <2.0.0", - "resolved": "https://registry.npmjs.org/@enact/moonstone/-/moonstone-1.14.0.tgz" + "version": "1.15.0", + "from": "@enact/moonstone@>=1.15.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@enact/moonstone/-/moonstone-1.15.0.tgz" }, "@enact/spotlight": { - "version": "1.14.0", - "from": "@enact/spotlight@>=1.14.0 <2.0.0", - "resolved": "https://registry.npmjs.org/@enact/spotlight/-/spotlight-1.14.0.tgz" + "version": "1.15.0", + "from": "@enact/spotlight@>=1.15.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@enact/spotlight/-/spotlight-1.15.0.tgz" }, "@enact/ui": { - "version": "1.14.0", - "from": "@enact/ui@>=1.14.0 <2.0.0", - "resolved": "https://registry.npmjs.org/@enact/ui/-/ui-1.14.0.tgz" + "version": "1.15.0", + "from": "@enact/ui@>=1.15.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@enact/ui/-/ui-1.15.0.tgz" }, "@enact/webos": { - "version": "1.14.0", - "from": "@enact/webos@>=1.14.0 <2.0.0", - "resolved": "https://registry.npmjs.org/@enact/webos/-/webos-1.14.0.tgz" + "version": "1.15.0", + "from": "@enact/webos@>=1.15.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@enact/webos/-/webos-1.15.0.tgz" }, "@kadira/react-split-pane": { "version": "1.4.7", @@ -174,14 +174,14 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" }, "array.prototype.flatmap": { - "version": "1.2.0", + "version": "1.2.1", "from": "array.prototype.flatmap@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.0.tgz" + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.1.tgz" }, "array.prototype.flatten": { - "version": "1.2.0", + "version": "1.2.1", "from": "array.prototype.flatten@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatten/-/array.prototype.flatten-1.2.0.tgz" + "resolved": "https://registry.npmjs.org/array.prototype.flatten/-/array.prototype.flatten-1.2.1.tgz" }, "asap": { "version": "2.0.6", @@ -1391,9 +1391,9 @@ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" }, "fast-deep-equal": { - "version": "1.0.0", + "version": "1.1.0", "from": "fast-deep-equal@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -2728,9 +2728,9 @@ "resolved": "https://registry.npmjs.org/markdown-to-react-components/-/markdown-to-react-components-0.2.4.tgz" }, "marked": { - "version": "0.3.16", + "version": "0.3.17", "from": "marked@>=0.3.3 <0.4.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.16.tgz" + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.17.tgz" }, "material-colors": { "version": "1.2.5", @@ -3437,9 +3437,9 @@ "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.0.tgz" }, "prop-types": { - "version": "15.6.0", + "version": "15.6.1", "from": "prop-types@>=15.6.0 <15.7.0", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz" + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz" }, "proxy-addr": { "version": "2.0.3", @@ -3538,9 +3538,9 @@ "resolved": "https://registry.npmjs.org/react-addons-perf/-/react-addons-perf-15.4.2.tgz" }, "react-color": { - "version": "2.13.8", + "version": "2.14.0", "from": "react-color@>=2.4.3 <3.0.0", - "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.13.8.tgz" + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.14.0.tgz" }, "react-datetime": { "version": "2.14.0", @@ -3991,9 +3991,9 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" }, "tough-cookie": { - "version": "2.3.3", + "version": "2.3.4", "from": "tough-cookie@>=2.3.3 <2.4.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz" + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz" }, "trim": { "version": "0.0.1", @@ -4226,9 +4226,9 @@ } }, "webpack-hot-middleware": { - "version": "2.21.0", + "version": "2.21.1", "from": "webpack-hot-middleware@>=2.13.2 <3.0.0", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.21.0.tgz" + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.21.1.tgz" }, "whatwg-fetch": { "version": "2.0.3", diff --git a/packages/sampler/package.json b/packages/sampler/package.json index 8cd70f53ac..a568509a46 100644 --- a/packages/sampler/package.json +++ b/packages/sampler/package.json @@ -1,6 +1,6 @@ { "name": "sampler", - "version": "1.14.0", + "version": "1.15.0", "description": "Component and QA samples for Enact", "private": true, "main": "index.js", @@ -40,12 +40,12 @@ "webpack": "1.14.0" }, "dependencies": { - "@enact/core": "^1.14.0", - "@enact/i18n": "^1.14.0", - "@enact/moonstone": "^1.14.0", - "@enact/spotlight": "^1.14.0", - "@enact/ui": "^1.14.0", - "@enact/webos": "^1.14.0", + "@enact/core": "^1.15.0", + "@enact/i18n": "^1.15.0", + "@enact/moonstone": "^1.15.0", + "@enact/spotlight": "^1.15.0", + "@enact/ui": "^1.15.0", + "@enact/webos": "^1.15.0", "@kadira/react-storybook-addon-info": "~3.3.0", "@kadira/storybook": "~2.34.0", "@kadira/storybook-addon-knobs": "~1.7.1", diff --git a/packages/spotlight/CHANGELOG.md b/packages/spotlight/CHANGELOG.md index 5ed867d3d4..937566f062 100644 --- a/packages/spotlight/CHANGELOG.md +++ b/packages/spotlight/CHANGELOG.md @@ -2,11 +2,15 @@ The following is a curated list of changes in the Enact spotlight module, newest changes on the top. -## [1.14.0] - 2017-02-23 +## [1.15.0] - 2018-02-28 No significant changes. -## [1.13.3] - 2017-01-16 +## [1.14.0] - 2018-02-23 + +No significant changes. + +## [1.13.3] - 2018-01-16 No significant changes. diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json index c67adc8591..e4d1d87a14 100644 --- a/packages/spotlight/package.json +++ b/packages/spotlight/package.json @@ -1,6 +1,6 @@ { "name": "@enact/spotlight", - "version": "1.14.0", + "version": "1.15.0", "description": "A focus management library", "main": "src/spotlight.js", "scripts": { @@ -21,7 +21,7 @@ "extends": "enact/strict" }, "dependencies": { - "@enact/core": "^1.14.0", + "@enact/core": "^1.15.0", "prop-types": "~15.6.0", "ramda": "~0.24.1", "react": "~15.6.1", diff --git a/packages/ui/CHANGELOG.md b/packages/ui/CHANGELOG.md index c95ea1bd9a..7a807699f6 100644 --- a/packages/ui/CHANGELOG.md +++ b/packages/ui/CHANGELOG.md @@ -3,12 +3,19 @@ The following is a curated list of changes in the Enact ui module, newest changes on the top. ## [1.14.0] - 2017-02-23 +## [1.15.0] - 2018-02-28 + +### Fixed + +- Internal method used by many components that sometimes prevented re-renders when they were needed + +## [1.14.0] - 2018-02-23 ### Deprecated - `ui/Holdable` and `ui/Pressable`, to be replaced by `ui/Touchable` in 2.0.0 -## [1.13.3] - 2017-01-16 +## [1.13.3] - 2018-01-16 No significant changes. diff --git a/packages/ui/ViewManager/TransitionGroup.js b/packages/ui/ViewManager/TransitionGroup.js index 7e33020f42..6b1509c08a 100644 --- a/packages/ui/ViewManager/TransitionGroup.js +++ b/packages/ui/ViewManager/TransitionGroup.js @@ -5,7 +5,7 @@ // Using string refs from the source code of ReactTransitionGroup /* eslint-disable react/no-string-refs */ -import {childrenEquals} from '@enact/core/util'; +import {privateChildrenEquals as childrenEquals} from '@enact/core/util'; import compose from 'ramda/src/compose'; import eqBy from 'ramda/src/eqBy'; import findIndex from 'ramda/src/findIndex'; diff --git a/packages/ui/internal/Pure/Pure.js b/packages/ui/internal/Pure/Pure.js index 6a9d877bb7..a3d0bb0ed8 100644 --- a/packages/ui/internal/Pure/Pure.js +++ b/packages/ui/internal/Pure/Pure.js @@ -6,7 +6,6 @@ * @private */ -import {childrenEquals} from '@enact/core/util'; import hoc from '@enact/core/hoc'; import React from 'react'; @@ -24,15 +23,13 @@ const defaultConfig = { * @memberof ui/internal/Pure.Pure.defaultConfig */ propComparators: { - '*': (a, b) => a === b, - children: childrenEquals + '*': (a, b) => a === b } }; /** * Implements `shouldComponentUpdate` based on property change determination. By default, props are - * compared for strict equality except children which are compared using - * {@link core/util.childrenEquals}. + * shallowly compared for strict equality * * Custom comparators can be provided via the `propComparators` config property which accepts an * object mapping property names to comparator functions. To override the default comparator, use diff --git a/packages/ui/package.json b/packages/ui/package.json index bfcbf78fe6..7480b310ef 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@enact/ui", - "version": "1.14.0", + "version": "1.15.0", "description": "A collection of simplified unstyled cross-platform UI components for Enact", "main": "index.js", "scripts": { @@ -28,7 +28,7 @@ "extends": "enact/strict" }, "dependencies": { - "@enact/core": "^1.14.0", + "@enact/core": "^1.15.0", "invariant": "~2.2.2", "prop-types": "~15.6.0", "ramda": "~0.24.1", diff --git a/packages/webos/CHANGELOG.md b/packages/webos/CHANGELOG.md index ecb10ab3f3..3ee527b79e 100644 --- a/packages/webos/CHANGELOG.md +++ b/packages/webos/CHANGELOG.md @@ -2,11 +2,15 @@ The following is a curated list of changes in the Enact webos module, newest changes on the top. -## [1.14.0] - 2017-02-23 +## [1.15.0] - 2018-02-28 No significant changes. -## [1.13.3] - 2017-01-16 +## [1.14.0] - 2018-02-23 + +No significant changes. + +## [1.13.3] - 2018-01-16 No significant changes. @@ -24,9 +28,7 @@ No significant changes. ## [1.12.2] - 2017-11-15 -### Fixed - -- `ui/Transition` to revert 1.12.1 change to support `clip` transition-type directions and endering optimizations +No significant changes. ## [1.12.1] - 2017-11-07 diff --git a/packages/webos/package.json b/packages/webos/package.json index d5e70df440..674a529918 100644 --- a/packages/webos/package.json +++ b/packages/webos/package.json @@ -1,6 +1,6 @@ { "name": "@enact/webos", - "version": "1.14.0", + "version": "1.15.0", "description": "webOS support library", "main": "index.js", "scripts": {