diff --git a/.babelrc b/.babelrc index 22310352..e90cb228 100644 --- a/.babelrc +++ b/.babelrc @@ -26,11 +26,11 @@ "with_react_hot_loader": { "presets": ["env"], "plugins": [ - "react-hot-loader/babel", "transform-runtime", "transform-react-jsx", "transform-class-properties", - "transform-object-rest-spread" + "transform-object-rest-spread", + "react-hot-loader/babel" ] } } diff --git a/.eslintrc b/.eslintrc index 8d6fa792..74e3abdb 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,13 +1,11 @@ { - "extends": "airbnb", + "plugins": ["babel", "react"], + "extends": ["airbnb"], "env": { "es6": true, "browser": true }, "parser": "babel-eslint", - "plugins": [ - "react" - ], "rules": { "react/jsx-closing-bracket-location": 0, "react/jsx-first-prop-new-line": 0, diff --git a/CHANGELOG.md b/CHANGELOG.md index 1526b4e3..488aefb0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 3.0.0 (March 24, 2019) + +* Added `` +* Added `` +* Added `borderRadius` prop for icons +* A default `aria-label` is generated for the share buttons. It is based on the network name. Use `additionalProps` to override. +* Removed support for Google+. +* Removed support for ``. LinkedIn no longer provides an API to fetch share counts. +* Removed `title` and `description` from ``. +* Fix: `` includes `body` before `url`. +* Fix: `` and `` allow customization of `separator`. +* Fix: `` no longer requires `image` prop +* Fix: `` includes url correctly when shared +* Fix: `` and `` open in screen center to prevent window from jumping after opening +* Thanks @finppp, @madkoding, @andrewl913, @jwrubel, @sinchang and @sergioribeiro! + ## 2.4.0 (Nov 24, 2018) * Added `` and `` diff --git a/README.md b/README.md index 86c1ef2d..4e619e0f 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ Share buttons and counts example +Migrating from v2 to v3? Read [changelog](./CHANGELOG.md). + Migrating from v1 to v2? Read [migration notes](./migrate-v1-to-v2.md). ### Features @@ -17,7 +19,6 @@ Migrating from v1 to v2? Read [migration notes](./migrate-v1-to-v2.md). - Facebook - Twitter - Telegram - - Google+ - Whatsapp - LinkedIn - Pinterest @@ -31,11 +32,11 @@ Migrating from v1 to v2? Read [migration notes](./migrate-v1-to-v2.md). - Workplace - Line - Weibo + - Pocket + - Instapaper - email * share counts for - Facebook - - Google+ - - Linkedin - Pinterest - VK - Odnoklassniki @@ -61,8 +62,7 @@ npm install react-share --save ShareButtons work on all browsers. -ShareCounts works on all browsers, with the exception of Google Plus share count -working only on IE11 and newer (XHR CORS problem). +ShareCounts works on all browsers. ## Compatibility @@ -70,6 +70,8 @@ __Version 1.x.x__: compatible with React versions `0.13.x`, `0.14.x` and `15.x.x __Version 2.x.x__: comptiblity is tested with React 15 and 16. +__Version 3.x.x__: comptiblity is tested with React 15 and 16. + ## API ### Share buttons @@ -77,7 +79,6 @@ __Version 2.x.x__: comptiblity is tested with React 15 and 16. ```js import { FacebookShareButton, - GooglePlusShareButton, LinkedinShareButton, TwitterShareButton, TelegramShareButton, @@ -92,6 +93,8 @@ import { ViberShareButton, WorkplaceShareButton, LineShareButton, + PocketShareButton, + InstapaperShareButton, EmailShareButton, } from 'react-share'; ``` @@ -100,10 +103,9 @@ import { | |Required props|Optional props| |-------|--------|--------------| -|__All__|__`children`__: A React node (e.g. string or element)
__`url`__: URL of the shared page (string)|__`disabled`__: Disables click action and adds `disabled` class (bool)
__`disabledStyle`__: Style when button is disabled (object, default = { opacity: 0.6 })
__`windowWidth`, `windowHeight`__: opened window dimensions (int, different defaults for all share buttons)
__`beforeOnClick`__: Takes a function that returns a Promise to be fulfilled before calling `onClick`. If you do not return promise, `onClick` is called immediately.
__`onShareWindowClose`__: Takes a function to be called after closing share dialog.
__`additionalProps`__: An object to pass any additional properties, such as `aria-*` attributes.| +|__All__|__`children`__: A React node (e.g. string or element)
__`url`__: URL of the shared page (string)|__`disabled`__: Disables click action and adds `disabled` class (bool)
__`disabledStyle`__: Style when button is disabled (object, default = { opacity: 0.6 })
__`windowWidth`, `windowHeight`__: opened window dimensions (int, different defaults for all share buttons)
__`beforeOnClick`__: Takes a function that returns a Promise to be fulfilled before calling `onClick`. If you do not return promise, `onClick` is called immediately.
__`onShareWindowClose`__: Takes a function to be called after closing share dialog.
__`additionalProps`__: An object to pass any additional properties, such as `aria-*` attributes. Provides an override possibility for the default `aria-label`.| |FacebookShareButton|-|__`quote`__: A quote to be shared along with the link. (string)
__`hashtag`__: A hashtag specified by the developer to be added to the shared content. People will still have the opportunity to remove this hashtag in the dialog. The hashtag should include the hash symbol. (string)| -|GooglePlusShareButton|-|-| -|LinkedinShareButton|-|__`title`__: Title of the shared page (string)
__`description`__: Description of the shared page (string)| +|LinkedinShareButton|-|-| |TwitterShareButton|-|__`title`__: Title of the shared page (string)
__`via`__: (string)
__`hashtags`__: (array)| |TelegramShareButton|-|__`title`__: Title of the shared page (string)
| |WhatsappShareButton|-|__`title`__: Title of the shared page (string)
__`separator`__: Separates title from the url, default: " " (string)| @@ -114,19 +116,19 @@ import { |TumblrShareButton|-|__`title`__: Title of the shared page (string)
__`tags`__: (array)
__`caption`__: Description of the shared page (string)| |LivejournalShareButton|-|__`title`__: Title of the shared page (string)
__`description`__: Description of the shared page (string)| |MailruShareButton|-|__`title`__: Title of the shared page (string)
__`description`__: Description of the shared page (string)
__`image`__: An absolute link to the image that will be shared (string)| -|ViberShareButton|-|__`title`__: Title of the shared page (string)
| +|ViberShareButton|-|__`title`__: Title of the shared page (string)
__`separator`__: Separates title from the url, default: " " (string)| |WorkplaceShareButton|-|__`quote`__: A quote to be shared along with the link. (string)
__`hashtag`__: A hashtag specified by the developer to be added to the shared content. People will still have the opportunity to remove this hashtag in the dialog. The hashtag should include the hash symbol. (string)| |LineShareButton|-|__`title`__: Title of the shared page (string)| |WeiboShareButton|-|__`title`__: Title of the shared page (string)
__`image`__: An absolute link to the image that will be shared (string)| -|EmailShareButton|-|__`subject`__: Title of the shared page (string)
__`body`__: Body of the email (string), defaults to shared url.| +|EmailShareButton|-|__`subject`__: Title of the shared page (string)
__`body`__: Body of the email (string), will be prepended to the url.
__`separator`__: Separates body from the url, default: " " (string)
__`openWindow`__: Opens the mail client in a new window. Defaults to false (bool)| +|PocketShareButton|-|__`title`__: Title of the shared page (string). Note that if Pocket detects a title tag on the page being saved, this parameter will be ignored and the title tag of the saved page will be used instead.| +|InstapaperShareButton|-|__`title`__: Title of the shared page (string)
__`description`__: Description of the shared page (string)| ### Share counts ```js import { FacebookShareCount, - GooglePlusShareCount, - LinkedinShareCount, PinterestShareCount, VKShareCount, OKShareCount, @@ -164,7 +166,6 @@ import { TwitterIcon, TelegramIcon, WhatsappIcon, - GooglePlusIcon, LinkedinIcon, PinterestIcon, VKIcon, @@ -176,6 +177,8 @@ import { ViberIcon, WorkplaceIcon, LineIcon, + PocketIcon, + InstapaperIcon, EmailIcon, } from 'react-share'; ``` @@ -186,6 +189,8 @@ Props: * `round`: Whether to show round or rect icons (bool) +* `borderRadius`: Allow rounded corners if using rect icons (number) + * `iconBgStyle`: customize background style, e.g. `fill` (object) * `logoFillColor`: customize logo's fill color (string, default = 'white') diff --git a/demo/Demo.jsx b/demo/Demo.jsx index 0fcd7661..647773cd 100644 --- a/demo/Demo.jsx +++ b/demo/Demo.jsx @@ -3,8 +3,6 @@ import React, { Component } from 'react'; import { FacebookShareCount, - GooglePlusShareCount, - LinkedinShareCount, PinterestShareCount, VKShareCount, OKShareCount, @@ -12,7 +10,6 @@ import { TumblrShareCount, FacebookShareButton, - GooglePlusShareButton, LinkedinShareButton, TwitterShareButton, PinterestShareButton, @@ -29,10 +26,11 @@ import { WorkplaceShareButton, LineShareButton, WeiboShareButton, + PocketShareButton, + InstapaperShareButton, FacebookIcon, TwitterIcon, - GooglePlusIcon, LinkedinIcon, PinterestIcon, VKIcon, @@ -47,6 +45,8 @@ import { ViberIcon, WorkplaceIcon, LineIcon, + PocketIcon, + InstapaperIcon, } from 'react-share'; import './Demo.css'; @@ -118,26 +118,9 @@ class Demo extends Component { -
- - - - - - {count => count} - -
-
@@ -145,12 +128,6 @@ class Demo extends Component { size={32} round /> - - - {count => count} -
@@ -187,8 +164,6 @@ class Demo extends Component { Weibo share button
+ +
+ + + +
+ +
+ + + +
); } diff --git a/demo/Root.jsx b/demo/Root.jsx new file mode 100644 index 00000000..601b68fa --- /dev/null +++ b/demo/Root.jsx @@ -0,0 +1,9 @@ +/* eslint-disable import/no-extraneous-dependencies */ +import React from 'react'; +import { hot } from 'react-hot-loader/root'; + +import Demo from './Demo'; + +const Root = () => ; + +export default hot(Root); diff --git a/demo/index.jsx b/demo/index.jsx index 04c614dc..725dee7a 100644 --- a/demo/index.jsx +++ b/demo/index.jsx @@ -1,7 +1,7 @@ /* eslint-disable import/no-extraneous-dependencies */ import React from 'react'; import ReactDOM from 'react-dom'; -import Demo from './Demo'; +import Root from './Root'; const rootElement = document.createElement('div'); @@ -9,8 +9,4 @@ if (!document.querySelector('div')) { document.body.appendChild(rootElement); } -ReactDOM.render(, rootElement); - -if (module.hot) { - module.hot.accept(); -} +ReactDOM.render(, rootElement); diff --git a/docs/index.html b/docs/index.html index ee9a4380..fe8e25cd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,5 +5,5 @@ react-share demo | Social media share buttons and share counts for React. - + \ No newline at end of file diff --git a/docs/main.031dcc7181405ee17c67.bundle.js b/docs/main.031dcc7181405ee17c67.bundle.js deleted file mode 100644 index 5b6a9d08..00000000 --- a/docs/main.031dcc7181405ee17c67.bundle.js +++ /dev/null @@ -1,38 +0,0 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=136)}([function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,i,a,u,s){if(r(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,o,i,a,u,s],f=0;(c=new Error(t.replace(/%s/g,function(){return l[f++]}))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(e,t,n){"use strict";var r=n(11);e.exports=r},function(e,t,n){"use strict";e.exports=function(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r2&&void 0!==arguments[2]?arguments[2]:function(){return{}},o=arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=function(o){return p.default.createElement(y,(0,r.default)({},o,{network:e,networkLink:t,opts:n(o)}))};return a.propTypes=o,a.defaultProps=i,a}},function(e,t,n){"use strict";(function(t){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -function r(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o=0;c--)if(l[c]!==f[c])return!1;for(c=l.length-1;c>=0;c--)if(s=l[c],!y(e[s],t[s],n,r))return!1;return!0}(e,t,n,a))}return n?e===t:e==t}function b(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function _(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function w(e,t,n,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!o&&v(o,n,"Missing expected exception"+r);var a="string"==typeof r,u=!e&&o&&!n;if((!e&&i.isError(o)&&a&&_(o,n)||u)&&v(o,n,"Got unwanted exception"+r),e&&o&&n&&!_(o,n)||!e&&o)throw o}f.AssertionError=function(e){var t;this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=h(m((t=this).actual),128)+" "+t.operator+" "+h(m(t.expected),128),this.generatedMessage=!0);var n=e.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var r=new Error;if(r.stack){var o=r.stack,i=d(n),a=o.indexOf("\n"+i);if(a>=0){var u=o.indexOf("\n",a+1);o=o.substring(u+1)}this.stack=o}}},i.inherits(f.AssertionError,Error),f.fail=v,f.ok=g,f.equal=function(e,t,n){e!=t&&v(e,t,n,"==",f.equal)},f.notEqual=function(e,t,n){e==t&&v(e,t,n,"!=",f.notEqual)},f.deepEqual=function(e,t,n){y(e,t,!1)||v(e,t,n,"deepEqual",f.deepEqual)},f.deepStrictEqual=function(e,t,n){y(e,t,!0)||v(e,t,n,"deepStrictEqual",f.deepStrictEqual)},f.notDeepEqual=function(e,t,n){y(e,t,!1)&&v(e,t,n,"notDeepEqual",f.notDeepEqual)},f.notDeepStrictEqual=function e(t,n,r){y(t,n,!0)&&v(t,n,r,"notDeepStrictEqual",e)},f.strictEqual=function(e,t,n){e!==t&&v(e,t,n,"===",f.strictEqual)},f.notStrictEqual=function(e,t,n){e===t&&v(e,t,n,"!==",f.notStrictEqual)},f.throws=function(e,t,n){w(!0,e,t,n)},f.doesNotThrow=function(e,t,n){w(!1,e,t,n)},f.ifError=function(e){if(e)throw e};var C=Object.keys||function(e){var t=[];for(var n in e)a.call(e,n)&&t.push(n);return t}}).call(this,n(135))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=function(n){var o=n.className,i=n.iconBgStyle,a=n.logoFillColor,u=n.round,s=n.size,c={width:s,height:s},l="social-icon social-icon--"+e+" "+o;return r.default.createElement("div",{style:c},r.default.createElement("svg",{viewBox:"0 0 64 64",width:s,height:s,className:l},r.default.createElement("g",null,u?r.default.createElement("circle",{cx:"32",cy:"32",r:"31",fill:t.color,style:i}):r.default.createElement("rect",{width:"64",height:"64",fill:t.color,style:i})),r.default.createElement("g",null,r.default.createElement("path",{d:t.icon,fill:a}))))};return n.propTypes={className:o.default.string,iconBgStyle:o.default.object,logoFillColor:o.default.string,round:o.default.bool,size:o.default.number},n.defaultProps={className:"",iconBgStyle:{},logoFillColor:"white",size:64},n};var r=i(n(36)),o=i(n(6));function i(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};e.exports=o},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";e.exports={debugTool:null}},function(e,t,n){"use strict";var r=n(2),o=n(3),i=n(99),a=n(19),u=n(100),s=n(29),c=n(44),l=(n(0),[]),f=0,p=i.getPooled(),d=!1,h=null;function m(){w.ReactReconcileTransaction&&h||r("123")}var v=[{initialize:function(){this.dirtyComponentsLength=l.length},close:function(){this.dirtyComponentsLength!==l.length?(l.splice(0,this.dirtyComponentsLength),_()):l.length=0}},{initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}}];function g(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=i.getPooled(),this.reconcileTransaction=w.ReactReconcileTransaction.getPooled(!0)}function y(e,t){return e._mountOrder-t._mountOrder}function b(e){var t=e.dirtyComponentsLength;t!==l.length&&r("124",t,l.length),l.sort(y),f++;for(var n=0;n1){for(var h=Array(d),m=0;m1){for(var g=Array(v),y=0;y]/,s=n(65)(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{(r=r||document.createElement("div")).innerHTML=""+t+"";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(s=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&u.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}e.exports=s},function(e,t,n){"use strict";var r=/["'&<>]/;e.exports=function(e){return"boolean"==typeof e||"number"==typeof e?""+e:function(e){var t,n=""+e,o=r.exec(n);if(!o)return n;var i="",a=0,u=0;for(a=o.index;a1)for(var n=1;n-1||r("96",e),!c.plugins[n]){t.extractEvents||r("97",e),c.plugins[n]=t;var a=t.eventTypes;for(var s in a)u(a[s],t,s)||r("98",s,e)}}}function u(e,t,n){c.eventNameDispatchConfigs.hasOwnProperty(n)&&r("99",n),c.eventNameDispatchConfigs[n]=e;var o=e.phasedRegistrationNames;if(o){for(var i in o){if(o.hasOwnProperty(i))s(o[i],t,n)}return!0}return!!e.registrationName&&(s(e.registrationName,t,n),!0)}function s(e,t,n){c.registrationNameModules[e]&&r("100",e),c.registrationNameModules[e]=t,c.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){o&&r("101"),o=Array.prototype.slice.call(e),a()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];i.hasOwnProperty(n)&&i[n]===o||(i[n]&&r("102",n),i[n]=o,t=!0)}t&&a()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=c.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){for(var e in o=null,i)i.hasOwnProperty(e)&&delete i[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var a in r)r.hasOwnProperty(a)&&delete r[a]}};e.exports=c},function(e,t,n){"use strict";var r,o,i=n(2),a=n(59);n(0),n(1);function u(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=s.getNodeFromInstance(r),t?a.invokeGuardedCallbackWithCatch(o,n,e):a.invokeGuardedCallback(o,n,e),e.currentTarget=null}var s={isEndish:function(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e},isMoveish:function(e){return"topMouseMove"===e||"topTouchMove"===e},isStartish:function(e){return"topMouseDown"===e||"topTouchStart"===e},executeDirectDispatch:function(e){var t=e._dispatchListeners,n=e._dispatchInstances;Array.isArray(t)&&i("103"),e.currentTarget=t?s.getNodeFromInstance(n):null;var r=t?t(e):null;return e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,r},executeDispatchesInOrder:function(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}(e))}};e.exports=s},function(e,t,n){"use strict";n(3);var r=n(11),o=(n(1),r);e.exports=o},function(e,t,n){"use strict";e.exports=function(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}},function(e,t,n){e.exports={default:n(235),__esModule:!0}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(77)("keys"),o=n(52);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(12),o=n(17),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(51)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){var r=n(32);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(238),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(){function e(e,t){for(var n=0;n0?r:n)(e)}},function(e,t){e.exports={}},function(e,t,n){var r=n(42),o=n(246),i=n(86),a=n(76)("IE_PROTO"),u=function(){},s=function(){var e,t=n(123)("iframe"),r=i.length;for(t.style.display="none",n(250).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("