From 057962f0a81ddbd14a3348789c424bdee2e720c0 Mon Sep 17 00:00:00 2001 From: Robert Pearce Date: Tue, 25 Jun 2019 09:26:03 -0400 Subject: [PATCH] finally committing this starting point up. updated deps, too --- .all-contributorsrc | 69 +- .browserslistrc | 9 + .eslintignore | 6 +- .eslintrc | 62 - .eslintrc.js | 42 + .prettierrc.js | 4 + .storybook/addons.js | 4 + .storybook/base.css | 26 + .storybook/config.js | 7 + .storybook/webpack.config.js | 38 + .travis.yml | 2 +- LICENSE | 31 +- babel.config.js | 62 +- dist/index.cjs.js | 2 + dist/index.cjs.js.map | 1 + dist/index.esm.js | 2 + dist/index.esm.js.map | 1 + docs/app.js | 24402 ------------------- example/app.js | 174 - husky.config.js | 5 + index.js | 3 - jest.config.js | 11 + lint-staged.config.js | 3 + package.json | 136 +- postcss.config.js | 5 + rollup.config.js | 46 + source/Controlled.js | 68 +- source/index.js | 2 +- src/index.js | 15 - stories.js | 26 + test/Controlled.test.js | 46 - test/__snapshots__/Controlled.test.js.snap | 15 - test/index.test.js | 9 - test/setup.js | 5 - yarn.lock | 9683 ++++++-- 35 files changed, 8432 insertions(+), 26590 deletions(-) create mode 100644 .browserslistrc delete mode 100644 .eslintrc create mode 100644 .eslintrc.js create mode 100644 .prettierrc.js create mode 100644 .storybook/addons.js create mode 100644 .storybook/base.css create mode 100644 .storybook/config.js create mode 100644 .storybook/webpack.config.js create mode 100644 dist/index.cjs.js create mode 100644 dist/index.cjs.js.map create mode 100644 dist/index.esm.js create mode 100644 dist/index.esm.js.map delete mode 100644 docs/app.js delete mode 100644 example/app.js create mode 100644 husky.config.js delete mode 100644 index.js create mode 100644 jest.config.js create mode 100644 lint-staged.config.js create mode 100644 postcss.config.js create mode 100644 rollup.config.js delete mode 100644 src/index.js create mode 100644 stories.js delete mode 100644 test/Controlled.test.js delete mode 100644 test/__snapshots__/Controlled.test.js.snap delete mode 100644 test/index.test.js delete mode 100644 test/setup.js diff --git a/.all-contributorsrc b/.all-contributorsrc index 26da7667..404fea30 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1,31 +1,12 @@ { "projectName": "react-medium-image-zoom", "projectOwner": "rpearce", - "repoType": "github", - "repoHost": "https://github.com", "files": [ "README.md" ], "imageSize": 100, "commit": true, "contributors": [ - { - "login": "rpearce", - "name": "Robert Pearce", - "avatar_url": "https://avatars2.githubusercontent.com/u/592876?v=4", - "profile": "https://robertwpearce.com", - "contributions": [ - "code", - "question", - "test", - "bug", - "example", - "design", - "review", - "ideas", - "doc" - ] - }, { "login": "cbothner", "name": "Cameron Bothner", @@ -88,6 +69,23 @@ "bug" ] }, + { + "login": "rpearce", + "name": "Robert Pearce", + "avatar_url": "https://avatars2.githubusercontent.com/u/592876?v=4", + "profile": "https://robertwpearce.com", + "contributions": [ + "code", + "question", + "test", + "bug", + "example", + "design", + "review", + "ideas", + "doc" + ] + }, { "login": "joshsloat", "name": "Josh Sloat", @@ -187,6 +185,37 @@ "contributions": [ "bug" ] + }, + { + "login": "tommoor", + "name": "Tom Moor", + "avatar_url": "https://avatars2.githubusercontent.com/u/380914?v=4", + "profile": "http://tommoor.com", + "contributions": [ + "code", + "bug" + ] + }, + { + "login": "jpreynat", + "name": "Johan Preynat", + "avatar_url": "https://avatars2.githubusercontent.com/u/7927876?v=4", + "profile": "https://github.com/jpreynat", + "contributions": [ + "code", + "bug" + ] + }, + { + "login": "rgabs", + "name": "Rahul Gaba", + "avatar_url": "https://avatars3.githubusercontent.com/u/7898942?v=4", + "profile": "http://rahulgaba.com", + "contributions": [ + "code", + "bug" + ] } - ] + ], + "repoType": "github" } diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 00000000..2b1a4d20 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,9 @@ +# Browsers that we support + +last 3 chrome versions +last 3 ff versions +last 3 safari versions +last 3 edge versions +last 3 ios major versions +last 1 and_chr version +ie >= 11 diff --git a/.eslintignore b/.eslintignore index 438e288e..f2f575fc 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,4 +1,2 @@ -coverage/ -docs/ -node_modules/ -src/ +!.storybook/ +dist/ diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 88a92d24..00000000 --- a/.eslintrc +++ /dev/null @@ -1,62 +0,0 @@ -{ - "env": { - "browser": true, - "es6": true, - "jest": true, - "node": true - }, - "extends": [ - "eslint:recommended", - "plugin:react/recommended" - ], - "parserOptions": { - "ecmaVersion": 2018, - "sourceType": "module" - }, - "plugins": [ - "react" - ], - "rules": { - "array-bracket-spacing": [ "error", "always" ], - "arrow-spacing": [ "error" ], - "block-spacing": [ "error" ], - "camelcase": [ "error" ], - "comma-dangle": [ "error", "never" ], - "computed-property-spacing": [ "error", "never" ], - "curly": [ "error", "all" ], - "eqeqeq": [ "error", "always" ], - "eol-last": [ "error", "always" ], - "func-call-spacing": [ "error", "never" ], - "indent": [ "error", 2 ], - "linebreak-style": [ "error", "unix" ], - "no-console": "off", - "no-else-return": [ "error" ], - "no-empty-function": [ "error" ], - "no-multiple-empty-lines": [2, { "max": 1, "maxEOF": 1 }], - "no-extra-parens": [ "error" ], - "no-lone-blocks": [ "error" ], - "no-multi-assign": [ "error" ], - "no-new": [ "error" ], - "no-new-func": [ "error" ], - "no-param-reassign": [ "error" ], - "no-return-assign": [ "error" ], - "no-sequences": [ "error" ], - "no-trailing-spaces": [ "error" ], - "no-void": [ "error" ], - "no-with": [ "error" ], - "no-useless-return": [ "error" ], - "object-curly-spacing": [ "error", "always" ], - "quotes": [ "error", "single" ], - "react/jsx-uses-react": "error", - "react/jsx-uses-vars": "error", - "react/jsx-no-undef": "error", - "react/prop-types": 0, - "semi": [ "error", "never" ], - "yoda": [ "error" ] - }, - "settings": { - "react": { - "version": "16" - } - } -} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..c853425f --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,42 @@ +module.exports = { + env: { + browser: true, + es6: true, + jest: true, + node: true + }, + extends: [ + 'eslint:recommended', + 'plugin:css-modules/recommended', + 'plugin:jsx-a11y/recommended', + 'plugin:prettier/recommended', + 'plugin:react/recommended' + ], + parserOptions: { + ecmaVersion: 2019, + sourceType: 'module' + }, + plugins: [ + 'css-modules', + 'jsx-a11y', + 'react', + 'react-hooks' + ], + rules: { + 'indent': ['error', 2, { 'SwitchCase': 1 }], + 'jsx-quotes': ['error', 'prefer-double'], + 'jsx-a11y/no-onchange': 0, + 'no-console': ['error', { allow: ['error'] }], + 'no-trailing-spaces': 'error', + 'object-curly-spacing': ['error', 'always'], + 'quotes': ['error', 'single', { 'allowTemplateLiterals': true }], + 'react-hooks/exhaustive-deps': 'warn', + 'react-hooks/rules-of-hooks': 'error', + 'semi': ['error', 'never'] + }, + settings: { + react: { + version: '16' + } + } +} diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 00000000..09bb5f8f --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,4 @@ +module.exports = { + semi: false, + singleQuote: true +} diff --git a/.storybook/addons.js b/.storybook/addons.js new file mode 100644 index 00000000..15ec5b7f --- /dev/null +++ b/.storybook/addons.js @@ -0,0 +1,4 @@ +import '@storybook/addon-a11y/register' +import '@storybook/addon-actions/register' +import '@storybook/addon-knobs/register' +import '@storybook/addon-links/register' diff --git a/.storybook/base.css b/.storybook/base.css new file mode 100644 index 00000000..a6a887aa --- /dev/null +++ b/.storybook/base.css @@ -0,0 +1,26 @@ +html { + font-size: 16px; + box-sizing: border-box; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +html, +body { + min-height: 100%; +} +*, +*:before, +*:after { + box-sizing: inherit; +} +body { + margin: 2em; + font-size: 1rem; + font-family: monospace; + color: #333; +} +body, +input, +button { + -webkit-font-smoothing: antialiased; +} diff --git a/.storybook/config.js b/.storybook/config.js new file mode 100644 index 00000000..2edefd28 --- /dev/null +++ b/.storybook/config.js @@ -0,0 +1,7 @@ +import { configure } from '@storybook/react' + +function loadStories() { + require('../stories.js') +} + +configure(loadStories, module) diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js new file mode 100644 index 00000000..ad3c3b62 --- /dev/null +++ b/.storybook/webpack.config.js @@ -0,0 +1,38 @@ +const path = require('path') + +module.exports = async ({ config }) => { + config.module.rules = config.module.rules.filter( + f => f.test.toString() !== '/\\.css$/' + ) + + config.module.rules.push({ + oneOf: [ + { + test: /\.css$/, + include: /node_modules/, + loaders: [ + 'style-loader', + { + loader: 'css-loader', + options: { modules: false } + }, + 'postcss-loader' + ] + }, + { + test: /\.css$/, + loaders: [ + 'style-loader', + { + loader: 'css-loader', + options: { modules: true } + }, + 'postcss-loader' + ], + include: path.resolve(__dirname, '../') + } + ] + }) + + return config +} diff --git a/.travis.yml b/.travis.yml index f05d1492..24587265 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js node_js: - - "11" + - "12" cache: yarn after_success: - npm run coverage diff --git a/LICENSE b/LICENSE index 7e027d1f..56fa0c3b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,30 @@ -ISC License (ISC) +Copyright (c) 2019, Robert Pearce -Copyright 2019 Robert Pearce +All rights reserved. -Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Robert Pearce nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/babel.config.js b/babel.config.js index 9fb9182b..bfae5e19 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,8 +1,64 @@ const presets = [ - '@babel/preset-env', + [ + '@babel/preset-env', + { + corejs: { version: 3, proposals: true }, + debug: false, + modules: false, + useBuiltIns: 'usage' + } + ], '@babel/preset-react' ] -module.exports = { - presets +const testPresets = [ + [ + '@babel/preset-env', + { + targets: { node: 'current' } + } + ], + '@babel/preset-react' +] + +const plugins = [ + [ + '@babel/plugin-transform-runtime', + { + corejs: { version: 3, proposals: true }, + useESModules: true + } + ] +] + +const prodPlugins = plugins.concat([ + ['transform-react-remove-prop-types', { mode: 'unsafe-wrap' }] +]) + +const overrides = [ + { + test: /node_modules/, + sourceType: 'unambiguous' + } +] + +module.exports = function(api) { + api.cache(true) + + return { + env: { + development: { + plugins, + presets + }, + production: { + plugins: prodPlugins, + presets + }, + test: { + presets: testPresets + } + }, + overrides + } } diff --git a/dist/index.cjs.js b/dist/index.cjs.js new file mode 100644 index 00000000..89aa1141 --- /dev/null +++ b/dist/index.cjs.js @@ -0,0 +1,2 @@ +"use strict";function _interopDefault(t){return t&&"object"==typeof t&&"default"in t?t.default:t}var React=require("react"),React__default=_interopDefault(React),propTypes=require("prop-types"),tinygen=_interopDefault(require("tinygen")),commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function createCommonjsModule(t,e){return t(e={exports:{}},e.exports),e.exports}var O="object",check=function(t){return t&&t.Math==Math&&t},global_1=check(typeof globalThis==O&&globalThis)||check(typeof window==O&&window)||check(typeof self==O&&self)||check(typeof commonjsGlobal==O&&commonjsGlobal)||Function("return this")(),fails=function(t){try{return!!t()}catch(t){return!0}},descriptors=!fails(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),nativePropertyIsEnumerable={}.propertyIsEnumerable,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor&&!nativePropertyIsEnumerable.call({1:2},1),f=NASHORN_BUG?function(t){var e=getOwnPropertyDescriptor(this,t);return!!e&&e.enumerable}:nativePropertyIsEnumerable,objectPropertyIsEnumerable={f:f},createPropertyDescriptor=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},toString={}.toString,classofRaw=function(t){return toString.call(t).slice(8,-1)},split="".split,indexedObject=fails(function(){return!Object("z").propertyIsEnumerable(0)})?function(t){return"String"==classofRaw(t)?split.call(t,""):Object(t)}:Object,requireObjectCoercible=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},toIndexedObject=function(t){return indexedObject(requireObjectCoercible(t))},isObject=function(t){return"object"==typeof t?null!==t:"function"==typeof t},toPrimitive=function(t,e){if(!isObject(t))return t;var r,o;if(e&&"function"==typeof(r=t.toString)&&!isObject(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!isObject(o=r.call(t)))return o;if(!e&&"function"==typeof(r=t.toString)&&!isObject(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")},hasOwnProperty={}.hasOwnProperty,has=function(t,e){return hasOwnProperty.call(t,e)},document=global_1.document,EXISTS=isObject(document)&&isObject(document.createElement),documentCreateElement=function(t){return EXISTS?document.createElement(t):{}},ie8DomDefine=!descriptors&&!fails(function(){return 7!=Object.defineProperty(documentCreateElement("div"),"a",{get:function(){return 7}}).a}),nativeGetOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,f$1=descriptors?nativeGetOwnPropertyDescriptor:function(t,e){if(t=toIndexedObject(t),e=toPrimitive(e,!0),ie8DomDefine)try{return nativeGetOwnPropertyDescriptor(t,e)}catch(t){}if(has(t,e))return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(t,e),t[e])},objectGetOwnPropertyDescriptor={f:f$1},replacement=/#|\.prototype\./,isForced=function(t,e){var r=data[normalize(t)];return r==POLYFILL||r!=NATIVE&&("function"==typeof e?fails(e):!!e)},normalize=isForced.normalize=function(t){return String(t).replace(replacement,".").toLowerCase()},data=isForced.data={},NATIVE=isForced.NATIVE="N",POLYFILL=isForced.POLYFILL="P",isForced_1=isForced,path={},aFunction=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},bindContext=function(t,e,r){if(aFunction(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,o){return t.call(e,r,o)};case 3:return function(r,o,n){return t.call(e,r,o,n)}}return function(){return t.apply(e,arguments)}},anObject=function(t){if(!isObject(t))throw TypeError(String(t)+" is not an object");return t},nativeDefineProperty=Object.defineProperty,f$2=descriptors?nativeDefineProperty:function(t,e,r){if(anObject(t),e=toPrimitive(e,!0),anObject(r),ie8DomDefine)try{return nativeDefineProperty(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t},objectDefineProperty={f:f$2},hide=descriptors?function(t,e,r){return objectDefineProperty.f(t,e,createPropertyDescriptor(1,r))}:function(t,e,r){return t[e]=r,t},getOwnPropertyDescriptor$1=objectGetOwnPropertyDescriptor.f,wrapConstructor=function(t){var e=function(e,r,o){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,r)}return new t(e,r,o)}return t.apply(this,arguments)};return e.prototype=t.prototype,e},_export=function(t,e){var r,o,n,i,a,c,s,u,l=t.target,f=t.global,p=t.stat,y=t.proto,d=f?global_1:p?global_1[l]:(global_1[l]||{}).prototype,T=f?path:path[l]||(path[l]={}),b=T.prototype;for(n in e)r=!isForced_1(f?n:l+(p?".":"#")+n,t.forced)&&d&&has(d,n),a=T[n],r&&(c=t.noTargetGet?(u=getOwnPropertyDescriptor$1(d,n))&&u.value:d[n]),i=r&&c?c:e[n],r&&typeof a==typeof i||(s=t.bind&&r?bindContext(i,global_1):t.wrap&&r?wrapConstructor(i):y&&"function"==typeof i?bindContext(Function.call,i):i,(t.sham||i&&i.sham||a&&a.sham)&&hide(s,"sham",!0),T[n]=s,y&&(has(path,o=l+"Prototype")||hide(path,o,{}),path[o][n]=i,t.real&&b&&!b[n]&&hide(b,n,i)))},isArray=Array.isArray||function(t){return"Array"==classofRaw(t)};_export({target:"Array",stat:!0},{isArray:isArray});var isArray$1=path.Array.isArray,isArray$2=isArray$1,isArray$3=isArray$2;function _arrayWithHoles(t){if(isArray$3(t))return t}var set,get,has$1,iterators={},setGlobal=function(t,e){try{hide(global_1,t,e)}catch(r){global_1[t]=e}return e},shared=createCommonjsModule(function(t){var e=global_1["__core-js_shared__"]||setGlobal("__core-js_shared__",{});(t.exports=function(t,r){return e[t]||(e[t]=void 0!==r?r:{})})("versions",[]).push({version:"3.1.3",mode:"pure",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})}),functionToString=shared("native-function-to-string",Function.toString),WeakMap=global_1.WeakMap,nativeWeakMap="function"==typeof WeakMap&&/native code/.test(functionToString.call(WeakMap)),id=0,postfix=Math.random(),uid=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++id+postfix).toString(36)},keys=shared("keys"),sharedKey=function(t){return keys[t]||(keys[t]=uid(t))},hiddenKeys={},WeakMap$1=global_1.WeakMap,enforce=function(t){return has$1(t)?get(t):set(t,{})},getterFor=function(t){return function(e){var r;if(!isObject(e)||(r=get(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}};if(nativeWeakMap){var store=new WeakMap$1,wmget=store.get,wmhas=store.has,wmset=store.set;set=function(t,e){return wmset.call(store,t,e),e},get=function(t){return wmget.call(store,t)||{}},has$1=function(t){return wmhas.call(store,t)}}else{var STATE=sharedKey("state");hiddenKeys[STATE]=!0,set=function(t,e){return hide(t,STATE,e),e},get=function(t){return has(t,STATE)?t[STATE]:{}},has$1=function(t){return has(t,STATE)}}var IteratorPrototype,PrototypeOfArrayIteratorPrototype,arrayIterator,internalState={set:set,get:get,has:has$1,enforce:enforce,getterFor:getterFor},toObject=function(t){return Object(requireObjectCoercible(t))},correctPrototypeGetter=!fails(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),IE_PROTO=sharedKey("IE_PROTO"),ObjectPrototype=Object.prototype,objectGetPrototypeOf=correctPrototypeGetter?Object.getPrototypeOf:function(t){return t=toObject(t),has(t,IE_PROTO)?t[IE_PROTO]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?ObjectPrototype:null},nativeSymbol=!!Object.getOwnPropertySymbols&&!fails(function(){return!String(Symbol())}),Symbol$1=global_1.Symbol,store$1=shared("wks"),wellKnownSymbol=function(t){return store$1[t]||(store$1[t]=nativeSymbol&&Symbol$1[t]||(nativeSymbol?Symbol$1:uid)("Symbol."+t))},ITERATOR=wellKnownSymbol("iterator"),BUGGY_SAFARI_ITERATORS=!1;[].keys&&("next"in(arrayIterator=[].keys())?(PrototypeOfArrayIteratorPrototype=objectGetPrototypeOf(objectGetPrototypeOf(arrayIterator)))!==Object.prototype&&(IteratorPrototype=PrototypeOfArrayIteratorPrototype):BUGGY_SAFARI_ITERATORS=!0),null==IteratorPrototype&&(IteratorPrototype={});var iteratorsCore={IteratorPrototype:IteratorPrototype,BUGGY_SAFARI_ITERATORS:BUGGY_SAFARI_ITERATORS},ceil=Math.ceil,floor=Math.floor,toInteger=function(t){return isNaN(t=+t)?0:(t>0?floor:ceil)(t)},min=Math.min,toLength=function(t){return t>0?min(toInteger(t),9007199254740991):0},max=Math.max,min$1=Math.min,toAbsoluteIndex=function(t,e){var r=toInteger(t);return r<0?max(r+e,0):min$1(r,e)},createMethod=function(t){return function(e,r,o){var n,i=toIndexedObject(e),a=toLength(i.length),c=toAbsoluteIndex(o,a);if(t&&r!=r){for(;a>c;)if((n=i[c++])!=n)return!0}else for(;a>c;c++)if((t||c in i)&&i[c]===r)return t||c||0;return!t&&-1}},arrayIncludes={includes:createMethod(!0),indexOf:createMethod(!1)},indexOf=arrayIncludes.indexOf,objectKeysInternal=function(t,e){var r,o=toIndexedObject(t),n=0,i=[];for(r in o)!has(hiddenKeys,r)&&has(o,r)&&i.push(r);for(;e.length>n;)has(o,r=e[n++])&&(~indexOf(i,r)||i.push(r));return i},enumBugKeys=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],objectKeys=Object.keys||function(t){return objectKeysInternal(t,enumBugKeys)},objectDefineProperties=descriptors?Object.defineProperties:function(t,e){anObject(t);for(var r,o=objectKeys(e),n=o.length,i=0;n>i;)objectDefineProperty.f(t,r=o[i++],e[r]);return t},aFunction$1=function(t){return"function"==typeof t?t:void 0},getBuiltIn=function(t,e){return arguments.length<2?aFunction$1(path[t])||aFunction$1(global_1[t]):path[t]&&path[t][e]||global_1[t]&&global_1[t][e]},html=getBuiltIn("document","documentElement"),IE_PROTO$1=sharedKey("IE_PROTO"),PROTOTYPE="prototype",Empty=function(){},createDict=function(){var t,e=documentCreateElement("iframe"),r=enumBugKeys.length;for(e.style.display="none",html.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write("