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 ? (
-
- ) : 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": {