react-photo-gallery
Advanced tools
Comparing version 3.0.2 to 3.0.3
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"react-photo-gallery":[function(require,module,exports){ | ||
'use strict'; | ||
Object.defineProperty(exports, '__esModule', { | ||
value: true | ||
}); | ||
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 _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } | ||
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; } | ||
var _react = require('react'); | ||
@@ -18,116 +30,148 @@ | ||
var Gallery = _react2['default'].createClass({ | ||
displayName: 'Gallery', | ||
propTypes: { | ||
photos: _react2['default'].PropTypes.arrayOf(_react2['default'].PropTypes.shape({ | ||
src: _react2['default'].PropTypes.string.isRequired, | ||
width: _react2['default'].PropTypes.number.isRequired, | ||
height: _react2['default'].PropTypes.number.isRequired, | ||
aspectRatio: _react2['default'].PropTypes.number.isRequired, | ||
lightboxImage: _react2['default'].PropTypes.object.isRequired | ||
})).isRequired | ||
}, | ||
getInitialState: function getInitialState() { | ||
return { | ||
var Gallery = (function (_React$Component) { | ||
_inherits(Gallery, _React$Component); | ||
function Gallery() { | ||
_classCallCheck(this, Gallery); | ||
_get(Object.getPrototypeOf(Gallery.prototype), 'constructor', this).call(this); | ||
this.state = { | ||
currentImage: 0, | ||
containerWidth: 0 | ||
}; | ||
}, | ||
componentDidMount: function componentDidMount() { | ||
this.setState({ containerWidth: Math.floor(_reactDom2['default'].findDOMNode(this).clientWidth) }); | ||
window.addEventListener('resize', this.handleResize); | ||
}, | ||
componentDidUpdate: function componentDidUpdate() { | ||
if (_reactDom2['default'].findDOMNode(this).clientWidth !== this.state.containerWidth) { | ||
this.handleResize = this.handleResize.bind(this); | ||
this.closeLightbox = this.closeLightbox.bind(this); | ||
this.gotoNext = this.gotoNext.bind(this); | ||
this.gotoPrevious = this.gotoPrevious.bind(this); | ||
this.openLightbox = this.openLightbox.bind(this); | ||
} | ||
_createClass(Gallery, [{ | ||
key: 'componentDidMount', | ||
value: function componentDidMount() { | ||
this.setState({ containerWidth: Math.floor(_reactDom2['default'].findDOMNode(this).clientWidth) }); | ||
window.addEventListener('resize', this.handleResize); | ||
} | ||
}, | ||
handleResize: function handleResize(e) { | ||
this.setState({ containerWidth: Math.floor(_reactDom2['default'].findDOMNode(this).clientWidth) }); | ||
}, | ||
openLightbox: function openLightbox(index, event) { | ||
event.preventDefault(); | ||
this.setState({ | ||
currentImage: index, | ||
lightboxIsOpen: true | ||
}); | ||
}, | ||
closeLightbox: function closeLightbox() { | ||
this.setState({ | ||
currentImage: 0, | ||
lightboxIsOpen: false | ||
}); | ||
}, | ||
gotoPrevious: function gotoPrevious() { | ||
this.setState({ | ||
currentImage: this.state.currentImage - 1 | ||
}); | ||
}, | ||
gotoNext: function gotoNext() { | ||
this.setState({ | ||
currentImage: this.state.currentImage + 1 | ||
}); | ||
}, | ||
render: function render() { | ||
var rowLimit = 1, | ||
photoPreviewNodes = []; | ||
if (this.state.containerWidth >= 480) { | ||
rowLimit = 2; | ||
}, { | ||
key: 'componentDidUpdate', | ||
value: function componentDidUpdate() { | ||
if (_reactDom2['default'].findDOMNode(this).clientWidth !== this.state.containerWidth) { | ||
this.setState({ containerWidth: Math.floor(_reactDom2['default'].findDOMNode(this).clientWidth) }); | ||
} | ||
} | ||
if (this.state.containerWidth >= 1024) { | ||
rowLimit = 3; | ||
}, { | ||
key: 'handleResize', | ||
value: function handleResize(e) { | ||
this.setState({ containerWidth: Math.floor(_reactDom2['default'].findDOMNode(this).clientWidth) }); | ||
} | ||
var contWidth = this.state.containerWidth - rowLimit * 4; /* 4px for margin around each image*/ | ||
contWidth = Math.floor(contWidth - 2); // add some padding to prevent layout prob | ||
var lightboxImages = []; | ||
for (var i = 0; i < this.props.photos.length; i += rowLimit) { | ||
var rowItems = []; | ||
// loop thru each set of rowLimit num | ||
// eg. if rowLimit is 3 it will loop thru 0,1,2, then 3,4,5 to perform calculations for the particular set | ||
var aspectRatio = 0, | ||
totalAr = 0, | ||
commonHeight = 0; | ||
for (var j = i; j < i + rowLimit; j++) { | ||
if (j == this.props.photos.length) { | ||
break; | ||
} | ||
totalAr += this.props.photos[j].aspectRatio; | ||
}, { | ||
key: 'openLightbox', | ||
value: function openLightbox(index, event) { | ||
event.preventDefault(); | ||
this.setState({ | ||
currentImage: index, | ||
lightboxIsOpen: true | ||
}); | ||
} | ||
}, { | ||
key: 'closeLightbox', | ||
value: function closeLightbox() { | ||
this.setState({ | ||
currentImage: 0, | ||
lightboxIsOpen: false | ||
}); | ||
} | ||
}, { | ||
key: 'gotoPrevious', | ||
value: function gotoPrevious() { | ||
this.setState({ | ||
currentImage: this.state.currentImage - 1 | ||
}); | ||
} | ||
}, { | ||
key: 'gotoNext', | ||
value: function gotoNext() { | ||
this.setState({ | ||
currentImage: this.state.currentImage + 1 | ||
}); | ||
} | ||
}, { | ||
key: 'render', | ||
value: function render() { | ||
var rowLimit = 1, | ||
photoPreviewNodes = []; | ||
if (this.state.containerWidth >= 480) { | ||
rowLimit = 2; | ||
} | ||
commonHeight = contWidth / totalAr; | ||
// run thru the same set of items again to give the common height | ||
for (var k = i; k < i + rowLimit; k++) { | ||
if (k == this.props.photos.length) { | ||
break; | ||
if (this.state.containerWidth >= 1024) { | ||
rowLimit = 3; | ||
} | ||
var contWidth = this.state.containerWidth - rowLimit * 4; /* 4px for margin around each image*/ | ||
contWidth = Math.floor(contWidth - 2); // add some padding to prevent layout prob | ||
var lightboxImages = []; | ||
for (var i = 0; i < this.props.photos.length; i += rowLimit) { | ||
var rowItems = []; | ||
// loop thru each set of rowLimit num | ||
// eg. if rowLimit is 3 it will loop thru 0,1,2, then 3,4,5 to perform calculations for the particular set | ||
var aspectRatio = 0, | ||
totalAr = 0, | ||
commonHeight = 0; | ||
for (var j = i; j < i + rowLimit; j++) { | ||
if (j == this.props.photos.length) { | ||
break; | ||
} | ||
totalAr += this.props.photos[j].aspectRatio; | ||
} | ||
lightboxImages.push(this.props.photos[k].lightboxImage); | ||
var src = this.props.photos[k].src; | ||
photoPreviewNodes.push(_react2['default'].createElement( | ||
'div', | ||
{ key: k, style: style }, | ||
_react2['default'].createElement( | ||
'a', | ||
{ href: '#', className: k, onClick: this.openLightbox.bind(this, k) }, | ||
_react2['default'].createElement('img', { src: src, style: { display: 'block', border: 0 }, height: commonHeight, width: commonHeight * this.props.photos[k].aspectRatio, alt: '' }) | ||
) | ||
)); | ||
commonHeight = contWidth / totalAr; | ||
// run thru the same set of items again to give the common height | ||
for (var k = i; k < i + rowLimit; k++) { | ||
if (k == this.props.photos.length) { | ||
break; | ||
} | ||
lightboxImages.push(this.props.photos[k].lightboxImage); | ||
var src = this.props.photos[k].src; | ||
photoPreviewNodes.push(_react2['default'].createElement( | ||
'div', | ||
{ key: k, style: style }, | ||
_react2['default'].createElement( | ||
'a', | ||
{ href: '#', className: k, onClick: this.openLightbox.bind(this, k) }, | ||
_react2['default'].createElement('img', { src: src, style: { display: 'block', border: 0 }, height: commonHeight, width: commonHeight * this.props.photos[k].aspectRatio, alt: '' }) | ||
) | ||
)); | ||
} | ||
} | ||
return _react2['default'].createElement( | ||
'div', | ||
{ id: 'Gallery', className: 'clearfix' }, | ||
photoPreviewNodes, | ||
_react2['default'].createElement(_reactImages2['default'], { | ||
currentImage: this.state.currentImage, | ||
images: lightboxImages, | ||
isOpen: this.state.lightboxIsOpen, | ||
onClose: this.closeLightbox, | ||
onClickPrev: this.gotoPrevious, | ||
onClickNext: this.gotoNext, | ||
width: 1600, | ||
height: 1600, | ||
styles: this.props.lightboxStyles | ||
}) | ||
); | ||
} | ||
return _react2['default'].createElement( | ||
'div', | ||
{ id: 'Gallery', className: 'clearfix' }, | ||
photoPreviewNodes, | ||
_react2['default'].createElement(_reactImages2['default'], { | ||
currentImage: this.state.currentImage, | ||
images: lightboxImages, | ||
isOpen: this.state.lightboxIsOpen, | ||
onClose: this.closeLightbox, | ||
onClickPrev: this.gotoPrevious, | ||
onClickNext: this.gotoNext, | ||
width: 1600, | ||
height: 1600, | ||
styles: this.props.lightboxStyles | ||
}) | ||
); | ||
} | ||
}); | ||
}]); | ||
return Gallery; | ||
})(_react2['default'].Component); | ||
; | ||
Gallery.displayName = 'Gallery'; | ||
Gallery.propTypes = { | ||
photos: _react2['default'].PropTypes.arrayOf(_react2['default'].PropTypes.shape({ | ||
src: _react2['default'].PropTypes.string.isRequired, | ||
width: _react2['default'].PropTypes.number.isRequired, | ||
height: _react2['default'].PropTypes.number.isRequired, | ||
aspectRatio: _react2['default'].PropTypes.number.isRequired, | ||
lightboxImage: _react2['default'].PropTypes.object.isRequired | ||
})).isRequired | ||
}; | ||
// Gallery image style | ||
@@ -141,5 +185,6 @@ var style = { | ||
module.exports = Gallery; | ||
exports['default'] = Gallery; | ||
module.exports = exports['default']; | ||
},{"react":undefined,"react-dom":undefined,"react-images":undefined}]},{},[]) | ||
//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9yZWFjdC1jb21wb25lbnQtZ3VscC10YXNrcy9ub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnJvd3Nlci1wYWNrL19wcmVsdWRlLmpzIiwiL1VzZXJzL2hlbGVuaWEvcmVhY3QtcGhvdG8tZ2FsbGVyeS9zcmMvR2FsbGVyeS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7cUJDQWtCLE9BQU87Ozs7d0JBQ0osV0FBVzs7OzsyQkFDWCxjQUFjOzs7O0FBRW5DLElBQUksT0FBTyxHQUFHLG1CQUFNLFdBQVcsQ0FBQztBQUM1QixlQUFXLEVBQUUsU0FBUztBQUN0QixhQUFTLEVBQUM7QUFDTixjQUFNLEVBQUUsbUJBQU0sU0FBUyxDQUFDLE9BQU8sQ0FDM0IsbUJBQU0sU0FBUyxDQUFDLEtBQUssQ0FBQztBQUNsQixlQUFHLEVBQUUsbUJBQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0FBQ3RDLGlCQUFLLEVBQUUsbUJBQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0FBQ3hDLGtCQUFNLEVBQUUsbUJBQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0FBQ3pDLHVCQUFXLEVBQUUsbUJBQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0FBQzlDLHlCQUFhLEVBQUUsbUJBQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1NBQ25ELENBQUMsQ0FDTCxDQUFDLFVBQVU7S0FDZjtBQUNELG1CQUFlLEVBQUUsMkJBQVU7QUFDdkIsZUFBTztBQUNWLHdCQUFZLEVBQUUsQ0FBQztBQUNmLDBCQUFjLEVBQUUsQ0FBQztTQUNwQixDQUFBO0tBQ0c7QUFDRCxxQkFBaUIsRUFBRSw2QkFBVTtBQUNoQyxZQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQVMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUMsQ0FBQTtB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QUMsVUFBVTtZQUNqQyxpQkFBaUI7WUFDbEI7QUFDViw0QkFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxBQUFDO0FBQ3hCLHNCQUFNLEVBQUUsY0FBYyxBQUFDO0FBQ3ZCLHNCQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEFBQUM7QUFDbEMsdUJBQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxBQUFDO0FBQzFDLDJCQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksQUFBQztBQUMvQiwyQkFBVyxFQUFFLElBQUksQ0FBQyxRQUFRLEFBQUM7QUFDYixxQkFBSyxFQUFFLElBQUksQUFBQztBQUNaLHNCQUFNLEVBQUUsSUFBSSxBQUFDO0FBQ2Isc0JBQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQUFBQztjQUNwQztTQUNBLENBQ1I7S0FDTDtDQUNKLENBQUMsQ0FBQzs7QUFFSCxJQUFNLEtBQUssR0FBRztBQUNYLFdBQU8sRUFBRSxPQUFPO0FBQ2hCLFVBQU0sRUFBRSxDQUFDO0FBQ1QsbUJBQWUsRUFBQyxTQUFTO0FBQ3pCLFNBQUssRUFBRSxNQUFNO0NBQ2YsQ0FBQTs7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgTGlnaHRib3ggZnJvbSAncmVhY3QtaW1hZ2VzJztcblxudmFyIEdhbGxlcnkgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdHYWxsZXJ5JyxcbiAgICBwcm9wVHlwZXM6e1xuICAgICAgICBwaG90b3M6IFJlYWN0LlByb3BUeXBlcy5hcnJheU9mKFxuICAgICAgICAgICAgUmVhY3QuUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgICAgICAgICBzcmM6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICB3aWR0aDogUmVhY3QuUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgICAgICAgICAgICAgIGhlaWdodDogUmVhY3QuUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgbGlnaHRib3hJbWFnZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gICAgICAgICAgICB9KVxuICAgICAgICApLmlzUmVxdWlyZWQsXG4gICAgfSxcbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uKCl7XG4gICAgICAgIHJldHVybiB7XG5cdCAgICBjdXJyZW50SW1hZ2U6IDAsXG5cdCAgICBjb250YWluZXJXaWR0aDogMFxuXHR9XG4gICAgfSxcbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24oKXtcblx0dGhpcy5zZXRTdGF0ZSh7Y29udGFpbmVyV2lkdGg6IE1hdGguZmxvb3IoUmVhY3RET00uZmluZERPTU5vZGUodGhpcykuY2xpZW50V2lkdGgpfSlcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuaGFuZGxlUmVzaXplKTtcbiAgICB9LFxuICAgIGNvbXBvbmVudERpZFVwZGF0ZTogZnVuY3Rpb24oKXtcblx0aWYgKFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpLmNsaWVudFdpZHRoICE9PSB0aGlzLnN0YXRlLmNvbnRhaW5lcldpZHRoKXtcblx0ICAgIHRoaXMuc2V0U3RhdGUoe2NvbnRhaW5lcldpZHRoOiBNYXRoLmZsb29yKFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpLmNsaWVudFdpZHRoKX0pO1xuXHR9XG4gICAgfSxcbiAgICBoYW5kbGVSZXNpemU6IGZ1bmN0aW9uKGUpe1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtjb250YWluZXJXaWR0aDogTWF0aC5mbG9vcihSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKS5jbGllbnRXaWR0aCl9KTtcbiAgICB9LFxuICAgIG9wZW5MaWdodGJveCAoaW5kZXgsIGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuXHQgICAgY3VycmVudEltYWdlOiBpbmRleCxcbiAgICAgICAgICAgIGxpZ2h0Ym94SXNPcGVuOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgY2xvc2VMaWdodGJveCAoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuXHQgICAgY3VycmVudEltYWdlOiAwLFxuICAgICAgICAgICAgbGlnaHRib3hJc09wZW46IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGdvdG9QcmV2aW91cyAoKSB7XG5cdHRoaXMuc2V0U3RhdGUoe1xuXHQgICAgY3VycmVudEltYWdlOiB0aGlzLnN0YXRlLmN1cnJlbnRJbWFnZSAtIDEsXG5cdH0pO1xuICAgIH0sXG4gICAgZ290b05leHQgKCkge1xuXHR0aGlzLnNldFN0YXRlKHtcblx0ICAgIGN1cnJlbnRJbWFnZTogdGhpcy5zdGF0ZS5jdXJyZW50SW1hZ2UgKyAxLFxuXHR9KTtcbiAgICB9LFxuICAgIHJlbmRlcjogZnVuY3Rpb24oKXtcbiAgICAgICAgdmFyIHJvd0xpbWl0ID0gMSxcbiAgICAgICAgICAgIHBob3RvUHJldmlld05vZGVzID0gW107XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmNvbnRhaW5lcldpZHRoID49IDQ4MCl7XG4gICAgICAgICAgICByb3dMaW1pdCA9IDI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuY29udGFpbmVyV2lkdGggPj0gMTAyNCl7XG4gICAgICAgICAgICByb3dMaW1pdCA9IDM7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNvbnRXaWR0aCA9IHRoaXMuc3RhdGUuY29udGFpbmVyV2lkdGggLSAocm93TGltaXQgKiA0KTsgLyogNHB4IGZvciBtYXJnaW4gYXJvdW5kIGVhY2ggaW1hZ2UqL1xuICAgICAgICBjb250V2lkdGggPSBNYXRoLmZsb29yKGNvbnRXaWR0aCAtIDIpOyAvLyBhZGQgc29tZSBwYWRkaW5nIHRvIHByZXZlbnQgbGF5b3V0IHByb2Jcblx0dmFyIGxpZ2h0Ym94SW1hZ2VzID0gW107XG4gICAgICAgIGZvciAodmFyIGk9MDtpPHRoaXMucHJvcHMucGhvdG9zLmxlbmd0aDtpKz1yb3dMaW1pdCl7XG4gICAgICAgICAgICB2YXIgcm93SXRlbXMgPSBbXTtcbiAgICAgICAgICAgIC8vIGxvb3AgdGhydSBlYWNoIHNldCBvZiByb3dMaW1pdCBudW1cbiAgICAgICAgICAgIC8vIGVnLiBpZiByb3dMaW1pdCBpcyAzIGl0IHdpbGwgIGxvb3AgdGhydSAwLDEsMiwgdGhlbiAzLDQsNSB0byBwZXJmb3JtIGNhbGN1bGF0aW9ucyBmb3IgdGhlIHBhcnRpY3VsYXIgc2V0XG4gICAgICAgICAgICB2YXIgYXNwZWN0UmF0aW89MCxcbiAgICAgICAgICAgICAgICB0b3RhbEFyPTAsXG4gICAgICAgICAgICAgICAgY29tbW9uSGVpZ2h0ID0gMDtcbiAgICAgICAgICAgIGZvciAodmFyIGo9aTsgajxpK3Jvd0xpbWl0OyBqKyspe1xuICAgICAgICAgICAgICAgIGlmIChqID09IHRoaXMucHJvcHMucGhvdG9zLmxlbmd0aCl7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblx0XHR0b3RhbEFyICs9IHRoaXMucHJvcHMucGhvdG9zW2pdLmFzcGVjdFJhdGlvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tbW9uSGVpZ2h0ID0gY29udFdpZHRoIC8gdG90YWxBcjtcbiAgICAgICAgICAgIC8vIHJ1biB0aHJ1IHRoZSBzYW1lIHNldCBvZiBpdGVtcyBhZ2FpbiB0byBnaXZlIHRoZSBjb21tb24gaGVpZ2h0XG4gICAgICAgICAgICBmb3IgKHZhciBrPWk7IGs8aStyb3dMaW1pdDsgaysrKXtcbiAgICAgICAgICAgICAgICBpZiAoayA9PSB0aGlzLnByb3BzLnBob3Rvcy5sZW5ndGgpe1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cdFx0bGlnaHRib3hJbWFnZXMucHVzaCh0aGlzLnByb3BzLnBob3Rvc1trXS5saWdodGJveEltYWdlKTtcblx0XHR2YXIgc3JjID0gdGhpcy5wcm9wcy5waG90b3Nba10uc3JjO1xuICAgICAgICAgICAgICAgIHBob3RvUHJldmlld05vZGVzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17a30gc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3NOYW1lPXtrfSBvbkNsaWNrPXt0aGlzLm9wZW5MaWdodGJveC5iaW5kKHRoaXMsIGspfT48aW1nIHNyYz17c3JjfSBzdHlsZT17e2Rpc3BsYXk6J2Jsb2NrJywgYm9yZGVyOjB9fSBoZWlnaHQ9e2NvbW1vbkhlaWdodH0gd2lkdGg9e2NvbW1vbkhlaWdodCAqIHRoaXMucHJvcHMucGhvdG9zW2tdLmFzcGVjdFJhdGlvfSBhbHQ9XCJcIiAvPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblx0cmV0dXJuKFxuICAgICAgICAgICAgPGRpdiBpZD1cIkdhbGxlcnlcIiBjbGFzc05hbWU9XCJjbGVhcmZpeFwiPlxuICAgICAgICAgICAgICAgIHtwaG90b1ByZXZpZXdOb2Rlc31cbiAgICAgICAgICAgICAgICA8TGlnaHRib3hcblx0XHQgICAgY3VycmVudEltYWdlPXt0aGlzLnN0YXRlLmN1cnJlbnRJbWFnZX1cbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VzPXtsaWdodGJveEltYWdlc31cbiAgICAgICAgICAgICAgICAgICAgaXNPcGVuPXt0aGlzLnN0YXRlLmxpZ2h0Ym94SXNPcGVufVxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXt0aGlzLmNsb3NlTGlnaHRib3h9XG5cdFx0ICAgIG9uQ2xpY2tQcmV2PXt0aGlzLmdvdG9QcmV2aW91c31cblx0XHQgICAgb25DbGlja05leHQ9e3RoaXMuZ290b05leHR9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXsxNjAwfVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezE2MDB9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcz17dGhpcy5wcm9wcy5saWdodGJveFN0eWxlc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufSk7XG4vLyBHYWxsZXJ5IGltYWdlIHN0eWxlXG5jb25zdCBzdHlsZSA9IHtcbiAgIGRpc3BsYXk6ICdibG9jaycsXG4gICBtYXJnaW46IDIsXG4gICBiYWNrZ3JvdW5kQ29sb3I6JyNlM2UzZTMnLFxuICAgZmxvYXQ6ICdsZWZ0J1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEdhbGxlcnk7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9yZWFjdC1jb21wb25lbnQtZ3VscC10YXNrcy9ub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnJvd3Nlci1wYWNrL19wcmVsdWRlLmpzIiwiL1VzZXJzL2hlbGVuaWEvcmVhY3QtcGhvdG8tZ2FsbGVyeS9zcmMvR2FsbGVyeS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJDQWtCLE9BQU87Ozs7d0JBQ0osV0FBVzs7OzsyQkFDWCxjQUFjOzs7O0lBRTdCLE9BQU87Y0FBUCxPQUFPOztBQUNFLGFBRFQsT0FBTyxHQUNJOzhCQURYLE9BQU87O0FBRVosbUNBRkssT0FBTyw2Q0FFSjtBQUNSLFlBQUksQ0FBQyxLQUFLLEdBQUc7QUFDVCx3QkFBWSxFQUFFLENBQUM7QUFDZiwwQkFBYyxFQUFFLENBQUM7U0FDcEIsQ0FBQztBQUNGLFlBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakQsWUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxZQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pDLFlBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakQsWUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM3Qzs7aUJBWkMsT0FBTzs7ZUFhUSw2QkFBRTtBQUN0QixnQkFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFTLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxX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LEVBQUUsTUFBTTtDQUNmLENBQUE7O3FCQUVjLE9BQU8iLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IExpZ2h0Ym94IGZyb20gJ3JlYWN0LWltYWdlcyc7XG5cbmNsYXNzIEdhbGxlcnkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnR7XG4gICAgY29uc3RydWN0b3IoKXtcblx0c3VwZXIoKTtcblx0dGhpcy5zdGF0ZSA9IHtcblx0ICAgIGN1cnJlbnRJbWFnZTogMCxcblx0ICAgIGNvbnRhaW5lcldpZHRoOiAwXG5cdH07XG5cdHRoaXMuaGFuZGxlUmVzaXplID0gdGhpcy5oYW5kbGVSZXNpemUuYmluZCh0aGlzKTtcblx0dGhpcy5jbG9zZUxpZ2h0Ym94ID0gdGhpcy5jbG9zZUxpZ2h0Ym94LmJpbmQodGhpcyk7XG5cdHRoaXMuZ290b05leHQgPSB0aGlzLmdvdG9OZXh0LmJpbmQodGhpcyk7XG5cdHRoaXMuZ290b1ByZXZpb3VzID0gdGhpcy5nb3RvUHJldmlvdXMuYmluZCh0aGlzKTtcblx0dGhpcy5vcGVuTGlnaHRib3ggPSB0aGlzLm9wZW5MaWdodGJveC5iaW5kKHRoaXMpO1xuICAgIH1cbiAgICBjb21wb25lbnREaWRNb3VudCgpe1xuXHR0aGlzLnNldFN0YXRlKHtjb250YWluZXJXaWR0aDogTWF0aC5mbG9vcihSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKS5jbGllbnRXaWR0aCl9KVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5oYW5kbGVSZXNpemUpO1xuICAgIH1cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKXtcblx0aWYgKFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpLmNsaWVudFdpZHRoICE9PSB0aGlzLnN0YXRlLmNvbnRhaW5lcldpZHRoKXtcblx0ICAgIHRoaXMuc2V0U3RhdGUoe2NvbnRhaW5lcldpZHRoOiBNYXRoLmZsb29yKFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpLmNsaWVudFdpZHRoKX0pO1xuXHR9XG4gICAgfVxuICAgIGhhbmRsZVJlc2l6ZShlKXtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29udGFpbmVyV2lkdGg6IE1hdGguZmxvb3IoUmVhY3RET00uZmluZERPTU5vZGUodGhpcykuY2xpZW50V2lkdGgpfSk7XG4gICAgfVxuICAgIG9wZW5MaWdodGJveChpbmRleCwgZXZlbnQpe1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcblx0ICAgIGN1cnJlbnRJbWFnZTogaW5kZXgsXG4gICAgICAgICAgICBsaWdodGJveElzT3BlbjogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY2xvc2VMaWdodGJveCgpe1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcblx0ICAgIGN1cnJlbnRJbWFnZTogMCxcbiAgICAgICAgICAgIGxpZ2h0Ym94SXNPcGVuOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdvdG9QcmV2aW91cygpe1xuXHR0aGlzLnNldFN0YXRlKHtcblx0ICAgIGN1cnJlbnRJbWFnZTogdGhpcy5zdGF0ZS5jdXJyZW50SW1hZ2UgLSAxLFxuXHR9KTtcbiAgICB9XG4gICAgZ290b05leHQoKXtcblx0dGhpcy5zZXRTdGF0ZSh7XG5cdCAgICBjdXJyZW50SW1hZ2U6IHRoaXMuc3RhdGUuY3VycmVudEltYWdlICsgMSxcblx0fSk7XG4gICAgfVxuICAgIHJlbmRlcigpe1xuICAgICAgICB2YXIgcm93TGltaXQgPSAxLFxuICAgICAgICAgICAgcGhvdG9QcmV2aWV3Tm9kZXMgPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuY29udGFpbmVyV2lkdGggPj0gNDgwKXtcbiAgICAgICAgICAgIHJvd0xpbWl0ID0gMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5jb250YWluZXJXaWR0aCA+PSAxMDI0KXtcbiAgICAgICAgICAgIHJvd0xpbWl0ID0gMztcbiAgICAgICAgfVxuICAgICAgICB2YXIgY29udFdpZHRoID0gdGhpcy5zdGF0ZS5jb250YWluZXJXaWR0aCAtIChyb3dMaW1pdCAqIDQpOyAvKiA0cHggZm9yIG1hcmdpbiBhcm91bmQgZWFjaCBpbWFnZSovXG4gICAgICAgIGNvbnRXaWR0aCA9IE1hdGguZmxvb3IoY29udFdpZHRoIC0gMik7IC8vIGFkZCBzb21lIHBhZGRpbmcgdG8gcHJldmVudCBsYXlvdXQgcHJvYlxuXHR2YXIgbGlnaHRib3hJbWFnZXMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaT0wO2k8dGhpcy5wcm9wcy5waG90b3MubGVuZ3RoO2krPXJvd0xpbWl0KXtcbiAgICAgICAgICAgIHZhciByb3dJdGVtcyA9IFtdO1xuICAgICAgICAgICAgLy8gbG9vcCB0aHJ1IGVhY2ggc2V0IG9mIHJvd0xpbWl0IG51bVxuICAgICAgICAgICAgLy8gZWcuIGlmIHJvd0xpbWl0IGlzIDMgaXQgd2lsbCAgbG9vcCB0aHJ1IDAsMSwyLCB0aGVuIDMsNCw1IHRvIHBlcmZvcm0gY2FsY3VsYXRpb25zIGZvciB0aGUgcGFydGljdWxhciBzZXRcbiAgICAgICAgICAgIHZhciBhc3BlY3RSYXRpbz0wLFxuICAgICAgICAgICAgICAgIHRvdGFsQXI9MCxcbiAgICAgICAgICAgICAgICBjb21tb25IZWlnaHQgPSAwO1xuICAgICAgICAgICAgZm9yICh2YXIgaj1pOyBqPGkrcm93TGltaXQ7IGorKyl7XG4gICAgICAgICAgICAgICAgaWYgKGogPT0gdGhpcy5wcm9wcy5waG90b3MubGVuZ3RoKXtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXHRcdHRvdGFsQXIgKz0gdGhpcy5wcm9wcy5waG90b3Nbal0uYXNwZWN0UmF0aW87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21tb25IZWlnaHQgPSBjb250V2lkdGggLyB0b3RhbEFyO1xuICAgICAgICAgICAgLy8gcnVuIHRocnUgdGhlIHNhbWUgc2V0IG9mIGl0ZW1zIGFnYWluIHRvIGdpdmUgdGhlIGNvbW1vbiBoZWlnaHRcbiAgICAgICAgICAgIGZvciAodmFyIGs9aTsgazxpK3Jvd0xpbWl0OyBrKyspe1xuICAgICAgICAgICAgICAgIGlmIChrID09IHRoaXMucHJvcHMucGhvdG9zLmxlbmd0aCl7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblx0XHRsaWdodGJveEltYWdlcy5wdXNoKHRoaXMucHJvcHMucGhvdG9zW2tdLmxpZ2h0Ym94SW1hZ2UpO1xuXHRcdHZhciBzcmMgPSB0aGlzLnByb3BzLnBob3Rvc1trXS5zcmM7XG4gICAgICAgICAgICAgICAgcGhvdG9QcmV2aWV3Tm9kZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtrfSBzdHlsZT17c3R5bGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9e2t9IG9uQ2xpY2s9e3RoaXMub3BlbkxpZ2h0Ym94LmJpbmQodGhpcywgayl9PjxpbWcgc3JjPXtzcmN9IHN0eWxlPXt7ZGlzcGxheTonYmxvY2snLCBib3JkZXI6MH19IGhlaWdodD17Y29tbW9uSGVpZ2h0fSB3aWR0aD17Y29tbW9uSGVpZ2h0ICogdGhpcy5wcm9wcy5waG90b3Nba10uYXNwZWN0UmF0aW99IGFsdD1cIlwiIC8+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXHRyZXR1cm4oXG4gICAgICAgICAgICA8ZGl2IGlkPVwiR2FsbGVyeVwiIGNsYXNzTmFtZT1cImNsZWFyZml4XCI+XG4gICAgICAgICAgICAgICAge3Bob3RvUHJldmlld05vZGVzfVxuICAgICAgICAgICAgICAgIDxMaWdodGJveFxuXHRcdCAgICBjdXJyZW50SW1hZ2U9e3RoaXMuc3RhdGUuY3VycmVudEltYWdlfVxuICAgICAgICAgICAgICAgICAgICBpbWFnZXM9e2xpZ2h0Ym94SW1hZ2VzfVxuICAgICAgICAgICAgICAgICAgICBpc09wZW49e3RoaXMuc3RhdGUubGlnaHRib3hJc09wZW59XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuY2xvc2VMaWdodGJveH1cblx0XHQgICAgb25DbGlja1ByZXY9e3RoaXMuZ290b1ByZXZpb3VzfVxuXHRcdCAgICBvbkNsaWNrTmV4dD17dGhpcy5nb3RvTmV4dH1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezE2MDB9XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD17MTYwMH1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGVzPXt0aGlzLnByb3BzLmxpZ2h0Ym94U3R5bGVzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG59O1xuR2FsbGVyeS5kaXNwbGF5TmFtZSA9ICdHYWxsZXJ5JztcbkdhbGxlcnkucHJvcFR5cGVzID0ge1xuICAgIHBob3RvczogUmVhY3QuUHJvcFR5cGVzLmFycmF5T2YoXG5cdFJlYWN0LlByb3BUeXBlcy5zaGFwZSh7XG5cdCAgICBzcmM6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcblx0ICAgIHdpZHRoOiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG5cdCAgICBoZWlnaHQ6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcblx0ICAgIGFzcGVjdFJhdGlvOiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG5cdCAgICBsaWdodGJveEltYWdlOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcblx0fSlcbiAgICApLmlzUmVxdWlyZWQsXG59O1xuLy8gR2FsbGVyeSBpbWFnZSBzdHlsZVxuY29uc3Qgc3R5bGUgPSB7XG4gICBkaXNwbGF5OiAnYmxvY2snLFxuICAgbWFyZ2luOiAyLFxuICAgYmFja2dyb3VuZENvbG9yOicjZTNlM2UzJyxcbiAgIGZsb2F0OiAnbGVmdCdcbn1cblxuZXhwb3J0IGRlZmF1bHQgR2FsbGVyeTtcbiJdfQ== |
@@ -5,4 +5,16 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Gallery = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
Object.defineProperty(exports, '__esModule', { | ||
value: true | ||
}); | ||
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 _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } | ||
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; } | ||
var _react = (typeof window !== "undefined" ? window['React'] : typeof global !== "undefined" ? global['React'] : null); | ||
@@ -20,116 +32,148 @@ | ||
var Gallery = _react2['default'].createClass({ | ||
displayName: 'Gallery', | ||
propTypes: { | ||
photos: _react2['default'].PropTypes.arrayOf(_react2['default'].PropTypes.shape({ | ||
src: _react2['default'].PropTypes.string.isRequired, | ||
width: _react2['default'].PropTypes.number.isRequired, | ||
height: _react2['default'].PropTypes.number.isRequired, | ||
aspectRatio: _react2['default'].PropTypes.number.isRequired, | ||
lightboxImage: _react2['default'].PropTypes.object.isRequired | ||
})).isRequired | ||
}, | ||
getInitialState: function getInitialState() { | ||
return { | ||
var Gallery = (function (_React$Component) { | ||
_inherits(Gallery, _React$Component); | ||
function Gallery() { | ||
_classCallCheck(this, Gallery); | ||
_get(Object.getPrototypeOf(Gallery.prototype), 'constructor', this).call(this); | ||
this.state = { | ||
currentImage: 0, | ||
containerWidth: 0 | ||
}; | ||
}, | ||
componentDidMount: function componentDidMount() { | ||
this.setState({ containerWidth: Math.floor(_reactDom2['default'].findDOMNode(this).clientWidth) }); | ||
window.addEventListener('resize', this.handleResize); | ||
}, | ||
componentDidUpdate: function componentDidUpdate() { | ||
if (_reactDom2['default'].findDOMNode(this).clientWidth !== this.state.containerWidth) { | ||
this.handleResize = this.handleResize.bind(this); | ||
this.closeLightbox = this.closeLightbox.bind(this); | ||
this.gotoNext = this.gotoNext.bind(this); | ||
this.gotoPrevious = this.gotoPrevious.bind(this); | ||
this.openLightbox = this.openLightbox.bind(this); | ||
} | ||
_createClass(Gallery, [{ | ||
key: 'componentDidMount', | ||
value: function componentDidMount() { | ||
this.setState({ containerWidth: Math.floor(_reactDom2['default'].findDOMNode(this).clientWidth) }); | ||
window.addEventListener('resize', this.handleResize); | ||
} | ||
}, | ||
handleResize: function handleResize(e) { | ||
this.setState({ containerWidth: Math.floor(_reactDom2['default'].findDOMNode(this).clientWidth) }); | ||
}, | ||
openLightbox: function openLightbox(index, event) { | ||
event.preventDefault(); | ||
this.setState({ | ||
currentImage: index, | ||
lightboxIsOpen: true | ||
}); | ||
}, | ||
closeLightbox: function closeLightbox() { | ||
this.setState({ | ||
currentImage: 0, | ||
lightboxIsOpen: false | ||
}); | ||
}, | ||
gotoPrevious: function gotoPrevious() { | ||
this.setState({ | ||
currentImage: this.state.currentImage - 1 | ||
}); | ||
}, | ||
gotoNext: function gotoNext() { | ||
this.setState({ | ||
currentImage: this.state.currentImage + 1 | ||
}); | ||
}, | ||
render: function render() { | ||
var rowLimit = 1, | ||
photoPreviewNodes = []; | ||
if (this.state.containerWidth >= 480) { | ||
rowLimit = 2; | ||
}, { | ||
key: 'componentDidUpdate', | ||
value: function componentDidUpdate() { | ||
if (_reactDom2['default'].findDOMNode(this).clientWidth !== this.state.containerWidth) { | ||
this.setState({ containerWidth: Math.floor(_reactDom2['default'].findDOMNode(this).clientWidth) }); | ||
} | ||
} | ||
if (this.state.containerWidth >= 1024) { | ||
rowLimit = 3; | ||
}, { | ||
key: 'handleResize', | ||
value: function handleResize(e) { | ||
this.setState({ containerWidth: Math.floor(_reactDom2['default'].findDOMNode(this).clientWidth) }); | ||
} | ||
var contWidth = this.state.containerWidth - rowLimit * 4; /* 4px for margin around each image*/ | ||
contWidth = Math.floor(contWidth - 2); // add some padding to prevent layout prob | ||
var lightboxImages = []; | ||
for (var i = 0; i < this.props.photos.length; i += rowLimit) { | ||
var rowItems = []; | ||
// loop thru each set of rowLimit num | ||
// eg. if rowLimit is 3 it will loop thru 0,1,2, then 3,4,5 to perform calculations for the particular set | ||
var aspectRatio = 0, | ||
totalAr = 0, | ||
commonHeight = 0; | ||
for (var j = i; j < i + rowLimit; j++) { | ||
if (j == this.props.photos.length) { | ||
break; | ||
} | ||
totalAr += this.props.photos[j].aspectRatio; | ||
}, { | ||
key: 'openLightbox', | ||
value: function openLightbox(index, event) { | ||
event.preventDefault(); | ||
this.setState({ | ||
currentImage: index, | ||
lightboxIsOpen: true | ||
}); | ||
} | ||
}, { | ||
key: 'closeLightbox', | ||
value: function closeLightbox() { | ||
this.setState({ | ||
currentImage: 0, | ||
lightboxIsOpen: false | ||
}); | ||
} | ||
}, { | ||
key: 'gotoPrevious', | ||
value: function gotoPrevious() { | ||
this.setState({ | ||
currentImage: this.state.currentImage - 1 | ||
}); | ||
} | ||
}, { | ||
key: 'gotoNext', | ||
value: function gotoNext() { | ||
this.setState({ | ||
currentImage: this.state.currentImage + 1 | ||
}); | ||
} | ||
}, { | ||
key: 'render', | ||
value: function render() { | ||
var rowLimit = 1, | ||
photoPreviewNodes = []; | ||
if (this.state.containerWidth >= 480) { | ||
rowLimit = 2; | ||
} | ||
commonHeight = contWidth / totalAr; | ||
// run thru the same set of items again to give the common height | ||
for (var k = i; k < i + rowLimit; k++) { | ||
if (k == this.props.photos.length) { | ||
break; | ||
if (this.state.containerWidth >= 1024) { | ||
rowLimit = 3; | ||
} | ||
var contWidth = this.state.containerWidth - rowLimit * 4; /* 4px for margin around each image*/ | ||
contWidth = Math.floor(contWidth - 2); // add some padding to prevent layout prob | ||
var lightboxImages = []; | ||
for (var i = 0; i < this.props.photos.length; i += rowLimit) { | ||
var rowItems = []; | ||
// loop thru each set of rowLimit num | ||
// eg. if rowLimit is 3 it will loop thru 0,1,2, then 3,4,5 to perform calculations for the particular set | ||
var aspectRatio = 0, | ||
totalAr = 0, | ||
commonHeight = 0; | ||
for (var j = i; j < i + rowLimit; j++) { | ||
if (j == this.props.photos.length) { | ||
break; | ||
} | ||
totalAr += this.props.photos[j].aspectRatio; | ||
} | ||
lightboxImages.push(this.props.photos[k].lightboxImage); | ||
var src = this.props.photos[k].src; | ||
photoPreviewNodes.push(_react2['default'].createElement( | ||
'div', | ||
{ key: k, style: style }, | ||
_react2['default'].createElement( | ||
'a', | ||
{ href: '#', className: k, onClick: this.openLightbox.bind(this, k) }, | ||
_react2['default'].createElement('img', { src: src, style: { display: 'block', border: 0 }, height: commonHeight, width: commonHeight * this.props.photos[k].aspectRatio, alt: '' }) | ||
) | ||
)); | ||
commonHeight = contWidth / totalAr; | ||
// run thru the same set of items again to give the common height | ||
for (var k = i; k < i + rowLimit; k++) { | ||
if (k == this.props.photos.length) { | ||
break; | ||
} | ||
lightboxImages.push(this.props.photos[k].lightboxImage); | ||
var src = this.props.photos[k].src; | ||
photoPreviewNodes.push(_react2['default'].createElement( | ||
'div', | ||
{ key: k, style: style }, | ||
_react2['default'].createElement( | ||
'a', | ||
{ href: '#', className: k, onClick: this.openLightbox.bind(this, k) }, | ||
_react2['default'].createElement('img', { src: src, style: { display: 'block', border: 0 }, height: commonHeight, width: commonHeight * this.props.photos[k].aspectRatio, alt: '' }) | ||
) | ||
)); | ||
} | ||
} | ||
return _react2['default'].createElement( | ||
'div', | ||
{ id: 'Gallery', className: 'clearfix' }, | ||
photoPreviewNodes, | ||
_react2['default'].createElement(_reactImages2['default'], { | ||
currentImage: this.state.currentImage, | ||
images: lightboxImages, | ||
isOpen: this.state.lightboxIsOpen, | ||
onClose: this.closeLightbox, | ||
onClickPrev: this.gotoPrevious, | ||
onClickNext: this.gotoNext, | ||
width: 1600, | ||
height: 1600, | ||
styles: this.props.lightboxStyles | ||
}) | ||
); | ||
} | ||
return _react2['default'].createElement( | ||
'div', | ||
{ id: 'Gallery', className: 'clearfix' }, | ||
photoPreviewNodes, | ||
_react2['default'].createElement(_reactImages2['default'], { | ||
currentImage: this.state.currentImage, | ||
images: lightboxImages, | ||
isOpen: this.state.lightboxIsOpen, | ||
onClose: this.closeLightbox, | ||
onClickPrev: this.gotoPrevious, | ||
onClickNext: this.gotoNext, | ||
width: 1600, | ||
height: 1600, | ||
styles: this.props.lightboxStyles | ||
}) | ||
); | ||
} | ||
}); | ||
}]); | ||
return Gallery; | ||
})(_react2['default'].Component); | ||
; | ||
Gallery.displayName = 'Gallery'; | ||
Gallery.propTypes = { | ||
photos: _react2['default'].PropTypes.arrayOf(_react2['default'].PropTypes.shape({ | ||
src: _react2['default'].PropTypes.string.isRequired, | ||
width: _react2['default'].PropTypes.number.isRequired, | ||
height: _react2['default'].PropTypes.number.isRequired, | ||
aspectRatio: _react2['default'].PropTypes.number.isRequired, | ||
lightboxImage: _react2['default'].PropTypes.object.isRequired | ||
})).isRequired | ||
}; | ||
// Gallery image style | ||
@@ -143,3 +187,4 @@ var style = { | ||
module.exports = Gallery; | ||
exports['default'] = Gallery; | ||
module.exports = exports['default']; | ||
@@ -146,0 +191,0 @@ }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) |
@@ -17,17 +17,21 @@ import React from 'react'; | ||
var App = React.createClass({ | ||
getInitialState: function(){ | ||
return {photos:null, pageNum:1, totalPages:1, loadedAll: false}; | ||
}, | ||
componentDidMount: function() { | ||
class App extends React.Component{ | ||
constructor(){ | ||
super(); | ||
this.state = {photos:null, pageNum:1, totalPages:1, loadedAll: false}; | ||
this.handleScroll = this.handleScroll.bind(this); | ||
this.loadMorePhotos = this.loadMorePhotos.bind(this); | ||
} | ||
componentDidMount() { | ||
this.loadMorePhotos(); | ||
this.loadMorePhotos = _.debounce(this.loadMorePhotos, 200); | ||
window.addEventListener('scroll', this.handleScroll); | ||
}, | ||
handleScroll: function(e){ | ||
} | ||
handleScroll(){ | ||
if ((window.innerHeight + window.scrollY) >= (document.body.offsetHeight - 50)) { | ||
this.loadMorePhotos(); | ||
} | ||
}, | ||
loadMorePhotos: function(e){ | ||
} | ||
loadMorePhotos(e){ | ||
if (e){ | ||
@@ -66,3 +70,3 @@ e.preventDefault(); | ||
}); | ||
}, | ||
} | ||
renderGallery(){ | ||
@@ -72,4 +76,4 @@ return( | ||
); | ||
}, | ||
render: function(){ | ||
} | ||
render(){ | ||
// no loading sign if its all loaded | ||
@@ -99,4 +103,4 @@ if (this.state.photos && this.state.loadedAll){ | ||
} | ||
}); | ||
}; | ||
ReactDOM.render(<App />, document.getElementById('app')); |
{ | ||
"name": "react-photo-gallery", | ||
"version": "3.0.2", | ||
"version": "3.0.3", | ||
"description": "Responsive React Photo Gallery Component", | ||
@@ -17,2 +17,3 @@ "main": "lib/Gallery.js", | ||
"dependencies": { | ||
"react": ">=0.14", | ||
"react-dom": "^0.14.2", | ||
@@ -29,3 +30,2 @@ "react-images": "^0.2.1" | ||
"lodash": "^3.10.1", | ||
"react": ">=0.14", | ||
"react-component-gulp-tasks": "^0.7.0" | ||
@@ -32,0 +32,0 @@ }, |
@@ -5,34 +5,28 @@ import React from 'react'; | ||
var Gallery = React.createClass({ | ||
displayName: 'Gallery', | ||
propTypes:{ | ||
photos: React.PropTypes.arrayOf( | ||
React.PropTypes.shape({ | ||
src: React.PropTypes.string.isRequired, | ||
width: React.PropTypes.number.isRequired, | ||
height: React.PropTypes.number.isRequired, | ||
aspectRatio: React.PropTypes.number.isRequired, | ||
lightboxImage: React.PropTypes.object.isRequired | ||
}) | ||
).isRequired, | ||
}, | ||
getInitialState: function(){ | ||
return { | ||
class Gallery extends React.Component{ | ||
constructor(){ | ||
super(); | ||
this.state = { | ||
currentImage: 0, | ||
containerWidth: 0 | ||
} | ||
}, | ||
componentDidMount: function(){ | ||
}; | ||
this.handleResize = this.handleResize.bind(this); | ||
this.closeLightbox = this.closeLightbox.bind(this); | ||
this.gotoNext = this.gotoNext.bind(this); | ||
this.gotoPrevious = this.gotoPrevious.bind(this); | ||
this.openLightbox = this.openLightbox.bind(this); | ||
} | ||
componentDidMount(){ | ||
this.setState({containerWidth: Math.floor(ReactDOM.findDOMNode(this).clientWidth)}) | ||
window.addEventListener('resize', this.handleResize); | ||
}, | ||
componentDidUpdate: function(){ | ||
} | ||
componentDidUpdate(){ | ||
if (ReactDOM.findDOMNode(this).clientWidth !== this.state.containerWidth){ | ||
this.setState({containerWidth: Math.floor(ReactDOM.findDOMNode(this).clientWidth)}); | ||
} | ||
}, | ||
handleResize: function(e){ | ||
} | ||
handleResize(e){ | ||
this.setState({containerWidth: Math.floor(ReactDOM.findDOMNode(this).clientWidth)}); | ||
}, | ||
openLightbox (index, event) { | ||
} | ||
openLightbox(index, event){ | ||
event.preventDefault(); | ||
@@ -43,4 +37,4 @@ this.setState({ | ||
}); | ||
}, | ||
closeLightbox () { | ||
} | ||
closeLightbox(){ | ||
this.setState({ | ||
@@ -50,14 +44,14 @@ currentImage: 0, | ||
}); | ||
}, | ||
gotoPrevious () { | ||
} | ||
gotoPrevious(){ | ||
this.setState({ | ||
currentImage: this.state.currentImage - 1, | ||
}); | ||
}, | ||
gotoNext () { | ||
} | ||
gotoNext(){ | ||
this.setState({ | ||
currentImage: this.state.currentImage + 1, | ||
}); | ||
}, | ||
render: function(){ | ||
} | ||
render(){ | ||
var rowLimit = 1, | ||
@@ -119,3 +113,15 @@ photoPreviewNodes = []; | ||
} | ||
}); | ||
}; | ||
Gallery.displayName = 'Gallery'; | ||
Gallery.propTypes = { | ||
photos: React.PropTypes.arrayOf( | ||
React.PropTypes.shape({ | ||
src: React.PropTypes.string.isRequired, | ||
width: React.PropTypes.number.isRequired, | ||
height: React.PropTypes.number.isRequired, | ||
aspectRatio: React.PropTypes.number.isRequired, | ||
lightboxImage: React.PropTypes.object.isRequired | ||
}) | ||
).isRequired, | ||
}; | ||
// Gallery image style | ||
@@ -129,2 +135,2 @@ const style = { | ||
module.exports = Gallery; | ||
export default Gallery; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Native code
Supply chain riskContains native code (e.g., compiled binaries or shared libraries). Including native code can obscure malicious behavior.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Native code
Supply chain riskContains native code (e.g., compiled binaries or shared libraries). Including native code can obscure malicious behavior.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
3608922
8
46490
8
4
+ Addedreact@>=0.14