@react-mdc/base
Advanced tools
Comparing version 0.1.2 to 0.1.3
@@ -1,31 +0,7 @@ | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _wrapper = require('./wrapper'); | ||
Object.defineProperty(exports, 'Wrapper', { | ||
enumerable: true, | ||
get: function get() { | ||
return _wrapper.Wrapper; | ||
} | ||
}); | ||
Object.defineProperty(exports, 'PropWrapper', { | ||
enumerable: true, | ||
get: function get() { | ||
return _wrapper.PropWrapper; | ||
} | ||
}); | ||
var _nativeDomAdapter = require('./native-dom-adapter'); | ||
Object.defineProperty(exports, 'NativeDOMAdapter', { | ||
enumerable: true, | ||
get: function get() { | ||
return _interopRequireDefault(_nativeDomAdapter).default; | ||
} | ||
}); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var native_dom_adapter_1 = require("./native-dom-adapter"); | ||
exports.NativeDOMAdapter = native_dom_adapter_1.default; | ||
var meta_1 = require("./meta"); | ||
exports.Meta = meta_1.default; | ||
//# sourceMappingURL=index.js.map |
@@ -1,35 +0,17 @@ | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); | ||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
var _react = require('react'); | ||
var _react2 = _interopRequireDefault(_react); | ||
var _reactDom = require('react-dom'); | ||
var _reactDom2 = _interopRequireDefault(_reactDom); | ||
var _lodash = require('lodash'); | ||
var _lodash2 = _interopRequireDefault(_lodash); | ||
var _immutable = require('immutable'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } | ||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | ||
"use strict"; | ||
var __extends = (this && this.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var immutable_1 = require("immutable"); | ||
var forEach = require("lodash.foreach"); | ||
var React = require("react"); | ||
var ReactDOM = require("react-dom"); | ||
/** | ||
@@ -39,215 +21,165 @@ * High order components that adds native DOM properties | ||
*/ | ||
var NativeDOMAdapter = function (_React$Component) { | ||
_inherits(NativeDOMAdapter, _React$Component); | ||
function NativeDOMAdapter() { | ||
_classCallCheck(this, NativeDOMAdapter); | ||
return _possibleConstructorReturn(this, (NativeDOMAdapter.__proto__ || Object.getPrototypeOf(NativeDOMAdapter)).apply(this, arguments)); | ||
} | ||
_createClass(NativeDOMAdapter, [{ | ||
key: 'getDOMNode', | ||
// Get root DOM node of element | ||
// Last known DOM node | ||
value: function getDOMNode() { | ||
return _reactDom2.default.findDOMNode(this); | ||
var NativeDOMAdapter = (function (_super) { | ||
__extends(NativeDOMAdapter, _super); | ||
function NativeDOMAdapter() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
// Manage CSS variables | ||
}, { | ||
key: 'removeCssVariables', | ||
value: function removeCssVariables(dom, toRemove) { | ||
_lodash2.default.each(toRemove, function (value, key) { | ||
if (dom.style.getPropertyValue(key) === value) { | ||
dom.style.removeProperty(key); | ||
NativeDOMAdapter.prototype.render = function () { | ||
return this.props.children || null; | ||
}; | ||
NativeDOMAdapter.prototype.componentDidMount = function () { | ||
var props = this.internalProps(this.props); | ||
this.lastDOMNode = this.getDOMNode(); | ||
this.addCssVariables(this.lastDOMNode, props.cssVariables); | ||
this.addEventListeners(this.lastDOMNode, props.eventListeners); | ||
this.addAttributes(this.lastDOMNode, props.attributes); | ||
}; | ||
NativeDOMAdapter.prototype.componentDidUpdate = function (origPrevProps) { | ||
var props = this.internalProps(this.props); | ||
var prevProps = this.internalProps(origPrevProps); | ||
var node = this.getDOMNode(); | ||
if (node !== this.lastDOMNode) { | ||
// Remove from previous DOM node | ||
this.removeCssVariables(this.lastDOMNode, prevProps.cssVariables); | ||
this.removeEventListeners(this.lastDOMNode, prevProps.eventListeners); | ||
this.removeAttributes(this.lastDOMNode, props.attributes); | ||
// Add to new DOM node | ||
this.addCssVariables(node, props.cssVariables); | ||
this.addEventListeners(node, props.eventListeners); | ||
this.addAttributes(node, props.attributes); | ||
// Update current DOM node | ||
this.lastDOMNode = node; | ||
} | ||
}); | ||
} | ||
}, { | ||
key: 'addCssVariables', | ||
value: function addCssVariables(dom, toAdd) { | ||
_lodash2.default.each(toAdd, function (value, key) { | ||
if (dom.style.getPropertyValue(key) !== value) { | ||
dom.style.setProperty(key, value); | ||
else { | ||
// Update | ||
this.updateCssVariables(node, prevProps.cssVariables, props.cssVariables); | ||
this.updateEventListeners(node, prevProps.eventListeners, props.eventListeners); | ||
this.updateAttributes(node, prevProps.attributes, props.attributes); | ||
} | ||
}); | ||
} | ||
}, { | ||
key: 'updateCssVariables', | ||
value: function updateCssVariables(dom, prev, next) { | ||
var toRemove = {}; | ||
var toAdd = {}; | ||
_lodash2.default.each(prev, function (value, key) { | ||
if (next[key] !== value) { | ||
toRemove[key] = value; | ||
} | ||
}); | ||
_lodash2.default.each(next, function (value, key) { | ||
if (prev[key] !== value) { | ||
toAdd[key] = value; | ||
} | ||
}); | ||
this.removeCssVariables(dom, toRemove); | ||
this.addCssVariables(dom, toAdd); | ||
} | ||
// Manage event listeners | ||
}, { | ||
key: 'removeEventListeners', | ||
value: function removeEventListeners(dom, toRemove) { | ||
_lodash2.default.each(toRemove, function (item) { | ||
var _item = _slicedToArray(item, 2), | ||
event = _item[0], | ||
listener = _item[1]; | ||
dom.removeEventListener(event, listener); | ||
}); | ||
} | ||
}, { | ||
key: 'addEventListeners', | ||
value: function addEventListeners(dom, toAdd) { | ||
_lodash2.default.each(toAdd, function (item) { | ||
var _item2 = _slicedToArray(item, 2), | ||
event = _item2[0], | ||
listener = _item2[1]; | ||
dom.addEventListener(event, listener); | ||
}); | ||
} | ||
}, { | ||
key: 'updateEventListeners', | ||
value: function updateEventListeners(dom, prev, next) { | ||
var _this2 = this; | ||
var prevKeys = Object.keys(prev); | ||
var nextKeys = Object.keys(next); | ||
var allKeys = _immutable.OrderedSet.of.apply(_immutable.OrderedSet, _toConsumableArray(nextKeys.concat(prevKeys))).toJS(); | ||
// Find listeners to add / remove with order preservation | ||
var diff = allKeys.map(function (event) { | ||
var prevListeners = prev[event] || []; | ||
var nextListeners = next[event] || []; | ||
var diffStart = void 0; | ||
for (diffStart = 0; diffStart < Math.min(prevListeners.length, nextListeners.length); diffStart++) { | ||
if (prevListeners[diffStart] !== nextListeners[diffStart]) { | ||
break; | ||
} | ||
} | ||
}; | ||
NativeDOMAdapter.prototype.internalProps = function (props) { | ||
return { | ||
event: event, | ||
toRemove: prevListeners.slice(diffStart), | ||
toAdd: nextListeners.slice(diffStart) | ||
cssVariables: props.cssVariables, | ||
eventListeners: props.eventListeners, | ||
attributes: props.attributes, | ||
children: props.children, | ||
}; | ||
}); | ||
_lodash2.default.each(diff, function (_ref) { | ||
var event = _ref.event, | ||
toRemove = _ref.toRemove, | ||
toAdd = _ref.toAdd; | ||
toRemove = toRemove.map(function (x) { | ||
return [event, x]; | ||
}; | ||
// Get root DOM node of element | ||
NativeDOMAdapter.prototype.getDOMNode = function () { | ||
return ReactDOM.findDOMNode(this); | ||
}; | ||
// Manage CSS variables | ||
NativeDOMAdapter.prototype.removeCssVariables = function (dom, toRemove) { | ||
forEach(toRemove, function (value, key) { | ||
if (dom.style.getPropertyValue(key) === value) { | ||
dom.style.removeProperty(key); | ||
} | ||
}); | ||
toAdd = toAdd.map(function (x) { | ||
return [event, x]; | ||
}; | ||
NativeDOMAdapter.prototype.addCssVariables = function (dom, toAdd) { | ||
forEach(toAdd, function (value, key) { | ||
if (dom.style.getPropertyValue(key) !== value) { | ||
dom.style.setProperty(key, value); | ||
} | ||
}); | ||
_this2.removeEventListeners(dom, toRemove); | ||
_this2.addEventListeners(dom, toAdd); | ||
}); | ||
} | ||
}; | ||
NativeDOMAdapter.prototype.updateCssVariables = function (dom, prev, next) { | ||
var toRemove = {}; | ||
var toAdd = {}; | ||
forEach(prev, function (value, key) { | ||
if (next[key] !== value) { | ||
toRemove[key] = value; | ||
} | ||
}); | ||
forEach(next, function (value, key) { | ||
if (prev[key] !== value) { | ||
toAdd[key] = value; | ||
} | ||
}); | ||
this.removeCssVariables(dom, toRemove); | ||
this.addCssVariables(dom, toAdd); | ||
}; | ||
// Manage event listeners | ||
NativeDOMAdapter.prototype.removeEventListeners = function (dom, toRemove) { | ||
forEach(toRemove, function (item) { | ||
var event = item[0], listener = item[1]; | ||
dom.removeEventListener(event, listener); | ||
}); | ||
}; | ||
NativeDOMAdapter.prototype.addEventListeners = function (dom, toAdd) { | ||
forEach(toAdd, function (item) { | ||
var event = item[0], listener = item[1]; | ||
dom.addEventListener(event, listener); | ||
}); | ||
}; | ||
NativeDOMAdapter.prototype.updateEventListeners = function (dom, prev, next) { | ||
var _this = this; | ||
var prevKeys = Object.keys(prev); | ||
var nextKeys = Object.keys(next); | ||
var allKeys = immutable_1.OrderedSet | ||
.of.apply(immutable_1.OrderedSet, nextKeys.concat(prevKeys)).toJS(); | ||
// Find listeners to add / remove with order preservation | ||
var diff = allKeys.map(function (event) { | ||
var prevListeners = prev[event] || []; | ||
var nextListeners = next[event] || []; | ||
var diffStart; | ||
for (diffStart = 0; diffStart < Math.min(prevListeners.length, nextListeners.length); diffStart++) { | ||
if (prevListeners[diffStart] !== nextListeners[diffStart]) { | ||
break; | ||
} | ||
} | ||
return { | ||
event: event, | ||
toRemove: prevListeners.slice(diffStart), | ||
toAdd: nextListeners.slice(diffStart), | ||
}; | ||
}); | ||
forEach(diff, function (_a) { | ||
var event = _a.event, toRemove = _a.toRemove, toAdd = _a.toAdd; | ||
toRemove = toRemove.map(function (x) { return [event, x]; }); | ||
toAdd = toAdd.map(function (x) { return [event, x]; }); | ||
_this.removeEventListeners(dom, toRemove); | ||
_this.addEventListeners(dom, toAdd); | ||
}); | ||
}; | ||
// Manage attributes | ||
}, { | ||
key: 'removeAttributes', | ||
value: function removeAttributes(dom, toRemove) { | ||
_lodash2.default.each(toRemove, function (value, key) { | ||
if (dom.getAttribute(key) === value) { | ||
dom.removeAttribute(key); | ||
} | ||
}); | ||
} | ||
}, { | ||
key: 'addAttributes', | ||
value: function addAttributes(dom, toAdd) { | ||
_lodash2.default.each(toAdd, function (value, key) { | ||
if (dom.getAttribute(key) !== value) { | ||
dom.setAttribute(key, value); | ||
} | ||
}); | ||
} | ||
}, { | ||
key: 'updateAttributes', | ||
value: function updateAttributes(dom, prev, next) { | ||
var toRemove = {}; | ||
var toAdd = {}; | ||
_lodash2.default.each(prev, function (value, key) { | ||
if (next[key] !== value) { | ||
toRemove[key] = value; | ||
} | ||
}); | ||
_lodash2.default.each(next, function (value, key) { | ||
if (prev[key] !== value) { | ||
toAdd[key] = value; | ||
} | ||
}); | ||
this.removeAttributes(dom, toRemove); | ||
this.addAttributes(dom, toAdd); | ||
} | ||
}, { | ||
key: 'componentDidMount', | ||
value: function componentDidMount() { | ||
this.lastDOMNode = this.getDOMNode(); | ||
this.addCssVariables(this.lastDOMNode, this.props.cssVariables); | ||
this.addEventListeners(this.lastDOMNode, this.props.eventListeners); | ||
this.addAttributes(this.lastDOMNode, this.props.attributes); | ||
} | ||
}, { | ||
key: 'componentDidUpdate', | ||
value: function componentDidUpdate(prevProps) { | ||
var node = this.getDOMNode(); | ||
if (node !== this.lastDOMNode) { | ||
// Remove from previous DOM node | ||
this.removeCssVariables(this.lastDOMNode, prevProps.cssVariables); | ||
this.removeEventListeners(this.lastDOMNode, prevProps.eventListeners); | ||
this.removeAttributes(this.lastDOMNode, this.props.attributes); | ||
// Add to new DOM node | ||
this.addCssVariables(node, this.props.cssVariables); | ||
this.addEventListeners(node, this.props.eventListeners); | ||
this.addAttributes(node, this.props.attributes); | ||
// Update current DOM node | ||
this.lastDOMNode = node; | ||
} else { | ||
// Update | ||
this.updateCssVariables(node, prevProps.cssVariables, this.props.cssVariables); | ||
this.updateEventListeners(node, prevProps.eventListeners, this.props.eventListeners); | ||
this.updateAttributes(node, prevProps.attributes, this.props.attributes); | ||
} | ||
} | ||
}, { | ||
key: 'render', | ||
value: function render() { | ||
if (this.props.children != null) { | ||
return this.props.children; | ||
} else { | ||
throw Error('Child were not given'); | ||
} | ||
} | ||
}]); | ||
return NativeDOMAdapter; | ||
}(_react2.default.Component); | ||
NativeDOMAdapter.prototype.removeAttributes = function (dom, toRemove) { | ||
forEach(toRemove, function (value, key) { | ||
if (dom.getAttribute(key) === value) { | ||
dom.removeAttribute(key); | ||
} | ||
}); | ||
}; | ||
NativeDOMAdapter.prototype.addAttributes = function (dom, toAdd) { | ||
forEach(toAdd, function (value, key) { | ||
if (dom.getAttribute(key) !== value) { | ||
dom.setAttribute(key, value); | ||
} | ||
}); | ||
}; | ||
NativeDOMAdapter.prototype.updateAttributes = function (dom, prev, next) { | ||
var toRemove = {}; | ||
var toAdd = {}; | ||
forEach(prev, function (value, key) { | ||
if (next[key] !== value) { | ||
toRemove[key] = value; | ||
} | ||
}); | ||
forEach(next, function (value, key) { | ||
if (prev[key] !== value) { | ||
toAdd[key] = value; | ||
} | ||
}); | ||
this.removeAttributes(dom, toRemove); | ||
this.addAttributes(dom, toAdd); | ||
}; | ||
return NativeDOMAdapter; | ||
}(React.Component)); | ||
NativeDOMAdapter.defaultProps = { | ||
cssVariables: {}, | ||
eventListeners: {}, | ||
attributes: {} | ||
cssVariables: {}, | ||
eventListeners: {}, | ||
attributes: {}, | ||
}; | ||
exports.default = NativeDOMAdapter; | ||
exports.default = NativeDOMAdapter; | ||
//# sourceMappingURL=native-dom-adapter.js.map |
@@ -1,7 +0,3 @@ | ||
'use strict'; | ||
var _react = require('react'); | ||
var _react2 = _interopRequireDefault(_react); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
//# sourceMappingURL=types.js.map |
@@ -1,8 +0,3 @@ | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports. | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
/** | ||
@@ -22,21 +17,28 @@ * Decorate event handler function with default handler. | ||
*/ | ||
eventHandlerDecorator = eventHandlerDecorator; | ||
function eventHandlerDecorator(defaultHandler) { | ||
return function (handler) { | ||
return function (evt) { | ||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
if (handler != null) { | ||
handler.apply(undefined, [evt].concat(args)); | ||
} | ||
if (!evt.isDefaultPrevented()) { | ||
defaultHandler.apply(undefined, [evt].concat(args)); | ||
} | ||
}; | ||
}; | ||
return function (handler) { return function (evt) { | ||
if (handler != null) { | ||
handler(evt); | ||
} | ||
if (!evt.isDefaultPrevented()) { | ||
defaultHandler(evt); | ||
} | ||
}; }; | ||
} | ||
exports.eventHandlerDecorator = eventHandlerDecorator; | ||
/** | ||
* Common utilities | ||
*/ | ||
* Array inclusion tester | ||
*/ | ||
function includes(array, item, predicate) { | ||
if (predicate === void 0) { predicate = function (x, y) { return x === y; }; } | ||
// tslint:disable:prefer-for-of | ||
for (var i = 0; i < array.length; i++) { | ||
var itemAtIndex = array[i]; | ||
if (predicate(item, itemAtIndex)) { | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
exports.includes = includes; | ||
//# sourceMappingURL=util.js.map |
{ | ||
"name": "@react-mdc/base", | ||
"description": "Core library of @react-mdc components", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"license": "MIT", | ||
"main": "lib/index", | ||
"typings": "lib/index.d.ts", | ||
"repository": { | ||
@@ -12,7 +13,24 @@ "type": "git", | ||
"dependencies": { | ||
"@types/classnames": "0.0.32", | ||
"@types/react": "^15.0.18", | ||
"@types/react-dom": "^0.14.23", | ||
"classnames": "^2.2.5", | ||
"immutable": "^3.8.1", | ||
"lodash.foreach": "^4.5.0", | ||
"react": "^15.4.2", | ||
"react-dom": "^15.4.2" | ||
}, | ||
"devDependencies": { | ||
"shelljs": "^0.7.7", | ||
"shx": "^0.2.2", | ||
"tslint": "^4.5.1", | ||
"tslint-react": "^2.5.0", | ||
"typescript": "^2.2.1" | ||
}, | ||
"scripts": { | ||
"build": "tsc", | ||
"watch": "tsc --watch", | ||
"prepublish": "npm run build", | ||
"clean": "shx rm -rf lib/" | ||
} | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
39745
22
789
8
5
1
+ Added@types/classnames@0.0.32
+ Added@types/react@^15.0.18
+ Added@types/react-dom@^0.14.23
+ Addedlodash.foreach@^4.5.0
+ Added@types/classnames@0.0.32(transitive)
+ Added@types/react@15.7.30(transitive)
+ Added@types/react-dom@0.14.23(transitive)
+ Addedlodash.foreach@4.5.0(transitive)