Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

boundless-image

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

boundless-image - npm Package Compare versions

Comparing version 1.0.0-beta.3 to 1.0.0-beta.4

4

build/index.js

@@ -1,2 +0,2 @@

"use strict";function _interopDefault(e){return e&&typeof e==="object"&&"default"in e?e["default"]:e}var React=require("react");var React__default=_interopDefault(React);function createCommonjsModule(e,t){return t={exports:{}},e(t,t.exports),t.exports}var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol==="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var classCallCheck=function(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}};var createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var s=t[r];s.enumerable=s.enumerable||false;s.configurable=true;if("value"in s)s.writable=true;Object.defineProperty(e,s.key,s)}}return function(t,r,s){if(r)e(t.prototype,r);if(s)e(t,s);return t}}();var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r){if(Object.prototype.hasOwnProperty.call(r,s)){e[s]=r[s]}}}return e};var inherits=function(e,t){if(typeof t!=="function"&&t!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t};var possibleConstructorReturn=function(e,t){if(!e){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return t&&(typeof t==="object"||typeof t==="function")?t:e};var index=createCommonjsModule(function(e){(function(){"use strict";var t={}.hasOwnProperty;function r(){var e=[];for(var s=0;s<arguments.length;s++){var o=arguments[s];if(!o)continue;var a=typeof o==="undefined"?"undefined":_typeof(o);if(a==="string"||a==="number"){e.push(o)}else if(Array.isArray(o)){e.push(r.apply(null,o))}else if(a==="object"){for(var n in o){if(t.call(o,n)&&o[n]){e.push(n)}}}}return e.join(" ")}if("object"!=="undefined"&&e.exports){e.exports=r}else if(typeof undefined==="function"&&_typeof(undefined.amd)==="object"&&undefined.amd){undefined("classnames",[],function(){return r})}else{window.classNames=r}})()});function noop(){}function omitKeysFromSourceObject(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];return Object.keys(e).reduce(function r(s,o){if(t.indexOf(o)===-1){s[o]=e[o]}return s},{})}var Image=function(e){inherits(t,e);function t(){var e;var r,s,o;classCallCheck(this,t);for(var a=arguments.length,n=Array(a),i=0;i<a;i++){n[i]=arguments[i]}return o=(r=(s=possibleConstructorReturn(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(n))),s),s.state={status:t.status.LOADING},r),possibleConstructorReturn(s,o)}createClass(t,[{key:"componentWillReceiveProps",value:function e(r){if(r.src!==this.props.src){this.resetPreloader();this.setState({status:t.status.LOADING})}}},{key:"componentDidMount",value:function e(){this.preload()}},{key:"componentDidUpdate",value:function e(){this.preload()}},{key:"componentWillUnmount",value:function e(){this.resetPreloader()}},{key:"resetPreloader",value:function e(){this.loader.onload=null;this.loader.onerror=null;this.loader=null}},{key:"preload",value:function e(){var r=this;if(this.loader){return}this.loader=document.createElement("img");this.loader.onload=function(){return r.setState({status:t.status.LOADED})};this.loader.onerror=function(){return r.setState({status:t.status.ERROR})};this.loader.src=this.props.src}},{key:"renderImage",value:function e(){if(this.props.displayAsBackgroundImage){return React__default.createElement("div",_extends({},this.props.imageProps,{ref:"image",className:index("b-image",this.props.imageProps.className),title:this.props.alt,style:_extends({},this.props.imageProps.style,{backgroundImage:"url("+this.props.src+")"})}))}return React__default.createElement("img",_extends({},this.props.imageProps,{ref:"image",className:index("b-image",this.props.imageProps.className),src:this.props.src,alt:this.props.alt,onLoad:noop,onError:noop}))}},{key:"renderStatus",value:function e(){return React__default.createElement("div",_extends({},this.props.statusProps,{ref:"status",className:index("b-image-status",this.props.statusProps.className,{"b-image-loading":this.state.status===t.status.LOADING,"b-image-loaded":this.state.status===t.status.LOADED,"b-image-error":this.state.status===t.status.ERROR}),role:"presentation"}))}},{key:"render",value:function e(){return React__default.createElement("div",_extends({},omitKeysFromSourceObject(this.props,t.internalKeys),{ref:"wrapper",className:index("b-image-wrapper",this.props.className)}),this.renderImage(),this.renderStatus())}}]);return t}(React__default.PureComponent);Image.status={LOADING:"LOADING",LOADED:"LOADED",ERROR:"ERROR"};Image.propTypes={alt:React.PropTypes.string,displayAsBackgroundImage:React.PropTypes.bool,imageProps:React.PropTypes.object,src:React.PropTypes.string.isRequired,statusProps:React.PropTypes.object};Image.defaultProps={alt:null,displayAsBackgroundImage:false,imageProps:{},src:"about:blank",statusProps:{}};Image.internalKeys=Object.keys(Image.defaultProps);module.exports=Image;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2luZGV4LmpzIiwiLi4vLi4vYm91bmRsZXNzLXV0aWxzLW9taXQta2V5cy9pbmRleC5qcyIsIi4uL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICBDb3B5cmlnaHQgKGMpIDIwMTYgSmVkIFdhdHNvbi5cbiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIChNSVQpLCBzZWVcbiAgaHR0cDovL2plZHdhdHNvbi5naXRodWIuaW8vY2xhc3NuYW1lc1xuKi9cbi8qIGdsb2JhbCBkZWZpbmUgKi9cblxuKGZ1bmN0aW9uICgpIHtcblx0J3VzZSBzdHJpY3QnO1xuXG5cdHZhciBoYXNPd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxuXHRmdW5jdGlvbiBjbGFzc05hbWVzICgpIHtcblx0XHR2YXIgY2xhc3NlcyA9IFtdO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBhcmcgPSBhcmd1bWVudHNbaV07XG5cdFx0XHRpZiAoIWFyZykgY29udGludWU7XG5cblx0XHRcdHZhciBhcmdUeXBlID0gdHlwZW9mIGFyZztcblxuXHRcdFx0aWYgKGFyZ1R5cGUgPT09ICdzdHJpbmcnIHx8IGFyZ1R5cGUgPT09ICdudW1iZXInKSB7XG5cdFx0XHRcdGNsYXNzZXMucHVzaChhcmcpO1xuXHRcdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGNsYXNzTmFtZXMuYXBwbHkobnVsbCwgYXJnKSk7XG5cdFx0XHR9IGVsc2UgaWYgKGFyZ1R5cGUgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdGZvciAodmFyIGtleSBpbiBhcmcpIHtcblx0XHRcdFx0XHRpZiAoaGFzT3duLmNhbGwoYXJnLCBrZXkpICYmIGFyZ1trZXldKSB7XG5cdFx0XHRcdFx0XHRjbGFzc2VzLnB1c2goa2V5KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG5cdH1cblxuXHRpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGNsYXNzTmFtZXM7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIHJlZ2lzdGVyIGFzICdjbGFzc25hbWVzJywgY29uc2lzdGVudCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVcblx0XHRkZWZpbmUoJ2NsYXNzbmFtZXMnLCBbXSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGNsYXNzTmFtZXM7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0d2luZG93LmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuXHR9XG59KCkpO1xuIiwiLyoqXG4gKiBSZXR1cm5zIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgc3VwcGxpZWQgb2JqZWN0IHdpdGhvdXQgdGhlIGdpdmVuIGtleXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdChzb3VyY2UsIG9taXR0ZWRLZXlzID0gW10pIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc291cmNlKS5yZWR1Y2UoZnVuY3Rpb24gcmVsb2NhdGVBY2NlcHRlZEtleXMoaGFzaCwga2V5KSB7XG4gICAgICAgIGlmIChvbWl0dGVkS2V5cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICAgICAgICBoYXNoW2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBoYXNoO1xuXG4gICAgfSwge30pO1xufVxuIiwiaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCBub29wIGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1ub29wL2luZGV4JztcbmltcG9ydCBvbWl0IGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXgnO1xuXG4vKipcbiMgSW1hZ2Vcbl9fQW4gaW1hZ2UgYmxvY2sgd2l0aCBwbGFjZWhvbGRlciBzdXBwb3J0IGZvciBsb2FkaW5nIGFuZCBmYWxsYmFjayBzY2VuYXJpb3MuX19cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW1hZ2UgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgc3RhdHVzID0ge1xuICAgICAgICBMT0FESU5HOiAnTE9BRElORycsXG4gICAgICAgIExPQURFRDogJ0xPQURFRCcsXG4gICAgICAgIEVSUk9SOiAnRVJST1InLFxuICAgIH1cblxuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhIHdyaXR0ZW4gZGVzY3JpcHRpb24gb2YgdGhlIGltYWdlIGZvciBzZWFyY2ggZW5naW5lcywgaG92ZXJ0ZXh0IGFuZCB0aG9zZSB1c2luZyBhY2Nlc3NpYmlsaXR5IHRlY2hub2xvZ2llczsgYXBwbGllZCB0byB0aGUgYC5iLWltYWdlYCBhcyB0aGUgSFRNTCBhdHRyaWJ1dGVzIGBhbHRgIG9yIGB0aXRsZWAsIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiByZW5kZXJlZCBub2RlXG4gICAgICAgICAqL1xuICAgICAgICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGVtaXRzIHRoZSBpbWFnZSBhcyBhIGA8ZGl2PmAgd2l0aCBgYmFja2dyb3VuZC1pbWFnZWAgY3NzIHByb3BlcnR5IHNldCBpbnN0ZWFkIG9mIGA8aW1nPmBcbiAgICAgICAgICovXG4gICAgICAgIGRpc3BsYXlBc0JhY2tncm91bmRJbWFnZTogUHJvcFR5cGVzLmJvb2wsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFueSBbUmVhY3Qtc3VwcG9ydGVkIGF0dHJpYnV0ZV0oaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90YWdzLWFuZC1hdHRyaWJ1dGVzLmh0bWwjaHRtbC1hdHRyaWJ1dGVzKTsgYXBwbGllZCB0byB0aGUgYC5iLWltYWdlYCBub2RlXG4gICAgICAgICAqL1xuICAgICAgICBpbWFnZVByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhIHZhbGlkIHBhdGggdG8gdGhlIGRlc2lyZWQgaW1hZ2VcbiAgICAgICAgICovXG4gICAgICAgIHNyYzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhbnkgW1JlYWN0LXN1cHBvcnRlZCBhdHRyaWJ1dGVdKGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdGFncy1hbmQtYXR0cmlidXRlcy5odG1sI2h0bWwtYXR0cmlidXRlcyk7IGFwcGxpZWQgdG8gdGhlIGAuYi1pbWFnZS1zdGF0dXNgIG5vZGVcbiAgICAgICAgICovXG4gICAgICAgIHN0YXR1c1Byb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIH1cblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGFsdDogbnVsbCxcbiAgICAgICAgZGlzcGxheUFzQmFja2dyb3VuZEltYWdlOiBmYWxzZSxcbiAgICAgICAgaW1hZ2VQcm9wczoge30sXG4gICAgICAgIHNyYzogJ2Fib3V0OmJsYW5rJyxcbiAgICAgICAgc3RhdHVzUHJvcHM6IHt9LFxuICAgIH1cblxuICAgIHN0YXRpYyBpbnRlcm5hbEtleXMgPSBPYmplY3Qua2V5cyhJbWFnZS5kZWZhdWx0UHJvcHMpXG5cbiAgICBzdGF0ZSA9IHtcbiAgICAgICAgc3RhdHVzOiBJbWFnZS5zdGF0dXMuTE9BRElORyxcbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICBpZiAobmV4dFByb3BzLnNyYyAhPT0gdGhpcy5wcm9wcy5zcmMpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRQcmVsb2FkZXIoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe3N0YXR1czogSW1hZ2Uuc3RhdHVzLkxPQURJTkd9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLnByZWxvYWQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB0aGlzLnJlc2V0UHJlbG9hZGVyKCk7XG4gICAgfVxuXG4gICAgcmVzZXRQcmVsb2FkZXIoKSB7XG4gICAgICAgIHRoaXMubG9hZGVyLm9ubG9hZCA9IG51bGw7XG4gICAgICAgIHRoaXMubG9hZGVyLm9uZXJyb3IgPSBudWxsO1xuICAgICAgICB0aGlzLmxvYWRlciA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJlbG9hZCgpIHtcbiAgICAgICAgaWYgKHRoaXMubG9hZGVyKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMubG9hZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG5cbiAgICAgICAgdGhpcy5sb2FkZXIub25sb2FkID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7c3RhdHVzOiBJbWFnZS5zdGF0dXMuTE9BREVEfSk7XG4gICAgICAgIHRoaXMubG9hZGVyLm9uZXJyb3IgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtzdGF0dXM6IEltYWdlLnN0YXR1cy5FUlJPUn0pO1xuXG4gICAgICAgIHRoaXMubG9hZGVyLnNyYyA9IHRoaXMucHJvcHMuc3JjO1xuICAgIH1cblxuICAgIHJlbmRlckltYWdlKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5kaXNwbGF5QXNCYWNrZ3JvdW5kSW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5pbWFnZVByb3BzfVxuICAgICAgICAgICAgICAgICAgICByZWY9J2ltYWdlJ1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KCdiLWltYWdlJywgdGhpcy5wcm9wcy5pbWFnZVByb3BzLmNsYXNzTmFtZSl9XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPXt0aGlzLnByb3BzLmFsdH1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMucHJvcHMuaW1hZ2VQcm9wcy5zdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogYHVybCgke3RoaXMucHJvcHMuc3JjfSlgLFxuICAgICAgICAgICAgICAgICAgICB9fSAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuaW1hZ2VQcm9wc31cbiAgICAgICAgICAgICAgICByZWY9J2ltYWdlJ1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goJ2ItaW1hZ2UnLCB0aGlzLnByb3BzLmltYWdlUHJvcHMuY2xhc3NOYW1lKX1cbiAgICAgICAgICAgICAgICBzcmM9e3RoaXMucHJvcHMuc3JjfVxuICAgICAgICAgICAgICAgIGFsdD17dGhpcy5wcm9wcy5hbHR9XG4gICAgICAgICAgICAgICAgb25Mb2FkPXtub29wfVxuICAgICAgICAgICAgICAgIG9uRXJyb3I9e25vb3B9IC8+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVyU3RhdHVzKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiB7Li4udGhpcy5wcm9wcy5zdGF0dXNQcm9wc31cbiAgICAgICAgICAgICAgICAgcmVmPSdzdGF0dXMnXG4gICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goJ2ItaW1hZ2Utc3RhdHVzJywgdGhpcy5wcm9wcy5zdGF0dXNQcm9wcy5jbGFzc05hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgJ2ItaW1hZ2UtbG9hZGluZyc6IHRoaXMuc3RhdGUuc3RhdHVzID09PSBJbWFnZS5zdGF0dXMuTE9BRElORyxcbiAgICAgICAgICAgICAgICAgICAgJ2ItaW1hZ2UtbG9hZGVkJzogdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEltYWdlLnN0YXR1cy5MT0FERUQsXG4gICAgICAgICAgICAgICAgICAgICdiLWltYWdlLWVycm9yJzogdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEltYWdlLnN0YXR1cy5FUlJPUixcbiAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgIHJvbGU9J3ByZXNlbnRhdGlvbicgLz5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgey4uLm9taXQodGhpcy5wcm9wcywgSW1hZ2UuaW50ZXJuYWxLZXlzKX1cbiAgICAgICAgICAgICAgICByZWY9J3dyYXBwZXInXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnYi1pbWFnZS13cmFwcGVyJywgdGhpcy5wcm9wcy5jbGFzc05hbWUpfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJJbWFnZSgpfVxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlclN0YXR1cygpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbImhhc093blByb3BlcnR5IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZyIsImFyZ1R5cGUiLCJjbGFzc2VzIiwicHVzaCIsIkFycmF5IiwiaXNBcnJheSIsImNsYXNzTmFtZXMiLCJhcHBseSIsImhhc093biIsImNhbGwiLCJrZXkiLCJqb2luIiwibW9kdWxlIiwiZXhwb3J0cyIsImJhYmVsSGVscGVycy50eXBlb2YiLCJkZWZpbmUiLCJhbWQiLCJ3aW5kb3ciLCJzb3VyY2UiLCJrZXlzIiwicmVkdWNlIiwiaGFzaCIsIm9taXR0ZWRLZXlzIiwiaW5kZXhPZiIsInN0YXRlIiwic3RhdHVzIiwiSW1hZ2UiLCJMT0FESU5HIiwibmV4dFByb3BzIiwic3JjIiwidGhpcyIsInByb3BzIiwicmVzZXRQcmVsb2FkZXIiLCJzZXRTdGF0ZSIsInByZWxvYWQiLCJsb2FkZXIiLCJvbmxvYWQiLCJvbmVycm9yIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiTE9BREVEIiwiRVJST1IiLCJkaXNwbGF5QXNCYWNrZ3JvdW5kSW1hZ2UiLCJpbWFnZVByb3BzIiwicmVmIiwiY2xhc3NOYW1lIiwiY3giLCJ0aXRsZSIsImFsdCIsInN0eWxlIiwiYmFja2dyb3VuZEltYWdlIiwib25Mb2FkIiwibm9vcCIsIm9uRXJyb3IiLCJzdGF0dXNQcm9wcyIsImItaW1hZ2UtbG9hZGluZyIsImItaW1hZ2UtbG9hZGVkIiwiYi1pbWFnZS1lcnJvciIsInJvbGUiLCJvbWl0IiwiaW50ZXJuYWxLZXlzIiwicmVuZGVySW1hZ2UiLCJyZW5kZXJTdGF0dXMiLCJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJib29sIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsImRlZmF1bHRQcm9wcyIsIk9iamVjdCJdLCJtYXBwaW5ncyI6InlrREFPQyxXQUNBLFlBRUEsVUFBZ0JBLGNBRWhCLGNBQ0MsUUFFQSxLQUFLLE1BQVEsRUFBR0MsRUFBSUMsVUFBVUMsT0FBUUYsSUFBSyxDQUMxQyxNQUFVQyxVQUFVRCxFQUNwQixLQUFLRyxFQUFLLFFBRVYsa0RBQXFCQSxFQUVyQixJQUFJQyxJQUFZ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
module.exports=function(e){function t(r){if(s[r])return s[r].exports;var a=s[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var s={};return t.m=e,t.c=s,t.i=function(e){return e},t.d=function(e,s,r){t.o(e,s)||Object.defineProperty(e,s,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var s=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(s,"a",s),s},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(e,t,s){"use strict";function r(){}t.a=r},function(e,t,s){"use strict";function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(function(s,r){return t.indexOf(r)===-1&&(s[r]=e[r]),s},{})}t.a=r},function(e,t){e.exports=require("react")},function(e,t){e.exports=require("classnames")},function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(2),a=s.n(r),o=s(3),n=s.n(o),i=s(0),l=s(1),u=function(e){function t(){var e,s,r,a;babelHelpers.classCallCheck(this,t);for(var o=arguments.length,n=Array(o),i=0;i<o;i++)n[i]=arguments[i];return s=r=babelHelpers.possibleConstructorReturn(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(n))),r.state={status:t.status.LOADING},a=s,babelHelpers.possibleConstructorReturn(r,a)}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"componentWillReceiveProps",value:function(e){e.src!==this.props.src&&(this.resetPreloader(),this.setState({status:t.status.LOADING}))}},{key:"componentDidMount",value:function(){this.preload()}},{key:"componentDidUpdate",value:function(){this.preload()}},{key:"componentWillUnmount",value:function(){this.resetPreloader()}},{key:"resetPreloader",value:function(){this.loader.onload=null,this.loader.onerror=null,this.loader=null}},{key:"preload",value:function(){var e=this;this.loader||(this.loader=document.createElement("img"),this.loader.onload=function(){return e.setState({status:t.status.LOADED})},this.loader.onerror=function(){return e.setState({status:t.status.ERROR})},this.loader.src=this.props.src)}},{key:"renderImage",value:function(){return this.props.displayAsBackgroundImage?a.a.createElement("div",babelHelpers.extends({},this.props.imageProps,{ref:"image",className:n()("b-image",this.props.imageProps.className),title:this.props.alt,style:babelHelpers.extends({},this.props.imageProps.style,{backgroundImage:"url("+this.props.src+")"})})):a.a.createElement("img",babelHelpers.extends({},this.props.imageProps,{ref:"image",className:n()("b-image",this.props.imageProps.className),src:this.props.src,alt:this.props.alt,onLoad:i.a,onError:i.a}))}},{key:"renderStatus",value:function(){return a.a.createElement("div",babelHelpers.extends({},this.props.statusProps,{ref:"status",className:n()("b-image-status",this.props.statusProps.className,{"b-image-loading":this.state.status===t.status.LOADING,"b-image-loaded":this.state.status===t.status.LOADED,"b-image-error":this.state.status===t.status.ERROR}),role:"presentation"}))}},{key:"render",value:function(){return a.a.createElement("div",babelHelpers.extends({},s.i(l.a)(this.props,t.internalKeys),{ref:"wrapper",className:n()("b-image-wrapper",this.props.className)}),this.renderImage(),this.renderStatus())}}]),t}(a.a.PureComponent);u.status={LOADING:"LOADING",LOADED:"LOADED",ERROR:"ERROR"},u.propTypes={alt:r.PropTypes.string,displayAsBackgroundImage:r.PropTypes.bool,imageProps:r.PropTypes.object,src:r.PropTypes.string.isRequired,statusProps:r.PropTypes.object},u.defaultProps={alt:null,displayAsBackgroundImage:!1,imageProps:{},src:"about:blank",statusProps:{}},u.internalKeys=Object.keys(u.defaultProps),t.default=u}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIGZmZDZiYjQ1N2Y0OWYyODUyYjQ2Iiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1ub29wL2luZGV4LmpzIiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImFtZFwiOlwicmVhY3RcIixcImNvbW1vbmpzMlwiOlwicmVhY3RcIixcInJvb3RcIjpcIlJlYWN0XCJ9Iiwid2VicGFjazovLy9leHRlcm5hbCB7XCJjb21tb25qczJcIjpcImNsYXNzbmFtZXNcIn0iLCJ3ZWJwYWNrOi8vLy4vcGFja2FnZXMvYm91bmRsZXNzLWltYWdlL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaW5zdGFsbGVkTW9kdWxlcyIsImkiLCJsIiwiY2FsbCIsIm0iLCJjIiwidmFsdWUiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJnZXQiLCJuIiwiX19lc01vZHVsZSIsIm9iamVjdCIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJwIiwicyIsIl9fd2VicGFja19leHBvcnRzX18iLCJub29wIiwib21pdEtleXNGcm9tU291cmNlT2JqZWN0Iiwic291cmNlIiwib21pdHRlZEtleXMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJrZXlzIiwicmVkdWNlIiwiaGFzaCIsImtleSIsImluZGV4T2YiLCJyZXF1aXJlIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX25vb3BfaW5kZXhfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fIiwiSW1hZ2UiLCJfUmVhY3QkUHVyZUNvbXBvbmVudCIsIl9yZWYiLCJfdGVtcCIsIl90aGlzIiwiX3JldCIsImJhYmVsSGVscGVycyIsImNsYXNzQ2FsbENoZWNrIiwidGhpcyIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwicG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIl9fcHJvdG9fXyIsImdldFByb3RvdHlwZU9mIiwiYXBwbHkiLCJjb25jYXQiLCJzdGF0ZSIsInN0YXR1cyIsIkxPQURJTkciLCJpbmhlcml0cyIsImNyZWF0ZUNsYXNzIiwibmV4dFByb3BzIiwic3JjIiwicHJvcHMiLCJyZXNldFByZWxvYWRlciIsInNldFN0YXRlIiwicHJlbG9hZCIsImxvYWRlciIsIm9ubG9hZCIsIm9uZXJyb3IiLCJfdGhpczIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJMT0FERUQiLCJFUlJPUiIsImRpc3BsYXlBc0JhY2tncm91bmRJbWFnZSIsImEiLCJleHRlbmRzIiwiaW1hZ2VQcm9wcyIsInJlZiIsImNsYXNzTmFtZSIsInRpdGxlIiwiYWx0Iiwic3R5bGUiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJvbkxvYWQiLCJvbkVycm9yIiwic3RhdHVzUHJvcHMiLCJiLWltYWdlLWxvYWRpbmciLCJiLWltYWdlLWxvYWRlZCIsImItaW1hZ2UtZXJyb3IiLCJyb2xlIiwiaW50ZXJuYWxLZXlzIiwicmVuZGVySW1hZ2UiLCJyZW5kZXJTdGF0dXMiLCJQdXJlQ29tcG9u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LEVBQUEsVUFBVXBCLE9BS3RCa0QsSUFBSzlCLEVBQUEsVUFBVWlFLE9BQU9FLFdBS3RCWixZQUFhdkQsRUFBQSxVQUFVcEIsUUEvQlYwQixFQWtDVjhELGNBQ0hsQixJQUFLLEtBQ0xQLDBCQUEwQixFQUMxQkcsY0FDQWhCLElBQUssY0FDTHlCLGdCQXZDYWpELEVBMENWc0QsYUFBZXZGLE9BQU9xQixLQUFLWSxFQUFNOEQsY055RHcySGxGLEVBQTZCLFFNbkc1NUhvQiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID1cbi8qKioqKiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGk6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gaWRlbnRpdHkgZnVuY3Rpb24gZm9yIGNhbGxpbmcgaGFybW9ueSBpbXBvcnRzIHdpdGggdGhlIGNvcnJlY3QgY29udGV4dFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4vKioqKioqLyBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbi8qKioqKiovIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbi8qKioqKiovIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuLyoqKioqKi8gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuLyoqKioqKi8gXHRcdHJldHVybiBnZXR0ZXI7XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA0KTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IG5vb3A7XG5mdW5jdGlvbiBub29wKCl7fVxuXG4vKioqLyB9KSxcbi8qIDEgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdDtcbmZ1bmN0aW9uIG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdChzb3VyY2Upe3ZhciBvbWl0dGVkS2V5cz1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMV06W107cmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKGZ1bmN0aW9uIHJlbG9jYXRlQWNjZXB0ZWRLZXlzKGhhc2gsa2V5KXtpZihvbWl0dGVkS2V5cy5pbmRleE9mKGtleSk9PT0tMSl7aGFzaFtrZXldPXNvdXJjZVtrZXldO31yZXR1cm4gaGFzaDt9LHt9KTt9XG5cbi8qKiovIH0pLFxuLyogMiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcblxuLyoqKi8gfSksXG4vKiAzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNsYXNzbmFtZXNcIik7XG5cbi8qKiovIH0pLFxuLyogNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3dlYnBhY2tfZXhwb3J0c19fLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX25vb3BfaW5kZXhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xudmFyIEltYWdlPWZ1bmN0aW9uKF9SZWFjdCRQdXJlQ29tcG9uZW50KXtiYWJlbEhlbHBlcnMuaW5oZXJpdHMoSW1hZ2UsX1JlYWN0JFB1cmVDb21wb25lbnQpO2Z1bmN0aW9uIEltYWdlKCl7dmFyIF9yZWY7dmFyIF90ZW1wLF90aGlzLF9yZXQ7YmFiZWxIZWxwZXJzLmNsYXNzQ2FsbENoZWNrKHRoaXMsSW1hZ2UpO2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5Kyspe2FyZ3NbX2tleV09YXJndW1lbnRzW19rZXldO31yZXR1cm4gX3JldD0oX3RlbXA9KF90aGlzPWJhYmVsSGVscGVycy5wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKF9yZWY9SW1hZ2UuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoSW1hZ2UpKS5jYWxsLmFwcGx5KF9yZWYsW3RoaXNdLmNvbmNhdChhcmdzKSkpLF90aGlzKSxfdGhpcy5zdGF0ZT17c3RhdHVzOkltYWdlLnN0YXR1cy5MT0FESU5HfSxfdGVtcCksYmFiZWxIZWxwZXJzLnBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsX3JldCk7fWJhYmVsSGVscGVycy5jcmVhdGVDbGFzcyhJbWFnZSxbe2tleTonY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcycsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpe2lmKG5leHRQcm9wcy5zcmMhPT10aGlzLnByb3BzLnNyYyl7dGhpcy5yZXNldFByZWxvYWRlcigpO3RoaXMuc2V0U3RhdGUoe3N0YXR1czpJbWFnZS5zdGF0dXMuTE9BRElOR30pO319fSx7a2V5Oidjb21wb25lbnREaWRNb3VudCcsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByZWxvYWQoKTt9fSx7a2V5Oidjb21wb25lbnREaWRVcGRhdGUnLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpe3RoaXMucHJlbG9hZCgpO319LHtrZXk6J2NvbXBvbmVudFdpbGxVbm1vdW50Jyx2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMucmVzZXRQcmVsb2FkZXIoKTt9fSx7a2V5OidyZXNldFByZWxvYWRlcicsdmFsdWU6ZnVuY3Rpb24gcmVzZXRQcmVsb2FkZXIoKXt0aGlzLmxvYWRlci5vbmxvYWQ9bnVsbDt0aGlzLmxvYWRlci5vbmVycm9yPW51bGw7dGhpcy5sb2FkZXI9bnVsbDt9fSx7a2V5OidwcmVsb2FkJyx2YWx1ZTpmdW5jdGlvbiBwcmVsb2FkKCl7dmFyIF90aGlzMj10aGlzO2lmKHRoaXMubG9hZGVyKXtyZXR1cm47fXRoaXMubG9hZGVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO3RoaXMubG9hZGVyLm9ubG9hZD1mdW5jdGlvbigpe3JldHVybiBfdGhpczIuc2V0U3RhdGUoe3N0YXR1czpJbWFnZS5zdGF0dXMuTE9BREVEfSk7fTt0aGlzLmxvYWRlci5vbmVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIF90aGlzMi5zZXRTdGF0ZSh7c3RhdHVzOkltYWdlLnN0YXR1cy5FUlJPUn0pO307dGhpcy5sb2FkZXIuc3JjPXRoaXMucHJvcHMuc3JjO319LHtrZXk6J3JlbmRlckltYWdlJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXJJbWFnZSgpe2lmKHRoaXMucHJvcHMuZGlzcGxheUFzQmFja2dyb3VuZEltYWdlKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsYmFiZWxIZWxwZXJzLmV4dGVuZHMoe30sdGhpcy5wcm9wcy5pbWFnZVByb3BzLHtyZWY6J2ltYWdlJyxjbGFzc05hbWU6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0KCkoJ2ItaW1hZ2UnLHRoaXMucHJvcHMuaW1hZ2VQcm9wcy5jbGFzc05hbWUpLHRpdGxlOnRoaXMucHJvcHMuYWx0LHN0eWxlOmJhYmVsSGVscGVycy5leHRlbmRzKHt9LHRoaXMucHJvcHMuaW1hZ2VQcm9wcy5zdHlsZSx7YmFja2dyb3VuZEltYWdlOid1cmwoJyt0aGlzLnByb3BzLnNyYysnKSd9KX0pKTt9cmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5jcmVhdGVFbGVtZW50KCdpbWcnLGJhYmVsSGVscGVycy5leHRlbmRzKHt9LHRoaXMucHJvcHMuaW1hZ2VQcm9wcyx7cmVmOidpbWFnZScsY2xhc3NOYW1lOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCgpKCdiLWltYWdlJyx0aGlzLnByb3BzLmltYWdlUHJvcHMuY2xhc3NOYW1lKSxzcmM6dGhpcy5wcm9wcy5zcmMsYWx0OnRoaXMucHJvcHMuYWx0LG9uTG9hZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10sb25FcnJvcjpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL119KSk7fX0se2tleToncmVuZGVyU3RhdHVzJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXJTdGF0dXMoKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsYmFiZWxIZWxwZXJzLmV4dGVuZHMoe30sdGhpcy5wcm9wcy5zdGF0dXNQcm9wcyx7cmVmOidzdGF0dXMnLGNsYXNzTmFtZTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQoKSgnYi1pbWFnZS1zdGF0dXMnLHRoaXMucHJvcHMuc3RhdHVzUHJvcHMuY2xhc3NOYW1lLHsnYi1pbWFnZS1sb2FkaW5nJzp0aGlzLnN0YXRlLnN0YXR1cz09PUltYWdlLnN0YXR1cy5MT0FESU5HLCdiLWltYWdlLWxvYWRlZCc6dGhpcy5zdGF0ZS5zdGF0dXM9PT1JbWFnZS5zdGF0dXMuTE9BREVELCdiLWltYWdlLWVycm9yJzp0aGlzLnN0YXRlLnN0YXR1cz09PUltYWdlLnN0YXR1cy5FUlJPUn0pLHJvbGU6J3ByZXNlbnRhdGlvbid9KSk7fX0se2tleToncmVuZGVyJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXIoKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsYmFiZWxIZWxwZXJzLmV4dGVuZHMoe30sX193ZWJwYWNrX3JlcXVpcmVfXy5pKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKSh0aGlzLnByb3BzLEltYWdlLmludGVybmFsS2V5cykse3JlZjond3JhcHBlcicsY2xhc3NOYW1lOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCgpKCdiLWltYWdlLXdyYXBwZXInLHRoaXMucHJvcHMuY2xhc3NOYW1lKX0pLHRoaXMucmVuZGVySW1hZ2UoKSx0aGlzLnJlbmRlclN0YXR1cygpKTt9fV0pO3JldHVybiBJbWFnZTt9KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5QdXJlQ29tcG9uZW50KTtJbWFnZS5zdGF0dXM9e0xPQURJTkc6J0xPQURJTkcnLExPQURFRDonTE9BREVEJyxFUlJPUjonRVJST1InfTtJbWFnZS5wcm9wVHlwZXM9e2FsdDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zdHJpbmcsZGlzcGxheUFzQmFja2dyb3VuZEltYWdlOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmJvb2wsaW1hZ2VQcm9wczpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5vYmplY3Qsc3JjOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLnN0cmluZy5pc1JlcXVpcmVkLHN0YXR1c1Byb3BzOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLm9iamVjdH07SW1hZ2UuZGVmYXVsdFByb3BzPXthbHQ6bnVsbCxkaXNwbGF5QXNCYWNrZ3JvdW5kSW1hZ2U6ZmFsc2UsaW1hZ2VQcm9wczp7fSxzcmM6J2Fib3V0OmJsYW5rJyxzdGF0dXNQcm9wczp7fX07SW1hZ2UuaW50ZXJuYWxLZXlzPU9iamVjdC5rZXlzKEltYWdlLmRlZmF1bHRQcm9wcyk7LyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiZGVmYXVsdFwiXSA9IEltYWdlO1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIGluZGV4LmpzIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbiBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNCk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgZmZkNmJiNDU3ZjQ5ZjI4NTJiNDYiLCIvKipcbiAqIEEgZHVtbXkgZnVuY3Rpb24gd2l0aCBubyBzaWRlIGVmZmVjdHMuIENvbW1vbmx5IHVzZWQgd2hlbiBtb2NraW5nIGludGVyZmFjZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLW5vb3AvaW5kZXguanMiLCIvKipcbiAqIFJldHVybnMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBzdXBwbGllZCBvYmplY3Qgd2l0aG91dCB0aGUgZ2l2ZW4ga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSwgb21pdHRlZEtleXMgPSBbXSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbiByZWxvY2F0ZUFjY2VwdGVkS2V5cyhoYXNoLCBrZXkpIHtcbiAgICAgICAgaWYgKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGhhc2hba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhhc2g7XG5cbiAgICB9LCB7fSk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiYW1kXCI6XCJyZWFjdFwiLFwiY29tbW9uanMyXCI6XCJyZWFjdFwiLFwicm9vdFwiOlwiUmVhY3RcIn1cbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY2xhc3NuYW1lc1wiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCB7XCJjb21tb25qczJcIjpcImNsYXNzbmFtZXNcIn1cbi8vIG1vZHVsZSBpZCA9IDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCBub29wIGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1ub29wL2luZGV4JztcbmltcG9ydCBvbWl0IGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXgnO1xuXG4vKipcbiMgSW1hZ2Vcbl9fQW4gaW1hZ2UgYmxvY2sgd2l0aCBwbGFjZWhvbGRlciBzdXBwb3J0IGZvciBsb2FkaW5nIGFuZCBmYWxsYmFjayBzY2VuYXJpb3MuX19cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW1hZ2UgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgc3RhdHVzID0ge1xuICAgICAgICBMT0FESU5HOiAnTE9BRElORycsXG4gICAgICAgIExPQURFRDogJ0xPQURFRCcsXG4gICAgICAgIEVSUk9SOiAnRVJST1InLFxuICAgIH1cblxuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhIHdyaXR0ZW4gZGVzY3JpcHRpb24gb2YgdGhlIGltYWdlIGZvciBzZWFyY2ggZW5naW5lcywgaG92ZXJ0ZXh0IGFuZCB0aG9zZSB1c2luZyBhY2Nlc3NpYmlsaXR5IHRlY2hub2xvZ2llczsgYXBwbGllZCB0byB0aGUgYC5iLWltYWdlYCBhcyB0aGUgSFRNTCBhdHRyaWJ1dGVzIGBhbHRgIG9yIGB0aXRsZWAsIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiByZW5kZXJlZCBub2RlXG4gICAgICAgICAqL1xuICAgICAgICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGVtaXRzIHRoZSBpbWFnZSBhcyBhIGA8ZGl2PmAgd2l0aCBgYmFja2dyb3VuZC1pbWFnZWAgY3NzIHByb3BlcnR5IHNldCBpbnN0ZWFkIG9mIGA8aW1nPmBcbiAgICAgICAgICovXG4gICAgICAgIGRpc3BsYXlBc0JhY2tncm91bmRJbWFnZTogUHJvcFR5cGVzLmJvb2wsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFueSBbUmVhY3Qtc3VwcG9ydGVkIGF0dHJpYnV0ZV0oaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90YWdzLWFuZC1hdHRyaWJ1dGVzLmh0bWwjaHRtbC1hdHRyaWJ1dGVzKTsgYXBwbGllZCB0byB0aGUgYC5iLWltYWdlYCBub2RlXG4gICAgICAgICAqL1xuICAgICAgICBpbWFnZVByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhIHZhbGlkIHBhdGggdG8gdGhlIGRlc2lyZWQgaW1hZ2VcbiAgICAgICAgICovXG4gICAgICAgIHNyYzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhbnkgW1JlYWN0LXN1cHBvcnRlZCBhdHRyaWJ1dGVdKGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdGFncy1hbmQtYXR0cmlidXRlcy5odG1sI2h0bWwtYXR0cmlidXRlcyk7IGFwcGxpZWQgdG8gdGhlIGAuYi1pbWFnZS1zdGF0dXNgIG5vZGVcbiAgICAgICAgICovXG4gICAgICAgIHN0YXR1c1Byb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIH1cblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGFsdDogbnVsbCxcbiAgICAgICAgZGlzcGxheUFzQmFja2dyb3VuZEltYWdlOiBmYWxzZSxcbiAgICAgICAgaW1hZ2VQcm9wczoge30sXG4gICAgICAgIHNyYzogJ2Fib3V0OmJsYW5rJyxcbiAgICAgICAgc3RhdHVzUHJvcHM6IHt9LFxuICAgIH1cblxuICAgIHN0YXRpYyBpbnRlcm5hbEtleXMgPSBPYmplY3Qua2V5cyhJbWFnZS5kZWZhdWx0UHJvcHMpXG5cbiAgICBzdGF0ZSA9IHtcbiAgICAgICAgc3RhdHVzOiBJbWFnZS5zdGF0dXMuTE9BRElORyxcbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICBpZiAobmV4dFByb3BzLnNyYyAhPT0gdGhpcy5wcm9wcy5zcmMpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRQcmVsb2FkZXIoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe3N0YXR1czogSW1hZ2Uuc3RhdHVzLkxPQURJTkd9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLnByZWxvYWQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB0aGlzLnJlc2V0UHJlbG9hZGVyKCk7XG4gICAgfVxuXG4gICAgcmVzZXRQcmVsb2FkZXIoKSB7XG4gICAgICAgIHRoaXMubG9hZGVyLm9ubG9hZCA9IG51bGw7XG4gICAgICAgIHRoaXMubG9hZGVyLm9uZXJyb3IgPSBudWxsO1xuICAgICAgICB0aGlzLmxvYWRlciA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJlbG9hZCgpIHtcbiAgICAgICAgaWYgKHRoaXMubG9hZGVyKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMubG9hZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG5cbiAgICAgICAgdGhpcy5sb2FkZXIub25sb2FkID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7c3RhdHVzOiBJbWFnZS5zdGF0dXMuTE9BREVEfSk7XG4gICAgICAgIHRoaXMubG9hZGVyLm9uZXJyb3IgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtzdGF0dXM6IEltYWdlLnN0YXR1cy5FUlJPUn0pO1xuXG4gICAgICAgIHRoaXMubG9hZGVyLnNyYyA9IHRoaXMucHJvcHMuc3JjO1xuICAgIH1cblxuICAgIHJlbmRlckltYWdlKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5kaXNwbGF5QXNCYWNrZ3JvdW5kSW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5pbWFnZVByb3BzfVxuICAgICAgICAgICAgICAgICAgICByZWY9J2ltYWdlJ1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KCdiLWltYWdlJywgdGhpcy5wcm9wcy5pbWFnZVByb3BzLmNsYXNzTmFtZSl9XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPXt0aGlzLnByb3BzLmFsdH1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMucHJvcHMuaW1hZ2VQcm9wcy5zdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogYHVybCgke3RoaXMucHJvcHMuc3JjfSlgLFxuICAgICAgICAgICAgICAgICAgICB9fSAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuaW1hZ2VQcm9wc31cbiAgICAgICAgICAgICAgICByZWY9J2ltYWdlJ1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goJ2ItaW1hZ2UnLCB0aGlzLnByb3BzLmltYWdlUHJvcHMuY2xhc3NOYW1lKX1cbiAgICAgICAgICAgICAgICBzcmM9e3RoaXMucHJvcHMuc3JjfVxuICAgICAgICAgICAgICAgIGFsdD17dGhpcy5wcm9wcy5hbHR9XG4gICAgICAgICAgICAgICAgb25Mb2FkPXtub29wfVxuICAgICAgICAgICAgICAgIG9uRXJyb3I9e25vb3B9IC8+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVyU3RhdHVzKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiB7Li4udGhpcy5wcm9wcy5zdGF0dXNQcm9wc31cbiAgICAgICAgICAgICAgICAgcmVmPSdzdGF0dXMnXG4gICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goJ2ItaW1hZ2Utc3RhdHVzJywgdGhpcy5wcm9wcy5zdGF0dXNQcm9wcy5jbGFzc05hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgJ2ItaW1hZ2UtbG9hZGluZyc6IHRoaXMuc3RhdGUuc3RhdHVzID09PSBJbWFnZS5zdGF0dXMuTE9BRElORyxcbiAgICAgICAgICAgICAgICAgICAgJ2ItaW1hZ2UtbG9hZGVkJzogdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEltYWdlLnN0YXR1cy5MT0FERUQsXG4gICAgICAgICAgICAgICAgICAgICdiLWltYWdlLWVycm9yJzogdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEltYWdlLnN0YXR1cy5FUlJPUixcbiAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgIHJvbGU9J3ByZXNlbnRhdGlvbicgLz5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgey4uLm9taXQodGhpcy5wcm9wcywgSW1hZ2UuaW50ZXJuYWxLZXlzKX1cbiAgICAgICAgICAgICAgICByZWY9J3dyYXBwZXInXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnYi1pbWFnZS13cmFwcGVyJywgdGhpcy5wcm9wcy5jbGFzc05hbWUpfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJJbWFnZSgpfVxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlclN0YXR1cygpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLWltYWdlL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==
{
"name": "boundless-image",
"version": "1.0.0-beta.3",
"version": "1.0.0-beta.4",
"description": "An image block with placeholder support for loading and fallback scenarios.",
"module": "index.js",
"main": "build/index.js",

@@ -7,0 +6,0 @@ "repository": {

@@ -13,16 +13,16 @@ THIS IS AN AUTOGENERATED FILE. EDIT INDEX.JS INSTEAD.

<table>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default Value</th>
<th>Description</th>
</tr>
<tr>
<td>src</td>
<td><pre><code>string</code></pre></td>
<td><pre><code class="language-js">'about:blank'</code></pre></td>
<td>a valid path to the desired image</td>
</tr>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default Value</th>
<th>Description</th>
</tr>
<tr>
<td>src</td>
<td><pre><code>string</code></pre></td>
<td><pre><code class="language-js">'about:blank'</code></pre></td>
<td>a valid path to the desired image</td>
</tr>
</table>

@@ -34,38 +34,38 @@

<table>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default Value</th>
<th>Description</th>
</tr>
<tr>
<td>alt</td>
<td><pre><code>string</code></pre></td>
<td><pre><code class="language-js">null</code></pre></td>
<td>a written description of the image for search engines, hovertext and those using accessibility technologies; applied to the `.b-image` as the HTML attributes `alt` or `title`, depending on the type of rendered node</td>
</tr>
<tr>
<td>displayAsBackgroundImage</td>
<td><pre><code>bool</code></pre></td>
<td><pre><code class="language-js">false</code></pre></td>
<td>emits the image as a `<div>` with `background-image` css property set instead of `<img>`</td>
</tr>
<tr>
<td>imageProps</td>
<td><pre><code>object</code></pre></td>
<td><pre><code class="language-js">{}</code></pre></td>
<td>any [React-supported attribute](https://facebook.github.io/react/docs/tags-and-attributes.html#html-attributes); applied to the `.b-image` node</td>
</tr>
<tr>
<td>statusProps</td>
<td><pre><code>object</code></pre></td>
<td><pre><code class="language-js">{}</code></pre></td>
<td>any [React-supported attribute](https://facebook.github.io/react/docs/tags-and-attributes.html#html-attributes); applied to the `.b-image-status` node</td>
</tr>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default Value</th>
<th>Description</th>
</tr>
<tr>
<td>alt</td>
<td><pre><code>string</code></pre></td>
<td><pre><code class="language-js">null</code></pre></td>
<td>a written description of the image for search engines, hovertext and those using accessibility technologies; applied to the `.b-image` as the HTML attributes `alt` or `title`, depending on the type of rendered node</td>
</tr>
<tr>
<td>displayAsBackgroundImage</td>
<td><pre><code>bool</code></pre></td>
<td><pre><code class="language-js">false</code></pre></td>
<td>emits the image as a `<div>` with `background-image` css property set instead of `<img>`</td>
</tr>
<tr>
<td>imageProps</td>
<td><pre><code>object</code></pre></td>
<td><pre><code class="language-js">{}</code></pre></td>
<td>any [React-supported attribute](https://facebook.github.io/react/docs/tags-and-attributes.html#html-attributes); applied to the `.b-image` node</td>
</tr>
<tr>
<td>statusProps</td>
<td><pre><code>object</code></pre></td>
<td><pre><code class="language-js">{}</code></pre></td>
<td>any [React-supported attribute](https://facebook.github.io/react/docs/tags-and-attributes.html#html-attributes); applied to the `.b-image-status` node</td>
</tr>
</table>
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc