From a129430927f8c734f7473980638a98ffe2975a6a Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Mon, 18 Jan 2021 19:55:48 -0800 Subject: [PATCH 01/12] Added feature, no test case yet though. Test commit --- package.json | 2 +- packages/idyll-cli/src/index.js | 693 +++++++++++++++++--------------- yarn.lock | 2 +- 3 files changed, 365 insertions(+), 332 deletions(-) diff --git a/package.json b/package.json index ef6820085..abed77302 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "husky": "^1.1.3", - "lerna": "^2.0.0", + "lerna": "^2.11.0", "prettier": "1.15.1", "pretty-quick": "^1.8.0" }, diff --git a/packages/idyll-cli/src/index.js b/packages/idyll-cli/src/index.js index 8b83f8d69..0cf13dacb 100755 --- a/packages/idyll-cli/src/index.js +++ b/packages/idyll-cli/src/index.js @@ -1,330 +1,363 @@ -const fs = require('fs'); -const { dirname, basename, extname, join } = require('path'); -const EventEmitter = require('events'); -const mkdirp = require('mkdirp'); - -const pathBuilder = require('./path-builder'); -const configureNode = require('./node-config'); -const pipeline = require('./pipeline'); -const { ComponentResolver, DataResolver, CSSResolver } = require('./resolvers'); - -const debug = require('debug')('idyll:cli'); - -function createDirectories(paths) { - mkdirp.sync(paths.OUTPUT_DIR); - mkdirp.sync(paths.STATIC_OUTPUT_DIR); - mkdirp.sync(paths.TMP_DIR); -} - -const searchParentDirectories = packageDir => { - while (true) { - if (packageDir === join(packageDir, '..')) { - break; - } - - packageDir = join(packageDir, '..'); - const parentPackageFilePath = join(packageDir, 'package.json'); - - const parentPackageFile = fs.existsSync(parentPackageFilePath) - ? require(parentPackageFilePath) - : {}; - - if (parentPackageFile.idyll) { - return parentPackageFile.idyll; - } - } - return {}; -}; - -const idyll = (options = {}, cb) => { - const opts = Object.assign( - {}, - { - alias: {}, - watch: false, - open: true, - datasets: 'data', - minify: true, - ssr: true, - components: 'components', - static: 'static', - defaultComponents: dirname(require.resolve('idyll-components')), - layout: 'centered', - theme: 'github', - output: 'build', - outputCSS: 'idyll_styles.css', - outputJS: 'idyll_index.js', - port: process.env.PORT || 3000, - temp: '.idyll', - template: join(__dirname, 'client', '_index.html'), - transform: [], - compiler: {}, - compileLibs: false - }, - options - ); - - const paths = pathBuilder(opts); - debug('Reading from paths:', paths); - - createDirectories(paths); - configureNode(paths); - - const inputPackage = fs.existsSync(paths.PACKAGE_FILE) - ? require(paths.PACKAGE_FILE) - : {}; - const inputConfig = inputPackage.idyll || {}; - - const parentInputConfig = searchParentDirectories(paths.INPUT_DIR); - Object.assign(opts, parentInputConfig, inputConfig, options); - - // Resolve compiler plugins: - if (opts.compiler.postProcessors) { - opts.compiler.postProcessors = opts.compiler.postProcessors.map( - processor => { - try { - return require(require.resolve(processor, { - paths: [paths.INPUT_DIR] - })); - } catch (e) { - console.log(e); - console.warn('\n\nCould not find post-processor plugin: ', processor); - } - } - ); - } - - // Resolve context: - if (opts.context) { - if (opts.context.indexOf('./') > -1) { - opts.context = join(paths.INPUT_DIR, opts.context); - } - } - - let bs; - let watchers; - - const createResolvers = () => { - return new Map([ - ['components', new ComponentResolver(opts, paths)], - ['css', new CSSResolver(opts, paths)], - ['data', new DataResolver(opts, paths)] - ]); - }; - - class IdyllInstance extends EventEmitter { - getPaths() { - return paths; - } - - getOptions() { - return opts; - } - - build(src) { - // Resolvers are recreated on each build, since new data dependencies might have been added. - const resolvers = createResolvers(); - - if (src) opts.inputString = src; - - debug('Starting the build'); - // Leaving the following timing statement in for backwards-compatibility. - if (opts.debug) console.time('Build Time'); - - pipeline - .build(opts, paths, resolvers) - .then(output => { - debug('Build completed'); - // Leaving the following timing statement in for backwards-compatibility. - if (opts.debug) console.timeEnd('Build Time'); - this.emit('update', output); - }) - .then(() => { - if (!bs && opts.watch && opts.inputFile) { - bs = require('browser-sync').create(); - // any time an input files changes we will recompile .idl source - // and write ast.json, components.js, and data.js to disk - watchers = [ - bs.watch(paths.IDYLL_INPUT_FILE, { ignoreInitial: true }, () => - inst.build() - ), - // that will cause watchify to rebuild so we just watch the output bundle file - // and reload when it is updated. Watch options are to prevent multiple change - // events since the bundle file can be somewhat large - bs.watch( - paths.JS_OUTPUT_FILE, - { awaitWriteFinish: { stabilityThreshold: 499 } }, - bs.reload - ), - // when CSS changes we reassemble and inject it - bs.watch(paths.CSS_INPUT_FILE, { ignoreInitial: true }, () => { - pipeline.updateCSS(paths, resolvers.get('css')).then(() => { - bs.reload('styles.css'); - }); - }), - // when any static files change we do a full rebuild. - bs.watch(paths.STATIC_DIR, { ignoreInitial: true }, () => - inst.build() - ) - ]; - - // Each resolver is responsible for generating a list of directories to watch for - // their corresponding data types. - if (!opts.compiler.postProcessors) { - resolvers.forEach((resolver, name) => { - let watcher = bs.watch( - resolver.getDirectories(), - { ignoreInitial: true }, - () => { - inst.build(); - } - ); - watchers.push(watcher); - }); - } - - bs.init({ - cors: true, - logLevel: 'warn', - logPrefix: 'Idyll', - notify: false, - server: [paths.OUTPUT_DIR], - ui: false, - port: opts.port, - open: opts.open, - plugins: [require('bs-pretty-message')] - }); - } - }) - .then(() => { - this.emit('complete'); - }) - .catch(error => { - // pass along errors if anyone is listening - if (this.listenerCount('error')) { - this.emit('error', error); - } else { - // otherwise dump to the console - console.error(error); - } - bs && - bs.sockets && - bs.sockets.emit('fullscreen:message', { - title: 'Error compiling Idyll project', - body: error.toString() - }); - }); - return this; - } - - // Returns an array of the default components - // Each element of the array is an object with keys 'name' and 'path' - // 'name' is the file name of the component - // 'path' is the absolute path to the component - getComponents() { - var components = []; - var defaultCompsDir = this.getPaths().DEFAULT_COMPONENT_DIRS; - var compsDir = this.getComponentsDirectory(); // grabs the `components` folder of their current directory - var componentDirs = [defaultCompsDir, compsDir]; - - componentDirs.forEach(dirs => { - dirs.forEach(dir => { - try { - fs.statSync(dir); - } catch (error) { - // for when directory doesn't exist - return; - } - fs.readdirSync(dir + '').forEach(file => { - var compName = file.replace(/\.jsx?/g, ''); - if (compName !== 'index') { - // avoid conflicts with index.js file - components.push({ - name: compName, - path: dir + '/' + file - }); - } - }); - }); - }); - return components; - } - - // Returns the directory of the `components` folder - // of this IdyllInstance - // Note: this isn't guaranteed to exist - // It just adds "component" to the directory of this idyll instance - getComponentsDirectory() { - return this.getPaths().COMPONENT_DIRS; - } - - // Adds the given component (directory) to the components used - // in this IdyllInstance - // If there is already a component for the given componentPath, - // it will be overwritten with the one from componentPath - // If there is no components/ directory, then it will be created - addComponent(componentPath) { - const componentsDirectory = this.getComponentsDirectory(); - // We grab the name of the component, and put that in the components directory - const componentFileName = basename(componentPath); - // ensure components directory exists - try { - fs.statSync(componentsDirectory[0]); - } catch (err) { - fs.mkdirSync(componentsDirectory[0]); - } - fs.copyFileSync( - componentPath, - componentsDirectory[0] + '/' + componentFileName - ); - } - - // Returns an array of the current datasets used in this IdyllInstance's data directory - getDatasets() { - var dataFolder = this.getPaths().DATA_DIR; - var defaultData = []; - fs.readdirSync(dataFolder).forEach(file => { - var fileName = file; - var datasetPath = dataFolder + '/' + file; - var extension = extname(file); - defaultData.push({ - name: fileName, - path: datasetPath, - extension: extension - }); - }); - return defaultData; - } - - // Adds a dataset to the current datasets used in this IdyllInstance - // It will be added to the `data` directory of this IdyllInstance - addDataset(datasetPath) { - const datasetDirectory = this.getPaths().DATA_DIR; - const datasetName = basename(datasetPath); - try { - fs.statSync(datasetDirectory); - } catch (err) { - fs.mkdirSync(datasetDirectory); - } - fs.copyFileSync(datasetPath, datasetDirectory + '/' + datasetName); - } - - stopWatching() { - if (watchers.length) { - watchers.forEach(w => w.close()); - watchers = null; - } - if (bs) bs.exit(); - } - } - - const inst = new IdyllInstance(); - - return inst; -}; - -idyll.getVersion = () => { - return require('../package.json').version; -}; - -module.exports = idyll; +const fs = require('fs'); +const { dirname, basename, extname, join } = require('path'); +const EventEmitter = require('events'); +const mkdirp = require('mkdirp'); +const commandLineArgs = require('command-line-args'); + +const pathBuilder = require('./path-builder'); +const configureNode = require('./node-config'); +const pipeline = require('./pipeline'); +const { ComponentResolver, DataResolver, CSSResolver } = require('./resolvers'); +const { forEach } = require('svg-tags'); + +const debug = require('debug')('idyll:cli'); + +const optionDefinitions = [{ name: 'env', alias: 'e', type: String }]; +const options = commandLineArgs(optionDefinitions); + +function createDirectories(paths) { + mkdirp.sync(paths.OUTPUT_DIR); + mkdirp.sync(paths.STATIC_OUTPUT_DIR); + mkdirp.sync(paths.TMP_DIR); +} + +const searchParentDirectories = packageDir => { + while (true) { + if (packageDir === join(packageDir, '..')) { + break; + } + + packageDir = join(packageDir, '..'); + const parentPackageFilePath = join(packageDir, 'package.json'); + + const parentPackageFile = fs.existsSync(parentPackageFilePath) + ? require(parentPackageFilePath) + : {}; + + if (parentPackageFile.idyll) { + // Check for an idyll env key if array found + if (Array.isArray(parentPackageFile.idyll)) { + if (options.env == null) { + return parentPackageFile.idyll[0]; + } else { + for (var obj in parentPackageFile.idyll) { + if (obj[0] === options.env) { + return obj[1]; + } + } + console.error( + 'No env found matching ' + + options.env + + ' in inferred package.json: ' + + parentPackageFilePath + ); + } + } else { + // env passed but package.json is in wrong format + if (options.env != null) { + console.error( + 'No env found matching ' + + options.env + + ' in inferred package.json: ' + + parentPackageFilePath + ); + } + return parentPackageFile.idyll; + } + } + } + return {}; +}; + +const idyll = (options = {}, cb) => { + const opts = Object.assign( + {}, + { + alias: {}, + watch: false, + open: true, + datasets: 'data', + minify: true, + ssr: true, + components: 'components', + static: 'static', + defaultComponents: dirname(require.resolve('idyll-components')), + layout: 'centered', + theme: 'github', + output: 'build', + outputCSS: 'idyll_styles.css', + outputJS: 'idyll_index.js', + port: process.env.PORT || 3000, + temp: '.idyll', + template: join(__dirname, 'client', '_index.html'), + transform: [], + compiler: {}, + compileLibs: false + }, + options + ); + + const paths = pathBuilder(opts); + debug('Reading from paths:', paths); + + createDirectories(paths); + configureNode(paths); + + const inputPackage = fs.existsSync(paths.PACKAGE_FILE) + ? require(paths.PACKAGE_FILE) + : {}; + const inputConfig = inputPackage.idyll || {}; + + const parentInputConfig = searchParentDirectories(paths.INPUT_DIR); + Object.assign(opts, parentInputConfig, inputConfig, options); + + // Resolve compiler plugins: + if (opts.compiler.postProcessors) { + opts.compiler.postProcessors = opts.compiler.postProcessors.map( + processor => { + try { + return require(require.resolve(processor, { + paths: [paths.INPUT_DIR] + })); + } catch (e) { + console.log(e); + console.warn('\n\nCould not find post-processor plugin: ', processor); + } + } + ); + } + + // Resolve context: + if (opts.context) { + if (opts.context.indexOf('./') > -1) { + opts.context = join(paths.INPUT_DIR, opts.context); + } + } + + let bs; + let watchers; + + const createResolvers = () => { + return new Map([ + ['components', new ComponentResolver(opts, paths)], + ['css', new CSSResolver(opts, paths)], + ['data', new DataResolver(opts, paths)] + ]); + }; + + class IdyllInstance extends EventEmitter { + getPaths() { + return paths; + } + + getOptions() { + return opts; + } + + build(src) { + // Resolvers are recreated on each build, since new data dependencies might have been added. + const resolvers = createResolvers(); + + if (src) opts.inputString = src; + + debug('Starting the build'); + // Leaving the following timing statement in for backwards-compatibility. + if (opts.debug) console.time('Build Time'); + + pipeline + .build(opts, paths, resolvers) + .then(output => { + debug('Build completed'); + // Leaving the following timing statement in for backwards-compatibility. + if (opts.debug) console.timeEnd('Build Time'); + this.emit('update', output); + }) + .then(() => { + if (!bs && opts.watch && opts.inputFile) { + bs = require('browser-sync').create(); + // any time an input files changes we will recompile .idl source + // and write ast.json, components.js, and data.js to disk + watchers = [ + bs.watch(paths.IDYLL_INPUT_FILE, { ignoreInitial: true }, () => + inst.build() + ), + // that will cause watchify to rebuild so we just watch the output bundle file + // and reload when it is updated. Watch options are to prevent multiple change + // events since the bundle file can be somewhat large + bs.watch( + paths.JS_OUTPUT_FILE, + { awaitWriteFinish: { stabilityThreshold: 499 } }, + bs.reload + ), + // when CSS changes we reassemble and inject it + bs.watch(paths.CSS_INPUT_FILE, { ignoreInitial: true }, () => { + pipeline.updateCSS(paths, resolvers.get('css')).then(() => { + bs.reload('styles.css'); + }); + }), + // when any static files change we do a full rebuild. + bs.watch(paths.STATIC_DIR, { ignoreInitial: true }, () => + inst.build() + ) + ]; + + // Each resolver is responsible for generating a list of directories to watch for + // their corresponding data types. + if (!opts.compiler.postProcessors) { + resolvers.forEach((resolver, name) => { + let watcher = bs.watch( + resolver.getDirectories(), + { ignoreInitial: true }, + () => { + inst.build(); + } + ); + watchers.push(watcher); + }); + } + + bs.init({ + cors: true, + logLevel: 'warn', + logPrefix: 'Idyll', + notify: false, + server: [paths.OUTPUT_DIR], + ui: false, + port: opts.port, + open: opts.open, + plugins: [require('bs-pretty-message')] + }); + } + }) + .then(() => { + this.emit('complete'); + }) + .catch(error => { + // pass along errors if anyone is listening + if (this.listenerCount('error')) { + this.emit('error', error); + } else { + // otherwise dump to the console + console.error(error); + } + bs && + bs.sockets && + bs.sockets.emit('fullscreen:message', { + title: 'Error compiling Idyll project', + body: error.toString() + }); + }); + return this; + } + + // Returns an array of the default components + // Each element of the array is an object with keys 'name' and 'path' + // 'name' is the file name of the component + // 'path' is the absolute path to the component + getComponents() { + var components = []; + var defaultCompsDir = this.getPaths().DEFAULT_COMPONENT_DIRS; + var compsDir = this.getComponentsDirectory(); // grabs the `components` folder of their current directory + var componentDirs = [defaultCompsDir, compsDir]; + + componentDirs.forEach(dirs => { + dirs.forEach(dir => { + try { + fs.statSync(dir); + } catch (error) { + // for when directory doesn't exist + return; + } + fs.readdirSync(dir + '').forEach(file => { + var compName = file.replace(/\.jsx?/g, ''); + if (compName !== 'index') { + // avoid conflicts with index.js file + components.push({ + name: compName, + path: dir + '/' + file + }); + } + }); + }); + }); + return components; + } + + // Returns the directory of the `components` folder + // of this IdyllInstance + // Note: this isn't guaranteed to exist + // It just adds "component" to the directory of this idyll instance + getComponentsDirectory() { + return this.getPaths().COMPONENT_DIRS; + } + + // Adds the given component (directory) to the components used + // in this IdyllInstance + // If there is already a component for the given componentPath, + // it will be overwritten with the one from componentPath + // If there is no components/ directory, then it will be created + addComponent(componentPath) { + const componentsDirectory = this.getComponentsDirectory(); + // We grab the name of the component, and put that in the components directory + const componentFileName = basename(componentPath); + // ensure components directory exists + try { + fs.statSync(componentsDirectory[0]); + } catch (err) { + fs.mkdirSync(componentsDirectory[0]); + } + fs.copyFileSync( + componentPath, + componentsDirectory[0] + '/' + componentFileName + ); + } + + // Returns an array of the current datasets used in this IdyllInstance's data directory + getDatasets() { + var dataFolder = this.getPaths().DATA_DIR; + var defaultData = []; + fs.readdirSync(dataFolder).forEach(file => { + var fileName = file; + var datasetPath = dataFolder + '/' + file; + var extension = extname(file); + defaultData.push({ + name: fileName, + path: datasetPath, + extension: extension + }); + }); + return defaultData; + } + + // Adds a dataset to the current datasets used in this IdyllInstance + // It will be added to the `data` directory of this IdyllInstance + addDataset(datasetPath) { + const datasetDirectory = this.getPaths().DATA_DIR; + const datasetName = basename(datasetPath); + try { + fs.statSync(datasetDirectory); + } catch (err) { + fs.mkdirSync(datasetDirectory); + } + fs.copyFileSync(datasetPath, datasetDirectory + '/' + datasetName); + } + + stopWatching() { + if (watchers.length) { + watchers.forEach(w => w.close()); + watchers = null; + } + if (bs) bs.exit(); + } + } + + const inst = new IdyllInstance(); + + return inst; +}; + +idyll.getVersion = () => { + return require('../package.json').version; +}; + +module.exports = idyll; diff --git a/yarn.lock b/yarn.lock index 8cd5c7bce..c196540a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7647,7 +7647,7 @@ left-pad@^1.3.0: resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== -lerna@^2.0.0: +lerna@^2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.11.0.tgz#89b5681e286d388dda5bbbdbbf6b84c8094eff65" integrity sha512-kgM6zwe2P2tR30MYvgiLLW+9buFCm6E7o8HnRlhTgm70WVBvXVhydqv+q/MF2HrVZkCawfVtCfetyQmtd4oHhQ== From 5af6bd9b5cae77efe03c6ddf889d8f64c6c7772d Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Mon, 18 Jan 2021 19:58:49 -0800 Subject: [PATCH 02/12] Added command-line-args to idyll-cli --- packages/idyll-cli/package.json | 1 + yarn.lock | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/idyll-cli/package.json b/packages/idyll-cli/package.json index 7fa8ae9e2..c54abb99b 100644 --- a/packages/idyll-cli/package.json +++ b/packages/idyll-cli/package.json @@ -40,6 +40,7 @@ "bs-pretty-message": "^1.0.8", "chalk": "^2.4.1", "change-case": "^3.0.1", + "command-line-args": "^5.1.1", "cross-spawn": "^6.0.5", "csv-parse": "^4.8.2", "debug": "^3.1.0", diff --git a/yarn.lock b/yarn.lock index c196540a7..717a7a6ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3570,7 +3570,7 @@ command-join@^2.0.0: dependencies: "@improved/node" "^1.0.0" -command-line-args@^5.0.0: +command-line-args@^5.0.0, command-line-args@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.1.tgz#88e793e5bb3ceb30754a86863f0401ac92fd369a" integrity sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg== From 6e7a43e236dadd1aa7638cf5dacca188cf03ac7d Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Wed, 27 Jan 2021 00:26:47 -0800 Subject: [PATCH 03/12] Prelim code for config env checking. Still need to write tests and docs --- packages/idyll-cli/src/index.js | 85 ++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 32 deletions(-) diff --git a/packages/idyll-cli/src/index.js b/packages/idyll-cli/src/index.js index 0cf13dacb..88c4074fc 100755 --- a/packages/idyll-cli/src/index.js +++ b/packages/idyll-cli/src/index.js @@ -9,6 +9,7 @@ const configureNode = require('./node-config'); const pipeline = require('./pipeline'); const { ComponentResolver, DataResolver, CSSResolver } = require('./resolvers'); const { forEach } = require('svg-tags'); +const { has } = require('browser-sync'); const debug = require('debug')('idyll:cli'); @@ -35,39 +36,53 @@ const searchParentDirectories = packageDir => { : {}; if (parentPackageFile.idyll) { - // Check for an idyll env key if array found - if (Array.isArray(parentPackageFile.idyll)) { - if (options.env == null) { - return parentPackageFile.idyll[0]; - } else { - for (var obj in parentPackageFile.idyll) { - if (obj[0] === options.env) { - return obj[1]; - } - } - console.error( - 'No env found matching ' + - options.env + - ' in inferred package.json: ' + - parentPackageFilePath - ); - } + return parentPackageFile; + } + } + return {}; +}; + +function selectIdyllConfig(inputPackage) { + var hasMultipleConfigs = false; + if (inputPackage.idyll) { + // Check for an idyll env key if array found + if (Array.isArray(inputPackage.idyll)) { + if (options.env == null) { + return { + idyll: inputPackage.idyll[1], + hasMultipleConfigs: hasMultipleConfigs + }; } else { - // env passed but package.json is in wrong format - if (options.env != null) { - console.error( - 'No env found matching ' + - options.env + - ' in inferred package.json: ' + - parentPackageFilePath - ); + for (var i in inputPackage.idyll) { + hasMultipleConfigs = true; + if (inputPackage.idyll[i][0] === options.env) { + return { + idyll: inputPackage.idyll[i][1], + hasMultipleConfigs: hasMultipleConfigs + }; + } } - return parentPackageFile.idyll; + throw Error( + 'No matching env found out of available options. Please verify your package.json file(s) have ' + + options.env + ); } + } else { + // env passed but package.json is in wrong format + if (options.env != null) { + throw Error('No env found matching ' + options.env); + } + return { + idyll: inputPackage.idyll[0], + hasMultipleConfigs: hasMultipleConfigs + }; } } - return {}; -}; + return { + idyll: {}, + hasMultipleConfigs: hasMultipleConfigs + }; +} const idyll = (options = {}, cb) => { const opts = Object.assign( @@ -106,10 +121,16 @@ const idyll = (options = {}, cb) => { const inputPackage = fs.existsSync(paths.PACKAGE_FILE) ? require(paths.PACKAGE_FILE) : {}; - const inputConfig = inputPackage.idyll || {}; - - const parentInputConfig = searchParentDirectories(paths.INPUT_DIR); - Object.assign(opts, parentInputConfig, inputConfig, options); + const inputConfig = selectIdyllConfig(inputPackage || {}); + const parentInputConfig = selectIdyllConfig( + searchParentDirectories(paths.INPUT_DIR) + ); + if (parentInputConfig.hasMultipleConfigs && !inputConfig.hasMultipleConfigs) { + throw Error( + 'Project root has multiple config options given but the local project does not. Please add envs to the local project and use the --env paramter or remove them from the top level package.' + ); + } + Object.assign(opts, parentInputConfig.idyll, inputConfig.idyll, options); // Resolve compiler plugins: if (opts.compiler.postProcessors) { From c585a68432e4a9fb248b511c64dfbcc0015b595d Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Sun, 31 Jan 2021 10:16:41 -0800 Subject: [PATCH 04/12] merged upstream, reverted changes so passing --- packages/idyll-cli/src/index.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/idyll-cli/src/index.js b/packages/idyll-cli/src/index.js index 88c4074fc..724343864 100755 --- a/packages/idyll-cli/src/index.js +++ b/packages/idyll-cli/src/index.js @@ -43,7 +43,7 @@ const searchParentDirectories = packageDir => { }; function selectIdyllConfig(inputPackage) { - var hasMultipleConfigs = false; + var hasMultipleConfigs = false; // for error if (inputPackage.idyll) { // Check for an idyll env key if array found if (Array.isArray(inputPackage.idyll)) { @@ -121,15 +121,17 @@ const idyll = (options = {}, cb) => { const inputPackage = fs.existsSync(paths.PACKAGE_FILE) ? require(paths.PACKAGE_FILE) : {}; - const inputConfig = selectIdyllConfig(inputPackage || {}); - const parentInputConfig = selectIdyllConfig( - searchParentDirectories(paths.INPUT_DIR) - ); - if (parentInputConfig.hasMultipleConfigs && !inputConfig.hasMultipleConfigs) { - throw Error( - 'Project root has multiple config options given but the local project does not. Please add envs to the local project and use the --env paramter or remove them from the top level package.' - ); - } + const inputConfig = inputPackage || {}; + const parentInputConfig = searchParentDirectories(paths.INPUT_DIR); + // const inputConfig = selectIdyllConfig(inputPackage || {}); + // const parentInputConfig = selectIdyllConfig( + // searchParentDirectories(paths.INPUT_DIR) + // ); + // if (parentInputConfig.hasMultipleConfigs && !inputConfig.hasMultipleConfigs) { + // throw Error( + // 'Project root has multiple config options given but the local project does not. Please add envs to the local project and use the --env paramter or remove them from the top level package.' + // ); + // } Object.assign(opts, parentInputConfig.idyll, inputConfig.idyll, options); // Resolve compiler plugins: From 08842860a22fa0810233d005477ed07657005547 Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Sun, 31 Jan 2021 23:19:11 -0800 Subject: [PATCH 05/12] Fixed errors failing with env code, still need to create a test case --- packages/idyll-cli/src/index.js | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/idyll-cli/src/index.js b/packages/idyll-cli/src/index.js index 724343864..6c8f34407 100755 --- a/packages/idyll-cli/src/index.js +++ b/packages/idyll-cli/src/index.js @@ -43,9 +43,10 @@ const searchParentDirectories = packageDir => { }; function selectIdyllConfig(inputPackage) { - var hasMultipleConfigs = false; // for error + var hasMultipleConfigs = false; // for error handling later if (inputPackage.idyll) { // Check for an idyll env key if array found + console.log('found idyll line'); if (Array.isArray(inputPackage.idyll)) { if (options.env == null) { return { @@ -73,7 +74,7 @@ function selectIdyllConfig(inputPackage) { throw Error('No env found matching ' + options.env); } return { - idyll: inputPackage.idyll[0], + idyll: inputPackage.idyll, hasMultipleConfigs: hasMultipleConfigs }; } @@ -121,17 +122,15 @@ const idyll = (options = {}, cb) => { const inputPackage = fs.existsSync(paths.PACKAGE_FILE) ? require(paths.PACKAGE_FILE) : {}; - const inputConfig = inputPackage || {}; - const parentInputConfig = searchParentDirectories(paths.INPUT_DIR); - // const inputConfig = selectIdyllConfig(inputPackage || {}); - // const parentInputConfig = selectIdyllConfig( - // searchParentDirectories(paths.INPUT_DIR) - // ); - // if (parentInputConfig.hasMultipleConfigs && !inputConfig.hasMultipleConfigs) { - // throw Error( - // 'Project root has multiple config options given but the local project does not. Please add envs to the local project and use the --env paramter or remove them from the top level package.' - // ); - // } + const inputConfig = selectIdyllConfig(inputPackage); + const parentInputConfig = selectIdyllConfig( + searchParentDirectories(paths.INPUT_DIR) + ); + if (parentInputConfig.hasMultipleConfigs && !inputConfig.hasMultipleConfigs) { + throw Error( + 'Project root has multiple config options given but the local project does not. Please add envs to the local project and use the --env paramter or remove them from the top level package.' + ); + } Object.assign(opts, parentInputConfig.idyll, inputConfig.idyll, options); // Resolve compiler plugins: From d9d1527bfe7c7537dfa3db4042586c4b1d683962 Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Mon, 8 Feb 2021 12:16:38 -0800 Subject: [PATCH 06/12] Added prelim test for env options --- packages/idyll-cli/src/index.js | 8 +- .../src/components/CapitalPascal.js | 11 + .../src/components/custom-component.js | 17 + .../src/components/functional-component.js | 5 + .../functional-default-component.js | 9 + .../test/env-options/src/custom-theme.css | 721 ++++++++++++++++++ .../env-options/src/data/example-data.json | 10 + .../env-options/src/data/example-file.csv | 3 + .../idyll-cli/test/env-options/src/index.idl | 58 ++ .../react-simple-pie-chart/.babelrc | 7 + .../react-simple-pie-chart/.npmignore | 11 + .../react-simple-pie-chart/.travis.yml | 8 + .../react-simple-pie-chart/CHANGELOG.md | 41 + .../react-simple-pie-chart/LICENSE | 21 + .../react-simple-pie-chart/README.md | 54 ++ .../react-simple-pie-chart/package.json | 142 ++++ .../test/env-options/src/package.json | 22 + .../test/env-options/src/static/favicon.ico | Bin 0 -> 5430 bytes .../idyll-cli/test/env-options/src/styles.css | 13 + packages/idyll-cli/test/env-options/test.js | 113 +++ 20 files changed, 1273 insertions(+), 1 deletion(-) create mode 100644 packages/idyll-cli/test/env-options/src/components/CapitalPascal.js create mode 100644 packages/idyll-cli/test/env-options/src/components/custom-component.js create mode 100644 packages/idyll-cli/test/env-options/src/components/functional-component.js create mode 100644 packages/idyll-cli/test/env-options/src/components/functional-default-component.js create mode 100644 packages/idyll-cli/test/env-options/src/custom-theme.css create mode 100644 packages/idyll-cli/test/env-options/src/data/example-data.json create mode 100644 packages/idyll-cli/test/env-options/src/data/example-file.csv create mode 100644 packages/idyll-cli/test/env-options/src/index.idl create mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.babelrc create mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.npmignore create mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.travis.yml create mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/CHANGELOG.md create mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/LICENSE create mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/README.md create mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/package.json create mode 100644 packages/idyll-cli/test/env-options/src/package.json create mode 100755 packages/idyll-cli/test/env-options/src/static/favicon.ico create mode 100644 packages/idyll-cli/test/env-options/src/styles.css create mode 100644 packages/idyll-cli/test/env-options/test.js diff --git a/packages/idyll-cli/src/index.js b/packages/idyll-cli/src/index.js index 6c8f34407..ea8cb4f53 100755 --- a/packages/idyll-cli/src/index.js +++ b/packages/idyll-cli/src/index.js @@ -43,12 +43,18 @@ const searchParentDirectories = packageDir => { }; function selectIdyllConfig(inputPackage) { + console.log('in select'); + console.log(options); + console.log(options.env == null); var hasMultipleConfigs = false; // for error handling later if (inputPackage.idyll) { + console.log('in if'); + console.log(inputPackage.idyll); // Check for an idyll env key if array found - console.log('found idyll line'); if (Array.isArray(inputPackage.idyll)) { + console.log('in array'); if (options.env == null) { + console.log('null'); return { idyll: inputPackage.idyll[1], hasMultipleConfigs: hasMultipleConfigs diff --git a/packages/idyll-cli/test/env-options/src/components/CapitalPascal.js b/packages/idyll-cli/test/env-options/src/components/CapitalPascal.js new file mode 100644 index 000000000..d5861b1c7 --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/components/CapitalPascal.js @@ -0,0 +1,11 @@ +const React = require('react'); + +class PascalComponent extends React.PureComponent { + render() { + const { hasError, updateProps, idyll, ...props } = this.props; + + return
This is a custom component
; + } +} + +module.exports = PascalComponent; diff --git a/packages/idyll-cli/test/env-options/src/components/custom-component.js b/packages/idyll-cli/test/env-options/src/components/custom-component.js new file mode 100644 index 000000000..39d111ab6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/components/custom-component.js @@ -0,0 +1,17 @@ +const React = require('react'); + +class CustomComponent extends React.PureComponent { + render() { + const { hasError, updateProps, idyll, ...props } = this.props; + return
This is a custom component
; + } +} + +module.exports = CustomComponent; + +module.exports.IndexedComponent = class extends React.PureComponent { + render() { + const { hasError, updateProps, idyll, ...props } = this.props; + return
This is another custom component
; + } +}; diff --git a/packages/idyll-cli/test/env-options/src/components/functional-component.js b/packages/idyll-cli/test/env-options/src/components/functional-component.js new file mode 100644 index 000000000..01991bcf4 --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/components/functional-component.js @@ -0,0 +1,5 @@ +const React = require('react'); + +module.exports = () => { + return
Let's put the fun back in functional!
; +}; diff --git a/packages/idyll-cli/test/env-options/src/components/functional-default-component.js b/packages/idyll-cli/test/env-options/src/components/functional-default-component.js new file mode 100644 index 000000000..47bdf47fe --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/components/functional-default-component.js @@ -0,0 +1,9 @@ +const React = require('react'); + +export default () => ( +
+ This is some text + + Then some more text +
+); diff --git a/packages/idyll-cli/test/env-options/src/custom-theme.css b/packages/idyll-cli/test/env-options/src/custom-theme.css new file mode 100644 index 000000000..ae41890f6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/custom-theme.css @@ -0,0 +1,721 @@ +@font-face { + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) + format('woff'); +} + +.idyll-root { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: #24292e; + font-family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', + Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', + 'Segoe UI Symbol'; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.idyll-root .pl-c { + color: #969896; +} + +.idyll-root .pl-c1, +.idyll-root .pl-s .pl-v { + color: #0086b3; +} + +.idyll-root .pl-e, +.idyll-root .pl-en { + color: #795da3; +} + +.idyll-root .pl-smi, +.idyll-root .pl-s .pl-s1 { + color: #333; +} + +.idyll-root .pl-ent { + color: #63a35c; +} + +.idyll-root .pl-k { + color: #a71d5d; +} + +.idyll-root .pl-s, +.idyll-root .pl-pds, +.idyll-root .pl-s .pl-pse .pl-s1, +.idyll-root .pl-sr, +.idyll-root .pl-sr .pl-cce, +.idyll-root .pl-sr .pl-sre, +.idyll-root .pl-sr .pl-sra { + color: #183691; +} + +.idyll-root .pl-v, +.idyll-root .pl-smw { + color: #ed6a43; +} + +.idyll-root .pl-bu { + color: #b52a1d; +} + +.idyll-root .pl-ii { + color: #f8f8f8; + background-color: #b52a1d; +} + +.idyll-root .pl-c2 { + color: #f8f8f8; + background-color: #b52a1d; +} + +.idyll-root .pl-c2::before { + content: '^M'; +} + +.idyll-root .pl-sr .pl-cce { + font-weight: bold; + color: #63a35c; +} + +.idyll-root .pl-ml { + color: #693a17; +} + +.idyll-root .pl-mh, +.idyll-root .pl-mh .pl-en, +.idyll-root .pl-ms { + font-weight: bold; + color: #1d3e81; +} + +.idyll-root .pl-mq { + color: #008080; +} + +.idyll-root .pl-mi { + font-style: italic; + color: #333; +} + +.idyll-root .pl-mb { + font-weight: bold; + color: #333; +} + +.idyll-root .pl-md { + color: #bd2c00; + background-color: #ffecec; +} + +.idyll-root .pl-mi1 { + color: #55a532; + background-color: #eaffea; +} + +.idyll-root .pl-mc { + color: #ef9700; + background-color: #ffe3b4; +} + +.idyll-root .pl-mi2 { + color: #d8d8d8; + background-color: #808080; +} + +.idyll-root .pl-mdr { + font-weight: bold; + color: #795da3; +} + +.idyll-root .pl-mo { + color: #1d3e81; +} + +.idyll-root .pl-ba { + color: #595e62; +} + +.idyll-root .pl-sg { + color: #c0c0c0; +} + +.idyll-root .pl-corl { + text-decoration: underline; + color: #183691; +} + +.idyll-root .octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.idyll-root a { + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +.idyll-root a:active, +.idyll-root a:hover { + outline-width: 0; +} + +.idyll-root strong { + font-weight: inherit; +} + +.idyll-root strong { + font-weight: bolder; +} + +.idyll-root h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.idyll-root img { + border-style: none; +} + +.idyll-root svg:not(:root) { + overflow: hidden; +} + +.idyll-root code, +.idyll-root kbd, +.idyll-root pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.idyll-root hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.idyll-root input { + font: inherit; + margin: 10px 10px 20px 0; +} + +.idyll-root input { + overflow: visible; +} + +.idyll-root [type='checkbox'] { + box-sizing: border-box; + padding: 0; +} + +.idyll-root * { + box-sizing: border-box; +} + +.idyll-root input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.idyll-root a { + color: #0366d6; + text-decoration: none; +} + +.idyll-root a:hover { + text-decoration: underline; +} + +.idyll-root strong { + font-weight: 600; +} + +.idyll-root hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; +} + +.idyll-root hr::before { + display: table; + content: ''; +} + +.idyll-root hr::after { + display: table; + clear: both; + content: ''; +} + +.idyll-root table { + border-spacing: 0; + border-collapse: collapse; +} + +.idyll-root td, +.idyll-root th { + padding: 0; +} + +.idyll-root h1, +.idyll-root h2, +.idyll-root h3, +.idyll-root h4, +.idyll-root h5, +.idyll-root h6 { + margin-top: 0; + margin-bottom: 0; +} + +.idyll-root h1 { + font-size: 32px; + font-weight: 600; +} + +.idyll-root h2 { + font-size: 24px; + font-weight: 600; +} + +.idyll-root h3 { + font-size: 20px; + font-weight: 600; +} + +.idyll-root h4 { + font-size: 16px; + font-weight: 600; +} + +.idyll-root h5 { + font-size: 14px; + font-weight: 600; +} + +.idyll-root h6 { + font-size: 12px; + font-weight: 600; +} + +.idyll-root p { + margin-top: 0; + margin-bottom: 10px; +} + +.idyll-root blockquote { + margin: 0; +} + +.idyll-root ul, +.idyll-root ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.idyll-root ol ol, +.idyll-root ul ol { + list-style-type: lower-roman; +} + +.idyll-root ul ul ol, +.idyll-root ul ol ol, +.idyll-root ol ul ol, +.idyll-root ol ol ol { + list-style-type: lower-alpha; +} + +.idyll-root dd { + margin-left: 0; +} + +.idyll-root code { + font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, + monospace; + font-size: 12px; +} + +.idyll-root pre { + margin-top: 0; + margin-bottom: 0; + font: 12px 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, + monospace; +} + +.idyll-root .octicon { + vertical-align: text-bottom; +} + +.idyll-root .pl-0 { + padding-left: 0 !important; +} + +.idyll-root .pl-1 { + padding-left: 4px !important; +} + +.idyll-root .pl-2 { + padding-left: 8px !important; +} + +.idyll-root .pl-3 { + padding-left: 16px !important; +} + +.idyll-root .pl-4 { + padding-left: 24px !important; +} + +.idyll-root .pl-5 { + padding-left: 32px !important; +} + +.idyll-root .pl-6 { + padding-left: 40px !important; +} + +.idyll-root::before { + display: table; + content: ''; +} + +.idyll-root::after { + display: table; + clear: both; + content: ''; +} + +.idyll-root > *:first-child { + margin-top: 0 !important; +} + +.idyll-root > *:last-child { + margin-bottom: 0 !important; +} + +.idyll-root a:not([href]) { + color: inherit; + text-decoration: none; +} + +.idyll-root .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.idyll-root .anchor:focus { + outline: none; +} + +.idyll-root p, +.idyll-root blockquote, +.idyll-root ul, +.idyll-root ol, +.idyll-root dl, +.idyll-root table, +.idyll-root pre { + margin-top: 0; + margin-bottom: 16px; +} + +.idyll-root hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} + +.idyll-root blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} + +.idyll-root blockquote > :first-child { + margin-top: 0; +} + +.idyll-root blockquote > :last-child { + margin-bottom: 0; +} + +.idyll-root kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.idyll-root h1, +.idyll-root h2, +.idyll-root h3, +.idyll-root h4, +.idyll-root h5, +.idyll-root h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.idyll-root h1 .octicon-link, +.idyll-root h2 .octicon-link, +.idyll-root h3 .octicon-link, +.idyll-root h4 .octicon-link, +.idyll-root h5 .octicon-link, +.idyll-root h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.idyll-root h1:hover .anchor, +.idyll-root h2:hover .anchor, +.idyll-root h3:hover .anchor, +.idyll-root h4:hover .anchor, +.idyll-root h5:hover .anchor, +.idyll-root h6:hover .anchor { + text-decoration: none; +} + +.idyll-root h1:hover .anchor .octicon-link, +.idyll-root h2:hover .anchor .octicon-link, +.idyll-root h3:hover .anchor .octicon-link, +.idyll-root h4:hover .anchor .octicon-link, +.idyll-root h5:hover .anchor .octicon-link, +.idyll-root h6:hover .anchor .octicon-link { + visibility: visible; +} + +.idyll-root h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eaecef; +} + +.idyll-root h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eaecef; +} + +.idyll-root h3 { + font-size: 1.25em; +} + +.idyll-root h4 { + font-size: 1em; +} + +.idyll-root h5 { + font-size: 0.875em; +} + +.idyll-root h6 { + font-size: 0.85em; + color: #6a737d; +} + +.idyll-root h1.hed, +.idyll-root h2.dek { + border-bottom: none; + padding-bottom: 0; + margin-top: 12px; +} + +.idyll-root ul, +.idyll-root ol { + padding-left: 2em; +} + +.idyll-root ul ul, +.idyll-root ul ol, +.idyll-root ol ol, +.idyll-root ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.idyll-root li > p { + margin-top: 16px; +} + +.idyll-root li + li { + margin-top: 0.25em; +} + +.idyll-root dl { + padding: 0; +} + +.idyll-root dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.idyll-root dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.idyll-root table { + display: block; + width: 100%; + overflow: auto; +} + +.idyll-root table th { + font-weight: 600; +} + +.idyll-root table th, +.idyll-root table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.idyll-root table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.idyll-root table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.idyll-root img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.idyll-root code { + padding: 0; + padding-top: 0.2em; + padding-bottom: 0.2em; + margin: 0; + font-size: 85%; + background-color: rgba(27, 31, 35, 0.05); + border-radius: 3px; +} + +.idyll-root code::before, +.idyll-root code::after { + letter-spacing: -0.2em; + content: '\00a0'; +} + +.idyll-root pre { + word-wrap: normal; +} + +.idyll-root pre > code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.idyll-root .highlight { + margin-bottom: 16px; +} + +.idyll-root .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.idyll-root .highlight pre, +.idyll-root pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.idyll-root pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.idyll-root pre code::before, +.idyll-root pre code::after { + content: normal; +} + +.idyll-root .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; +} + +.idyll-root kbd { + display: inline-block; + padding: 3px 5px; + font: 11px 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, + monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fcfcfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.idyll-root :checked + .radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.idyll-root .task-list-item { + list-style-type: none; +} + +.idyll-root .task-list-item + .task-list-item { + margin-top: 3px; +} + +.idyll-root .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} + +.idyll-root hr { + border-bottom-color: #eee; +} diff --git a/packages/idyll-cli/test/env-options/src/data/example-data.json b/packages/idyll-cli/test/env-options/src/data/example-data.json new file mode 100644 index 000000000..070f8e68e --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/data/example-data.json @@ -0,0 +1,10 @@ +[ + { + "x": 0, + "y": 0 + }, + { + "x": 1, + "y": 1 + } +] diff --git a/packages/idyll-cli/test/env-options/src/data/example-file.csv b/packages/idyll-cli/test/env-options/src/data/example-file.csv new file mode 100644 index 000000000..e5726765b --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/data/example-file.csv @@ -0,0 +1,3 @@ +"x","y" +0,0 +1,1 \ No newline at end of file diff --git a/packages/idyll-cli/test/env-options/src/index.idl b/packages/idyll-cli/test/env-options/src/index.idl new file mode 100644 index 000000000..b0992ba94 --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/index.idl @@ -0,0 +1,58 @@ +[meta title:"Page Title" description:"Short description of your project" /] + +[Header + title:"Welcome to Idyll" + subtitle:"Open index.idl to start writing" + author:"Your Name Here" + authorLink:"https://idyll-lang.github.io" /] + + +This is an Idyll file. Write text +as you please in here. To add interactivity, +you can add different components to the text. + +[data name:"myData" source:"example-data.json" /] +[data name:"myCSVData" source:"example-file.csv" /] + +[Table data:myData /] + +[Table data:myCSVData /] + +Here is how you can use a variable: + +[var name:"exampleVar" value:5 /] + +[Range min:0 max:10 value:exampleVar /] +[Display value:exampleVar /] + +```js +var code = true; +``` + +And here is a custom component: + +[CustomComponent /] + +You can use standard html tags if a +component with the same name +doesn't exist. + +[ReactSimplePieChart + slices:`[{ + color: '#7b3af5', + value: 0.1, + }, { + color: '#EAE7D6', + value: 0.9, }, + ]` /] + +[PackageJsonComponentTest /] + +This adds support for indexed components: [CustomComponent.IndexedComponent /] + +[FunctionalComponent /] + +[FunctionalDefaultComponent /] + + +[CapitalPascal /] diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.babelrc b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.babelrc new file mode 100644 index 000000000..31a5b4395 --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.babelrc @@ -0,0 +1,7 @@ +{ + "plugins": [ + "transform-react-jsx", + "add-module-exports" + ], + "presets": ["es2015"] +} diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.npmignore b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.npmignore new file mode 100644 index 000000000..7a1e5f2b8 --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.npmignore @@ -0,0 +1,11 @@ +*.svg +.eslintignore +.eslintrc.js +.overcommit.yml +.projections.json +CHANGELOG.md +karma.conf.js +spec +src +tests.webpack.js +webpack.conf.js diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.travis.yml b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.travis.yml new file mode 100644 index 000000000..1b1aeadd3 --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: + - '0.10' +before_install: + - npm install -g npm@2 +before_script: + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/CHANGELOG.md b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/CHANGELOG.md new file mode 100644 index 000000000..f9b26937c --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/CHANGELOG.md @@ -0,0 +1,41 @@ +## master (unreleased) + +## 0.4.1 + +- Use `prop-types` package instead of `React.PropTypes` + +## 0.4.0 + +- Relax dependency on React to allow v15 + +## 0.3.1 + +- Make bundled pie-chart.js easier to import + +## 0.3.0 + +- Upgrade Babel from 5 to 6 +- Convert to ES2015 module +- Convert to ES2015 class + +## 0.2.2 + +- Fix centering when rendering as a circle + +## 0.2.1 + +- Update for React 0.14 +- Move `react` from `dependencies` to `peerDependencies` + +## 0.2.0 + +- Reduce jaggedness from thin segments +- Remove size prop + +## 0.1.1 + +- Fix npm dependencies + +## 0.1.0 + +- Initial release diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/LICENSE b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/LICENSE new file mode 100644 index 000000000..41ec79d0c --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Brigade + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/README.md b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/README.md new file mode 100644 index 000000000..38aa58a78 --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/README.md @@ -0,0 +1,54 @@ +# React Simple Pie Chart + +[![npm version](https://badge.fury.io/js/react-simple-pie-chart.svg)](http://badge.fury.io/js/react-simple-pie-chart) +[![Build Status](https://travis-ci.org/brigade/react-simple-pie-chart.svg?branch=master)](https://travis-ci.org/brigade/react-simple-pie-chart) + +Need a simple `` pie chart and don't want to bring in any heavy +dependencies? You've come to the right place. + +[Demo](http://jsfiddle.net/qgxyw3mp/3/) + +![Example pie +chart](http://brigade.github.io/react-simple-pie-chart/example-pie-chart.svg) + +## Installation + +### npm + +```bash +npm install react-simple-pie-chart --save +``` + +## Usage + +```javascript +import PieChart from 'react-simple-pie-chart'; +``` + +```javascript + +``` + +## Code of conduct + +This project adheres to the [Open Code of Conduct][code-of-conduct]. By +participating, you are expected to honor this code. + +[code-of-conduct]: https://github.com/brigade/code-of-conduct + +## License + +[MIT][mit-license] + +[mit-license]: ./LICENSE diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/package.json b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/package.json new file mode 100644 index 000000000..07828a7c6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/package.json @@ -0,0 +1,142 @@ +{ + "_args": [ + [ + { + "raw": "react-simple-pie-chart", + "scope": null, + "escapedName": "react-simple-pie-chart", + "name": "react-simple-pie-chart", + "rawSpec": "", + "spec": "latest", + "type": "tag" + }, + "/Users/mathisonian/projects/idyll/idyll/packages/idyll-cli/test/test-project/src" + ] + ], + "_from": "react-simple-pie-chart@latest", + "_id": "react-simple-pie-chart@0.4.1", + "_inCache": true, + "_location": "/react-simple-pie-chart", + "_nodeVersion": "6.1.0", + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/react-simple-pie-chart-0.4.1.tgz_1494319311158_0.9599986257962883" + }, + "_npmUser": { + "name": "trotzig", + "email": "henric.trotzig@gmail.com" + }, + "_npmVersion": "3.8.6", + "_phantomChildren": {}, + "_requested": { + "raw": "react-simple-pie-chart", + "scope": null, + "escapedName": "react-simple-pie-chart", + "name": "react-simple-pie-chart", + "rawSpec": "", + "spec": "latest", + "type": "tag" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/react-simple-pie-chart/-/react-simple-pie-chart-0.4.1.tgz", + "_shasum": "d1f4e09238b4c9ea9faa55aaf3df5721c56d26c6", + "_shrinkwrap": null, + "_spec": "react-simple-pie-chart", + "_where": "/Users/mathisonian/projects/idyll/idyll/packages/idyll-cli/test/test-project/src", + "author": { + "name": "Brigade Engineering" + }, + "bugs": { + "url": "https://github.com/brigade/react-simple-pie-chart/issues" + }, + "contributors": [ + { + "name": "Joe Lencioni" + } + ], + "dependencies": {}, + "description": "A React component to generate simple pie charts.", + "devDependencies": { + "babel": "^6.0.0", + "babel-cli": "^6.0.0", + "babel-core": "^6.0.0", + "babel-loader": "^6.0.0", + "babel-plugin-add-module-exports": "^0.1.2", + "babel-plugin-transform-react-jsx": "^6.0.0", + "babel-preset-es2015": "^6.0.0", + "eslint": "^1.3.1", + "eslint-config-brigade": "^1.6.0", + "eslint-plugin-react": "^3.3.1", + "jasmine-core": "^2.1.3", + "karma": "^0.13.9", + "karma-chrome-launcher": "^0.2.0", + "karma-cli": "^0.1.0", + "karma-firefox-launcher": "^0.1.6", + "karma-jasmine": "^0.3.6", + "karma-webpack": "^1.7.0", + "prop-types": "^15.5.8", + "react": "^0.14.0", + "react-addons-test-utils": "^0.14.0", + "react-dom": "^0.14.0", + "webpack": "^1.12.0" + }, + "directories": {}, + "dist": { + "shasum": "d1f4e09238b4c9ea9faa55aaf3df5721c56d26c6", + "tarball": "https://registry.npmjs.org/react-simple-pie-chart/-/react-simple-pie-chart-0.4.1.tgz" + }, + "gitHead": "95c7a73382a48910b6529858091d4ec29e77f5c9", + "homepage": "https://github.com/brigade/react-simple-pie-chart", + "keywords": [ + "react", + "component", + "react-component", + "charts", + "charting", + "data visualization", + "pie chart" + ], + "license": "MIT", + "main": "build/npm/pie_chart.js", + "maintainers": [ + { + "name": "bigsley", + "email": "bigsley@gmail.com" + }, + { + "name": "brigade", + "email": "services+npm@brigade.com" + }, + { + "name": "janpaul123", + "email": "me@janpaulposma.nl" + }, + { + "name": "lencioni", + "email": "joe.lencioni@gmail.com" + }, + { + "name": "trotzig", + "email": "henric.trotzig@gmail.com" + } + ], + "name": "react-simple-pie-chart", + "optionalDependencies": {}, + "peerDependencies": { + "react": ">=0.13" + }, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+https://github.com/brigade/react-simple-pie-chart.git" + }, + "scripts": { + "build-npm": "rm -rf build/npm && mkdir -p build/npm && babel src/pie_chart.jsx --out-file build/npm/pie_chart.js", + "prepublish": "npm run build-npm", + "test": "eslint . --ext .js,.jsx && ./node_modules/.bin/karma start" + }, + "version": "0.4.1" +} diff --git a/packages/idyll-cli/test/env-options/src/package.json b/packages/idyll-cli/test/env-options/src/package.json new file mode 100644 index 000000000..9663deafe --- /dev/null +++ b/packages/idyll-cli/test/env-options/src/package.json @@ -0,0 +1,22 @@ +{ + "name": "test-project", + "version": "1.0.0", + "scripts": { + "start": "idyll index.idl --watch --css styles.css --layout centered --theme github --spellcheck", + "build": "idyll index.idl --layout centered --theme ./custom-theme.css --css styles.css" + }, + "idyll": [ + "prod", + { + "alias": { + "PackageJsonComponentTest": "CustomComponent" + }, + "layout": "none" + } + ], + "dependencies": { + "idyll-component": "^1.1.0", + "react-simple-pie-chart": "^0.4.1" + }, + "devDependencies": {} +} diff --git a/packages/idyll-cli/test/env-options/src/static/favicon.ico b/packages/idyll-cli/test/env-options/src/static/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..7031685a9c15e7d7e2fe2278658df20f5f42878f GIT binary patch literal 5430 zcmeHLOHUI~6dsK~fS=Hny3(avHzw>%)M$(vb)lj$5=9Jgp;3%6ypbqEf5v_;w~<>W|g zv`Bf|Bx$=ONft}`e>f8xD5Z(LAXE8Ao$=lJU!!3`@gJt4R6;N{7(izW2oc> zw3Y$*I)+TiD1DS3a}d)OEKuMSL_#+RM`j6B7+S^U3|C;w~KejWpn8*T8n4ssiq&a+Sy_CR>e zb~C*`v&(Nu!Ner-jD_8M*-d=3(v{8LHf02IvkBgJ_;f^WJ`);;tNGgD3347;?H!TN z{&#%Yt+6`T_)q-r`s6_BNI8D&xP(A`5A4K=CSo`1cNq@Vy!eGWxW2j&D`?`iJf7bG zhZ+#O2Uhn8Pp|0a`Yw$>Wq1n7W0g>bZNl~txz+xwZwf{by=KM2?gF@(FUX#xfAZvg zVffLa7Pvmky#F9wsfSDCJwoEl!*n0Rd_#W7+P8m*AHvtGUtyN%C_B8!*q`C*<=u!D zHY0JqPAGo#dMoUDI@Z0c2cFx1FVhRCeG{0^y(1K#>`(aN;ttNe^SQ+=?yBIlDI8a{ z{XK8TF?*_p^}wSU`%_Ogd%A}Aq@wXthe|WLI&CWA7wgmZCY#*t#QeV7;_c7kRPCKW z>Tnqrb`_*+Fv~}Z`*{9ivG^?4LuFmu_hfhK1ikT_S1*yToOO?{w!81X55WZ#iw V#|GjVdA>QWn~zueF0fJaKLJed { + return fs.readdirSync(dir).filter(f => f !== '.DS_Store'); +}; + +const dirToHash = dir => { + return getFilenames(dir).reduce((acc, val) => { + let fullPath = join(dir, val); + + if (fs.statSync(fullPath).isFile()) { + acc[val] = fs.readFileSync(fullPath, 'utf8'); + } else { + acc[val] = dirToHash(fullPath); + } + + return acc; + }, {}); +}; + +const PROJECT_DIR = join(__dirname, 'src'); + +const PROJECT_BUILD_DIR = join(PROJECT_DIR, 'build'); +const PROJECT_IDYLL_CACHE = join(PROJECT_DIR, '.idyll'); +let projectBuildFilenames; +let projectBuildResults; + +const EXPECTED_DIR = join(__dirname, 'expected-output'); +// build output to test against +const EXPECTED_BUILD_DIR = join(EXPECTED_DIR, 'build'); +const EXPECTED_BUILD_FILENAMES = getFilenames(EXPECTED_BUILD_DIR); +const EXPECTED_BUILD_RESULTS = dirToHash(EXPECTED_BUILD_DIR); + +beforeAll(() => { + rimraf.sync(PROJECT_BUILD_DIR); + rimraf.sync(PROJECT_IDYLL_CACHE); +}); + +let output; +let idyll = { + one_env: null, + two_env_pick_prod: null, + two_env_pick_dev: null, + nested: null +}; +let idyll_1; + +beforeAll(done => { + idyll_1 = Idyll({ + inputFile: join(PROJECT_DIR, 'index.idl'), + output: PROJECT_BUILD_DIR, + htmlTemplate: join(PROJECT_DIR, '_index.html'), + components: join(PROJECT_DIR, 'components'), + datasets: join(PROJECT_DIR, 'data'), + theme: join(PROJECT_DIR, 'custom-theme.css'), + css: join(PROJECT_DIR, 'styles.css'), + googleFonts: ['Hanalei Fill'], + favicon: 'static/favicon.ico', + compiler: { + spellcheck: false + }, + minify: false + }); + + idyll_1 + .on('update', o => { + output = o; + projectBuildFilenames = getFilenames(PROJECT_BUILD_DIR); + projectBuildResults = dirToHash(PROJECT_BUILD_DIR); + done(); + }) + .build(); +}); + +test('list no env param works as expected', () => { + expect(idyll_1.getOptions()).toEqual({ + alias: { + PackageJsonComponentTest: 'CustomComponent' + }, + layout: 'none', + theme: join(PROJECT_DIR, 'custom-theme.css'), + minify: false, + ssr: true, + watch: false, + open: true, + compileLibs: false, + inputFile: join(PROJECT_DIR, 'index.idl'), + output: PROJECT_BUILD_DIR, + htmlTemplate: join(PROJECT_DIR, '_index.html'), + components: join(PROJECT_DIR, 'components'), + css: join(PROJECT_DIR, 'styles.css'), + defaultComponents: dirname(require.resolve('idyll-components')), + temp: '.idyll', + template: resolve(join(__dirname, '/../../src/client/_index.html')), + datasets: join(PROJECT_DIR, 'data'), + static: 'static', + transform: [], + port: 3000, + googleFonts: ['Hanalei Fill'], + outputCSS: 'idyll_styles.css', + outputJS: 'idyll_index.js', + favicon: 'static/favicon.ico', + compiler: { + spellcheck: false + }, + inputString: fs.readFileSync(join(PROJECT_DIR, 'index.idl'), 'utf-8') + }); +}); From a33d5fd34a8232c589274d2671fd83a187056576 Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Sun, 21 Feb 2021 12:21:19 -0800 Subject: [PATCH 07/12] Added Idyll({env:...}) support and fixed tests --- packages/idyll-cli/src/index.js | 46 +- .../src/components/CapitalPascal.js | 11 - .../src/components/custom-component.js | 17 - .../src/components/functional-component.js | 5 - .../functional-default-component.js | 9 - .../test/env-options/src/custom-theme.css | 721 ------------------ .../env-options/src/data/example-data.json | 10 - .../env-options/src/data/example-file.csv | 3 - .../idyll-cli/test/env-options/src/index.idl | 58 -- .../react-simple-pie-chart/.babelrc | 7 - .../react-simple-pie-chart/.npmignore | 11 - .../react-simple-pie-chart/.travis.yml | 8 - .../react-simple-pie-chart/CHANGELOG.md | 41 - .../react-simple-pie-chart/LICENSE | 21 - .../react-simple-pie-chart/README.md | 54 -- .../react-simple-pie-chart/package.json | 142 ---- .../test/env-options/src/package.json | 22 - .../test/env-options/src/static/favicon.ico | Bin 5430 -> 0 bytes .../idyll-cli/test/env-options/src/styles.css | 13 - packages/idyll-cli/test/env-options/test.js | 120 +-- 20 files changed, 90 insertions(+), 1229 deletions(-) delete mode 100644 packages/idyll-cli/test/env-options/src/components/CapitalPascal.js delete mode 100644 packages/idyll-cli/test/env-options/src/components/custom-component.js delete mode 100644 packages/idyll-cli/test/env-options/src/components/functional-component.js delete mode 100644 packages/idyll-cli/test/env-options/src/components/functional-default-component.js delete mode 100644 packages/idyll-cli/test/env-options/src/custom-theme.css delete mode 100644 packages/idyll-cli/test/env-options/src/data/example-data.json delete mode 100644 packages/idyll-cli/test/env-options/src/data/example-file.csv delete mode 100644 packages/idyll-cli/test/env-options/src/index.idl delete mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.babelrc delete mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.npmignore delete mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.travis.yml delete mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/CHANGELOG.md delete mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/LICENSE delete mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/README.md delete mode 100644 packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/package.json delete mode 100644 packages/idyll-cli/test/env-options/src/package.json delete mode 100755 packages/idyll-cli/test/env-options/src/static/favicon.ico delete mode 100644 packages/idyll-cli/test/env-options/src/styles.css diff --git a/packages/idyll-cli/src/index.js b/packages/idyll-cli/src/index.js index ea8cb4f53..809c4c310 100755 --- a/packages/idyll-cli/src/index.js +++ b/packages/idyll-cli/src/index.js @@ -14,7 +14,7 @@ const { has } = require('browser-sync'); const debug = require('debug')('idyll:cli'); const optionDefinitions = [{ name: 'env', alias: 'e', type: String }]; -const options = commandLineArgs(optionDefinitions); +const commandLineOptions = commandLineArgs(optionDefinitions); function createDirectories(paths) { mkdirp.sync(paths.OUTPUT_DIR); @@ -27,7 +27,6 @@ const searchParentDirectories = packageDir => { if (packageDir === join(packageDir, '..')) { break; } - packageDir = join(packageDir, '..'); const parentPackageFilePath = join(packageDir, 'package.json'); @@ -42,27 +41,20 @@ const searchParentDirectories = packageDir => { return {}; }; -function selectIdyllConfig(inputPackage) { - console.log('in select'); - console.log(options); - console.log(options.env == null); +function selectIdyllConfig(inputPackage, env) { var hasMultipleConfigs = false; // for error handling later if (inputPackage.idyll) { - console.log('in if'); - console.log(inputPackage.idyll); // Check for an idyll env key if array found if (Array.isArray(inputPackage.idyll)) { - console.log('in array'); - if (options.env == null) { - console.log('null'); + if (env == null) { return { - idyll: inputPackage.idyll[1], + idyll: inputPackage.idyll[0][1], hasMultipleConfigs: hasMultipleConfigs }; } else { for (var i in inputPackage.idyll) { hasMultipleConfigs = true; - if (inputPackage.idyll[i][0] === options.env) { + if (inputPackage.idyll[i][0] === env) { return { idyll: inputPackage.idyll[i][1], hasMultipleConfigs: hasMultipleConfigs @@ -71,13 +63,13 @@ function selectIdyllConfig(inputPackage) { } throw Error( 'No matching env found out of available options. Please verify your package.json file(s) have ' + - options.env + env ); } } else { // env passed but package.json is in wrong format - if (options.env != null) { - throw Error('No env found matching ' + options.env); + if (env != null) { + throw Error('No env found matching ' + env); } return { idyll: inputPackage.idyll, @@ -114,7 +106,8 @@ const idyll = (options = {}, cb) => { template: join(__dirname, 'client', '_index.html'), transform: [], compiler: {}, - compileLibs: false + compileLibs: false, + env: commandLineOptions.env }, options ); @@ -128,13 +121,26 @@ const idyll = (options = {}, cb) => { const inputPackage = fs.existsSync(paths.PACKAGE_FILE) ? require(paths.PACKAGE_FILE) : {}; - const inputConfig = selectIdyllConfig(inputPackage); + + if ( + commandLineOptions.env !== options.env && + (commandLineOptions.env !== undefined && options.env !== undefined) + ) { + //Should one supercede the other? + throw Error( + "Mismatch between Idyll env provided and command line arg. Please remove the Idyll({env='...',...} or the command line argument." + ); + } + + const env = commandLineOptions.env || options.env; + const inputConfig = selectIdyllConfig(inputPackage, env); const parentInputConfig = selectIdyllConfig( - searchParentDirectories(paths.INPUT_DIR) + searchParentDirectories(paths.INPUT_DIR), + env ); if (parentInputConfig.hasMultipleConfigs && !inputConfig.hasMultipleConfigs) { throw Error( - 'Project root has multiple config options given but the local project does not. Please add envs to the local project and use the --env paramter or remove them from the top level package.' + 'Project root has multiple config options given but the local project does not. Please add envs to the local project and use the --env parameter or remove them from the top level package.' ); } Object.assign(opts, parentInputConfig.idyll, inputConfig.idyll, options); diff --git a/packages/idyll-cli/test/env-options/src/components/CapitalPascal.js b/packages/idyll-cli/test/env-options/src/components/CapitalPascal.js deleted file mode 100644 index d5861b1c7..000000000 --- a/packages/idyll-cli/test/env-options/src/components/CapitalPascal.js +++ /dev/null @@ -1,11 +0,0 @@ -const React = require('react'); - -class PascalComponent extends React.PureComponent { - render() { - const { hasError, updateProps, idyll, ...props } = this.props; - - return
This is a custom component
; - } -} - -module.exports = PascalComponent; diff --git a/packages/idyll-cli/test/env-options/src/components/custom-component.js b/packages/idyll-cli/test/env-options/src/components/custom-component.js deleted file mode 100644 index 39d111ab6..000000000 --- a/packages/idyll-cli/test/env-options/src/components/custom-component.js +++ /dev/null @@ -1,17 +0,0 @@ -const React = require('react'); - -class CustomComponent extends React.PureComponent { - render() { - const { hasError, updateProps, idyll, ...props } = this.props; - return
This is a custom component
; - } -} - -module.exports = CustomComponent; - -module.exports.IndexedComponent = class extends React.PureComponent { - render() { - const { hasError, updateProps, idyll, ...props } = this.props; - return
This is another custom component
; - } -}; diff --git a/packages/idyll-cli/test/env-options/src/components/functional-component.js b/packages/idyll-cli/test/env-options/src/components/functional-component.js deleted file mode 100644 index 01991bcf4..000000000 --- a/packages/idyll-cli/test/env-options/src/components/functional-component.js +++ /dev/null @@ -1,5 +0,0 @@ -const React = require('react'); - -module.exports = () => { - return
Let's put the fun back in functional!
; -}; diff --git a/packages/idyll-cli/test/env-options/src/components/functional-default-component.js b/packages/idyll-cli/test/env-options/src/components/functional-default-component.js deleted file mode 100644 index 47bdf47fe..000000000 --- a/packages/idyll-cli/test/env-options/src/components/functional-default-component.js +++ /dev/null @@ -1,9 +0,0 @@ -const React = require('react'); - -export default () => ( -
- This is some text - - Then some more text -
-); diff --git a/packages/idyll-cli/test/env-options/src/custom-theme.css b/packages/idyll-cli/test/env-options/src/custom-theme.css deleted file mode 100644 index ae41890f6..000000000 --- a/packages/idyll-cli/test/env-options/src/custom-theme.css +++ /dev/null @@ -1,721 +0,0 @@ -@font-face { - font-family: octicons-link; - src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) - format('woff'); -} - -.idyll-root { - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - line-height: 1.5; - color: #24292e; - font-family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', - Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', - 'Segoe UI Symbol'; - font-size: 16px; - line-height: 1.5; - word-wrap: break-word; -} - -.idyll-root .pl-c { - color: #969896; -} - -.idyll-root .pl-c1, -.idyll-root .pl-s .pl-v { - color: #0086b3; -} - -.idyll-root .pl-e, -.idyll-root .pl-en { - color: #795da3; -} - -.idyll-root .pl-smi, -.idyll-root .pl-s .pl-s1 { - color: #333; -} - -.idyll-root .pl-ent { - color: #63a35c; -} - -.idyll-root .pl-k { - color: #a71d5d; -} - -.idyll-root .pl-s, -.idyll-root .pl-pds, -.idyll-root .pl-s .pl-pse .pl-s1, -.idyll-root .pl-sr, -.idyll-root .pl-sr .pl-cce, -.idyll-root .pl-sr .pl-sre, -.idyll-root .pl-sr .pl-sra { - color: #183691; -} - -.idyll-root .pl-v, -.idyll-root .pl-smw { - color: #ed6a43; -} - -.idyll-root .pl-bu { - color: #b52a1d; -} - -.idyll-root .pl-ii { - color: #f8f8f8; - background-color: #b52a1d; -} - -.idyll-root .pl-c2 { - color: #f8f8f8; - background-color: #b52a1d; -} - -.idyll-root .pl-c2::before { - content: '^M'; -} - -.idyll-root .pl-sr .pl-cce { - font-weight: bold; - color: #63a35c; -} - -.idyll-root .pl-ml { - color: #693a17; -} - -.idyll-root .pl-mh, -.idyll-root .pl-mh .pl-en, -.idyll-root .pl-ms { - font-weight: bold; - color: #1d3e81; -} - -.idyll-root .pl-mq { - color: #008080; -} - -.idyll-root .pl-mi { - font-style: italic; - color: #333; -} - -.idyll-root .pl-mb { - font-weight: bold; - color: #333; -} - -.idyll-root .pl-md { - color: #bd2c00; - background-color: #ffecec; -} - -.idyll-root .pl-mi1 { - color: #55a532; - background-color: #eaffea; -} - -.idyll-root .pl-mc { - color: #ef9700; - background-color: #ffe3b4; -} - -.idyll-root .pl-mi2 { - color: #d8d8d8; - background-color: #808080; -} - -.idyll-root .pl-mdr { - font-weight: bold; - color: #795da3; -} - -.idyll-root .pl-mo { - color: #1d3e81; -} - -.idyll-root .pl-ba { - color: #595e62; -} - -.idyll-root .pl-sg { - color: #c0c0c0; -} - -.idyll-root .pl-corl { - text-decoration: underline; - color: #183691; -} - -.idyll-root .octicon { - display: inline-block; - vertical-align: text-top; - fill: currentColor; -} - -.idyll-root a { - background-color: transparent; - -webkit-text-decoration-skip: objects; -} - -.idyll-root a:active, -.idyll-root a:hover { - outline-width: 0; -} - -.idyll-root strong { - font-weight: inherit; -} - -.idyll-root strong { - font-weight: bolder; -} - -.idyll-root h1 { - font-size: 2em; - margin: 0.67em 0; -} - -.idyll-root img { - border-style: none; -} - -.idyll-root svg:not(:root) { - overflow: hidden; -} - -.idyll-root code, -.idyll-root kbd, -.idyll-root pre { - font-family: monospace, monospace; - font-size: 1em; -} - -.idyll-root hr { - box-sizing: content-box; - height: 0; - overflow: visible; -} - -.idyll-root input { - font: inherit; - margin: 10px 10px 20px 0; -} - -.idyll-root input { - overflow: visible; -} - -.idyll-root [type='checkbox'] { - box-sizing: border-box; - padding: 0; -} - -.idyll-root * { - box-sizing: border-box; -} - -.idyll-root input { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -.idyll-root a { - color: #0366d6; - text-decoration: none; -} - -.idyll-root a:hover { - text-decoration: underline; -} - -.idyll-root strong { - font-weight: 600; -} - -.idyll-root hr { - height: 0; - margin: 15px 0; - overflow: hidden; - background: transparent; - border: 0; - border-bottom: 1px solid #dfe2e5; -} - -.idyll-root hr::before { - display: table; - content: ''; -} - -.idyll-root hr::after { - display: table; - clear: both; - content: ''; -} - -.idyll-root table { - border-spacing: 0; - border-collapse: collapse; -} - -.idyll-root td, -.idyll-root th { - padding: 0; -} - -.idyll-root h1, -.idyll-root h2, -.idyll-root h3, -.idyll-root h4, -.idyll-root h5, -.idyll-root h6 { - margin-top: 0; - margin-bottom: 0; -} - -.idyll-root h1 { - font-size: 32px; - font-weight: 600; -} - -.idyll-root h2 { - font-size: 24px; - font-weight: 600; -} - -.idyll-root h3 { - font-size: 20px; - font-weight: 600; -} - -.idyll-root h4 { - font-size: 16px; - font-weight: 600; -} - -.idyll-root h5 { - font-size: 14px; - font-weight: 600; -} - -.idyll-root h6 { - font-size: 12px; - font-weight: 600; -} - -.idyll-root p { - margin-top: 0; - margin-bottom: 10px; -} - -.idyll-root blockquote { - margin: 0; -} - -.idyll-root ul, -.idyll-root ol { - padding-left: 0; - margin-top: 0; - margin-bottom: 0; -} - -.idyll-root ol ol, -.idyll-root ul ol { - list-style-type: lower-roman; -} - -.idyll-root ul ul ol, -.idyll-root ul ol ol, -.idyll-root ol ul ol, -.idyll-root ol ol ol { - list-style-type: lower-alpha; -} - -.idyll-root dd { - margin-left: 0; -} - -.idyll-root code { - font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, - monospace; - font-size: 12px; -} - -.idyll-root pre { - margin-top: 0; - margin-bottom: 0; - font: 12px 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, - monospace; -} - -.idyll-root .octicon { - vertical-align: text-bottom; -} - -.idyll-root .pl-0 { - padding-left: 0 !important; -} - -.idyll-root .pl-1 { - padding-left: 4px !important; -} - -.idyll-root .pl-2 { - padding-left: 8px !important; -} - -.idyll-root .pl-3 { - padding-left: 16px !important; -} - -.idyll-root .pl-4 { - padding-left: 24px !important; -} - -.idyll-root .pl-5 { - padding-left: 32px !important; -} - -.idyll-root .pl-6 { - padding-left: 40px !important; -} - -.idyll-root::before { - display: table; - content: ''; -} - -.idyll-root::after { - display: table; - clear: both; - content: ''; -} - -.idyll-root > *:first-child { - margin-top: 0 !important; -} - -.idyll-root > *:last-child { - margin-bottom: 0 !important; -} - -.idyll-root a:not([href]) { - color: inherit; - text-decoration: none; -} - -.idyll-root .anchor { - float: left; - padding-right: 4px; - margin-left: -20px; - line-height: 1; -} - -.idyll-root .anchor:focus { - outline: none; -} - -.idyll-root p, -.idyll-root blockquote, -.idyll-root ul, -.idyll-root ol, -.idyll-root dl, -.idyll-root table, -.idyll-root pre { - margin-top: 0; - margin-bottom: 16px; -} - -.idyll-root hr { - height: 0.25em; - padding: 0; - margin: 24px 0; - background-color: #e1e4e8; - border: 0; -} - -.idyll-root blockquote { - padding: 0 1em; - color: #6a737d; - border-left: 0.25em solid #dfe2e5; -} - -.idyll-root blockquote > :first-child { - margin-top: 0; -} - -.idyll-root blockquote > :last-child { - margin-bottom: 0; -} - -.idyll-root kbd { - display: inline-block; - padding: 3px 5px; - font-size: 11px; - line-height: 10px; - color: #444d56; - vertical-align: middle; - background-color: #fafbfc; - border: solid 1px #c6cbd1; - border-bottom-color: #959da5; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #959da5; -} - -.idyll-root h1, -.idyll-root h2, -.idyll-root h3, -.idyll-root h4, -.idyll-root h5, -.idyll-root h6 { - margin-top: 24px; - margin-bottom: 16px; - font-weight: 600; - line-height: 1.25; -} - -.idyll-root h1 .octicon-link, -.idyll-root h2 .octicon-link, -.idyll-root h3 .octicon-link, -.idyll-root h4 .octicon-link, -.idyll-root h5 .octicon-link, -.idyll-root h6 .octicon-link { - color: #1b1f23; - vertical-align: middle; - visibility: hidden; -} - -.idyll-root h1:hover .anchor, -.idyll-root h2:hover .anchor, -.idyll-root h3:hover .anchor, -.idyll-root h4:hover .anchor, -.idyll-root h5:hover .anchor, -.idyll-root h6:hover .anchor { - text-decoration: none; -} - -.idyll-root h1:hover .anchor .octicon-link, -.idyll-root h2:hover .anchor .octicon-link, -.idyll-root h3:hover .anchor .octicon-link, -.idyll-root h4:hover .anchor .octicon-link, -.idyll-root h5:hover .anchor .octicon-link, -.idyll-root h6:hover .anchor .octicon-link { - visibility: visible; -} - -.idyll-root h1 { - padding-bottom: 0.3em; - font-size: 2em; - border-bottom: 1px solid #eaecef; -} - -.idyll-root h2 { - padding-bottom: 0.3em; - font-size: 1.5em; - border-bottom: 1px solid #eaecef; -} - -.idyll-root h3 { - font-size: 1.25em; -} - -.idyll-root h4 { - font-size: 1em; -} - -.idyll-root h5 { - font-size: 0.875em; -} - -.idyll-root h6 { - font-size: 0.85em; - color: #6a737d; -} - -.idyll-root h1.hed, -.idyll-root h2.dek { - border-bottom: none; - padding-bottom: 0; - margin-top: 12px; -} - -.idyll-root ul, -.idyll-root ol { - padding-left: 2em; -} - -.idyll-root ul ul, -.idyll-root ul ol, -.idyll-root ol ol, -.idyll-root ol ul { - margin-top: 0; - margin-bottom: 0; -} - -.idyll-root li > p { - margin-top: 16px; -} - -.idyll-root li + li { - margin-top: 0.25em; -} - -.idyll-root dl { - padding: 0; -} - -.idyll-root dl dt { - padding: 0; - margin-top: 16px; - font-size: 1em; - font-style: italic; - font-weight: 600; -} - -.idyll-root dl dd { - padding: 0 16px; - margin-bottom: 16px; -} - -.idyll-root table { - display: block; - width: 100%; - overflow: auto; -} - -.idyll-root table th { - font-weight: 600; -} - -.idyll-root table th, -.idyll-root table td { - padding: 6px 13px; - border: 1px solid #dfe2e5; -} - -.idyll-root table tr { - background-color: #fff; - border-top: 1px solid #c6cbd1; -} - -.idyll-root table tr:nth-child(2n) { - background-color: #f6f8fa; -} - -.idyll-root img { - max-width: 100%; - box-sizing: content-box; - background-color: #fff; -} - -.idyll-root code { - padding: 0; - padding-top: 0.2em; - padding-bottom: 0.2em; - margin: 0; - font-size: 85%; - background-color: rgba(27, 31, 35, 0.05); - border-radius: 3px; -} - -.idyll-root code::before, -.idyll-root code::after { - letter-spacing: -0.2em; - content: '\00a0'; -} - -.idyll-root pre { - word-wrap: normal; -} - -.idyll-root pre > code { - padding: 0; - margin: 0; - font-size: 100%; - word-break: normal; - white-space: pre; - background: transparent; - border: 0; -} - -.idyll-root .highlight { - margin-bottom: 16px; -} - -.idyll-root .highlight pre { - margin-bottom: 0; - word-break: normal; -} - -.idyll-root .highlight pre, -.idyll-root pre { - padding: 16px; - overflow: auto; - font-size: 85%; - line-height: 1.45; - background-color: #f6f8fa; - border-radius: 3px; -} - -.idyll-root pre code { - display: inline; - max-width: auto; - padding: 0; - margin: 0; - overflow: visible; - line-height: inherit; - word-wrap: normal; - background-color: transparent; - border: 0; -} - -.idyll-root pre code::before, -.idyll-root pre code::after { - content: normal; -} - -.idyll-root .full-commit .btn-outline:not(:disabled):hover { - color: #005cc5; - border-color: #005cc5; -} - -.idyll-root kbd { - display: inline-block; - padding: 3px 5px; - font: 11px 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, - monospace; - line-height: 10px; - color: #444d56; - vertical-align: middle; - background-color: #fcfcfc; - border: solid 1px #c6cbd1; - border-bottom-color: #959da5; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #959da5; -} - -.idyll-root :checked + .radio-label { - position: relative; - z-index: 1; - border-color: #0366d6; -} - -.idyll-root .task-list-item { - list-style-type: none; -} - -.idyll-root .task-list-item + .task-list-item { - margin-top: 3px; -} - -.idyll-root .task-list-item input { - margin: 0 0.2em 0.25em -1.6em; - vertical-align: middle; -} - -.idyll-root hr { - border-bottom-color: #eee; -} diff --git a/packages/idyll-cli/test/env-options/src/data/example-data.json b/packages/idyll-cli/test/env-options/src/data/example-data.json deleted file mode 100644 index 070f8e68e..000000000 --- a/packages/idyll-cli/test/env-options/src/data/example-data.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "x": 0, - "y": 0 - }, - { - "x": 1, - "y": 1 - } -] diff --git a/packages/idyll-cli/test/env-options/src/data/example-file.csv b/packages/idyll-cli/test/env-options/src/data/example-file.csv deleted file mode 100644 index e5726765b..000000000 --- a/packages/idyll-cli/test/env-options/src/data/example-file.csv +++ /dev/null @@ -1,3 +0,0 @@ -"x","y" -0,0 -1,1 \ No newline at end of file diff --git a/packages/idyll-cli/test/env-options/src/index.idl b/packages/idyll-cli/test/env-options/src/index.idl deleted file mode 100644 index b0992ba94..000000000 --- a/packages/idyll-cli/test/env-options/src/index.idl +++ /dev/null @@ -1,58 +0,0 @@ -[meta title:"Page Title" description:"Short description of your project" /] - -[Header - title:"Welcome to Idyll" - subtitle:"Open index.idl to start writing" - author:"Your Name Here" - authorLink:"https://idyll-lang.github.io" /] - - -This is an Idyll file. Write text -as you please in here. To add interactivity, -you can add different components to the text. - -[data name:"myData" source:"example-data.json" /] -[data name:"myCSVData" source:"example-file.csv" /] - -[Table data:myData /] - -[Table data:myCSVData /] - -Here is how you can use a variable: - -[var name:"exampleVar" value:5 /] - -[Range min:0 max:10 value:exampleVar /] -[Display value:exampleVar /] - -```js -var code = true; -``` - -And here is a custom component: - -[CustomComponent /] - -You can use standard html tags if a -component with the same name -doesn't exist. - -[ReactSimplePieChart - slices:`[{ - color: '#7b3af5', - value: 0.1, - }, { - color: '#EAE7D6', - value: 0.9, }, - ]` /] - -[PackageJsonComponentTest /] - -This adds support for indexed components: [CustomComponent.IndexedComponent /] - -[FunctionalComponent /] - -[FunctionalDefaultComponent /] - - -[CapitalPascal /] diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.babelrc b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.babelrc deleted file mode 100644 index 31a5b4395..000000000 --- a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.babelrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "plugins": [ - "transform-react-jsx", - "add-module-exports" - ], - "presets": ["es2015"] -} diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.npmignore b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.npmignore deleted file mode 100644 index 7a1e5f2b8..000000000 --- a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.npmignore +++ /dev/null @@ -1,11 +0,0 @@ -*.svg -.eslintignore -.eslintrc.js -.overcommit.yml -.projections.json -CHANGELOG.md -karma.conf.js -spec -src -tests.webpack.js -webpack.conf.js diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.travis.yml b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.travis.yml deleted file mode 100644 index 1b1aeadd3..000000000 --- a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - '0.10' -before_install: - - npm install -g npm@2 -before_script: - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/CHANGELOG.md b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/CHANGELOG.md deleted file mode 100644 index f9b26937c..000000000 --- a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/CHANGELOG.md +++ /dev/null @@ -1,41 +0,0 @@ -## master (unreleased) - -## 0.4.1 - -- Use `prop-types` package instead of `React.PropTypes` - -## 0.4.0 - -- Relax dependency on React to allow v15 - -## 0.3.1 - -- Make bundled pie-chart.js easier to import - -## 0.3.0 - -- Upgrade Babel from 5 to 6 -- Convert to ES2015 module -- Convert to ES2015 class - -## 0.2.2 - -- Fix centering when rendering as a circle - -## 0.2.1 - -- Update for React 0.14 -- Move `react` from `dependencies` to `peerDependencies` - -## 0.2.0 - -- Reduce jaggedness from thin segments -- Remove size prop - -## 0.1.1 - -- Fix npm dependencies - -## 0.1.0 - -- Initial release diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/LICENSE b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/LICENSE deleted file mode 100644 index 41ec79d0c..000000000 --- a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Brigade - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/README.md b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/README.md deleted file mode 100644 index 38aa58a78..000000000 --- a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# React Simple Pie Chart - -[![npm version](https://badge.fury.io/js/react-simple-pie-chart.svg)](http://badge.fury.io/js/react-simple-pie-chart) -[![Build Status](https://travis-ci.org/brigade/react-simple-pie-chart.svg?branch=master)](https://travis-ci.org/brigade/react-simple-pie-chart) - -Need a simple `` pie chart and don't want to bring in any heavy -dependencies? You've come to the right place. - -[Demo](http://jsfiddle.net/qgxyw3mp/3/) - -![Example pie -chart](http://brigade.github.io/react-simple-pie-chart/example-pie-chart.svg) - -## Installation - -### npm - -```bash -npm install react-simple-pie-chart --save -``` - -## Usage - -```javascript -import PieChart from 'react-simple-pie-chart'; -``` - -```javascript - -``` - -## Code of conduct - -This project adheres to the [Open Code of Conduct][code-of-conduct]. By -participating, you are expected to honor this code. - -[code-of-conduct]: https://github.com/brigade/code-of-conduct - -## License - -[MIT][mit-license] - -[mit-license]: ./LICENSE diff --git a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/package.json b/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/package.json deleted file mode 100644 index 07828a7c6..000000000 --- a/packages/idyll-cli/test/env-options/src/node_modules/react-simple-pie-chart/package.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "_args": [ - [ - { - "raw": "react-simple-pie-chart", - "scope": null, - "escapedName": "react-simple-pie-chart", - "name": "react-simple-pie-chart", - "rawSpec": "", - "spec": "latest", - "type": "tag" - }, - "/Users/mathisonian/projects/idyll/idyll/packages/idyll-cli/test/test-project/src" - ] - ], - "_from": "react-simple-pie-chart@latest", - "_id": "react-simple-pie-chart@0.4.1", - "_inCache": true, - "_location": "/react-simple-pie-chart", - "_nodeVersion": "6.1.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/react-simple-pie-chart-0.4.1.tgz_1494319311158_0.9599986257962883" - }, - "_npmUser": { - "name": "trotzig", - "email": "henric.trotzig@gmail.com" - }, - "_npmVersion": "3.8.6", - "_phantomChildren": {}, - "_requested": { - "raw": "react-simple-pie-chart", - "scope": null, - "escapedName": "react-simple-pie-chart", - "name": "react-simple-pie-chart", - "rawSpec": "", - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/react-simple-pie-chart/-/react-simple-pie-chart-0.4.1.tgz", - "_shasum": "d1f4e09238b4c9ea9faa55aaf3df5721c56d26c6", - "_shrinkwrap": null, - "_spec": "react-simple-pie-chart", - "_where": "/Users/mathisonian/projects/idyll/idyll/packages/idyll-cli/test/test-project/src", - "author": { - "name": "Brigade Engineering" - }, - "bugs": { - "url": "https://github.com/brigade/react-simple-pie-chart/issues" - }, - "contributors": [ - { - "name": "Joe Lencioni" - } - ], - "dependencies": {}, - "description": "A React component to generate simple pie charts.", - "devDependencies": { - "babel": "^6.0.0", - "babel-cli": "^6.0.0", - "babel-core": "^6.0.0", - "babel-loader": "^6.0.0", - "babel-plugin-add-module-exports": "^0.1.2", - "babel-plugin-transform-react-jsx": "^6.0.0", - "babel-preset-es2015": "^6.0.0", - "eslint": "^1.3.1", - "eslint-config-brigade": "^1.6.0", - "eslint-plugin-react": "^3.3.1", - "jasmine-core": "^2.1.3", - "karma": "^0.13.9", - "karma-chrome-launcher": "^0.2.0", - "karma-cli": "^0.1.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-webpack": "^1.7.0", - "prop-types": "^15.5.8", - "react": "^0.14.0", - "react-addons-test-utils": "^0.14.0", - "react-dom": "^0.14.0", - "webpack": "^1.12.0" - }, - "directories": {}, - "dist": { - "shasum": "d1f4e09238b4c9ea9faa55aaf3df5721c56d26c6", - "tarball": "https://registry.npmjs.org/react-simple-pie-chart/-/react-simple-pie-chart-0.4.1.tgz" - }, - "gitHead": "95c7a73382a48910b6529858091d4ec29e77f5c9", - "homepage": "https://github.com/brigade/react-simple-pie-chart", - "keywords": [ - "react", - "component", - "react-component", - "charts", - "charting", - "data visualization", - "pie chart" - ], - "license": "MIT", - "main": "build/npm/pie_chart.js", - "maintainers": [ - { - "name": "bigsley", - "email": "bigsley@gmail.com" - }, - { - "name": "brigade", - "email": "services+npm@brigade.com" - }, - { - "name": "janpaul123", - "email": "me@janpaulposma.nl" - }, - { - "name": "lencioni", - "email": "joe.lencioni@gmail.com" - }, - { - "name": "trotzig", - "email": "henric.trotzig@gmail.com" - } - ], - "name": "react-simple-pie-chart", - "optionalDependencies": {}, - "peerDependencies": { - "react": ">=0.13" - }, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/brigade/react-simple-pie-chart.git" - }, - "scripts": { - "build-npm": "rm -rf build/npm && mkdir -p build/npm && babel src/pie_chart.jsx --out-file build/npm/pie_chart.js", - "prepublish": "npm run build-npm", - "test": "eslint . --ext .js,.jsx && ./node_modules/.bin/karma start" - }, - "version": "0.4.1" -} diff --git a/packages/idyll-cli/test/env-options/src/package.json b/packages/idyll-cli/test/env-options/src/package.json deleted file mode 100644 index 9663deafe..000000000 --- a/packages/idyll-cli/test/env-options/src/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "test-project", - "version": "1.0.0", - "scripts": { - "start": "idyll index.idl --watch --css styles.css --layout centered --theme github --spellcheck", - "build": "idyll index.idl --layout centered --theme ./custom-theme.css --css styles.css" - }, - "idyll": [ - "prod", - { - "alias": { - "PackageJsonComponentTest": "CustomComponent" - }, - "layout": "none" - } - ], - "dependencies": { - "idyll-component": "^1.1.0", - "react-simple-pie-chart": "^0.4.1" - }, - "devDependencies": {} -} diff --git a/packages/idyll-cli/test/env-options/src/static/favicon.ico b/packages/idyll-cli/test/env-options/src/static/favicon.ico deleted file mode 100755 index 7031685a9c15e7d7e2fe2278658df20f5f42878f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmeHLOHUI~6dsK~fS=Hny3(avHzw>%)M$(vb)lj$5=9Jgp;3%6ypbqEf5v_;w~<>W|g zv`Bf|Bx$=ONft}`e>f8xD5Z(LAXE8Ao$=lJU!!3`@gJt4R6;N{7(izW2oc> zw3Y$*I)+TiD1DS3a}d)OEKuMSL_#+RM`j6B7+S^U3|C;w~KejWpn8*T8n4ssiq&a+Sy_CR>e zb~C*`v&(Nu!Ner-jD_8M*-d=3(v{8LHf02IvkBgJ_;f^WJ`);;tNGgD3347;?H!TN z{&#%Yt+6`T_)q-r`s6_BNI8D&xP(A`5A4K=CSo`1cNq@Vy!eGWxW2j&D`?`iJf7bG zhZ+#O2Uhn8Pp|0a`Yw$>Wq1n7W0g>bZNl~txz+xwZwf{by=KM2?gF@(FUX#xfAZvg zVffLa7Pvmky#F9wsfSDCJwoEl!*n0Rd_#W7+P8m*AHvtGUtyN%C_B8!*q`C*<=u!D zHY0JqPAGo#dMoUDI@Z0c2cFx1FVhRCeG{0^y(1K#>`(aN;ttNe^SQ+=?yBIlDI8a{ z{XK8TF?*_p^}wSU`%_Ogd%A}Aq@wXthe|WLI&CWA7wgmZCY#*t#QeV7;_c7kRPCKW z>Tnqrb`_*+Fv~}Z`*{9ivG^?4LuFmu_hfhK1ikT_S1*yToOO?{w!81X55WZ#iw V#|GjVdA>QWn~zueF0fJaKLJed { return fs.readdirSync(dir).filter(f => f !== '.DS_Store'); @@ -23,35 +22,12 @@ const dirToHash = dir => { }, {}); }; -const PROJECT_DIR = join(__dirname, 'src'); +const PROJECT_DIR = join(__dirname, 'outer-project', 'inner-project'); const PROJECT_BUILD_DIR = join(PROJECT_DIR, 'build'); -const PROJECT_IDYLL_CACHE = join(PROJECT_DIR, '.idyll'); -let projectBuildFilenames; -let projectBuildResults; -const EXPECTED_DIR = join(__dirname, 'expected-output'); -// build output to test against -const EXPECTED_BUILD_DIR = join(EXPECTED_DIR, 'build'); -const EXPECTED_BUILD_FILENAMES = getFilenames(EXPECTED_BUILD_DIR); -const EXPECTED_BUILD_RESULTS = dirToHash(EXPECTED_BUILD_DIR); - -beforeAll(() => { - rimraf.sync(PROJECT_BUILD_DIR); - rimraf.sync(PROJECT_IDYLL_CACHE); -}); - -let output; -let idyll = { - one_env: null, - two_env_pick_prod: null, - two_env_pick_dev: null, - nested: null -}; -let idyll_1; - -beforeAll(done => { - idyll_1 = Idyll({ +test('no env provided', () => { + const idyll = Idyll({ inputFile: join(PROJECT_DIR, 'index.idl'), output: PROJECT_BUILD_DIR, htmlTemplate: join(PROJECT_DIR, '_index.html'), @@ -67,47 +43,79 @@ beforeAll(done => { minify: false }); - idyll_1 - .on('update', o => { - output = o; - projectBuildFilenames = getFilenames(PROJECT_BUILD_DIR); - projectBuildResults = dirToHash(PROJECT_BUILD_DIR); - done(); - }) - .build(); -}); - -test('list no env param works as expected', () => { - expect(idyll_1.getOptions()).toEqual({ - alias: { - PackageJsonComponentTest: 'CustomComponent' - }, + expect(idyll.getOptions()).toEqual({ + alias: {}, + compileLibs: false, + compiler: { spellcheck: false }, + components: join(PROJECT_DIR, 'components'), + css: join(PROJECT_DIR, 'styles.css'), + datasets: join(PROJECT_DIR, 'data'), + defaultComponents: dirname(require.resolve('idyll-components')), + favicon: 'static/favicon.ico', + googleFonts: ['Hanalei Fill'], + htmlTemplate: join(PROJECT_DIR, '_index.html'), + inputFile: join(PROJECT_DIR, 'index.idl'), layout: 'none', - theme: join(PROJECT_DIR, 'custom-theme.css'), minify: false, - ssr: true, - watch: false, open: true, - compileLibs: false, + output: join(PROJECT_DIR, 'build'), + outputCSS: 'idyll_styles.css', + outputJS: 'idyll_index.js', + port: 3000, + ssr: true, + static: 'static', + temp: '.idyll', + template: resolve(join(__dirname, '/../../src/client/_index.html')), + theme: join(PROJECT_DIR, 'custom-theme.css'), + transform: [], + watch: false + }); +}); + +test('my-env provided', () => { + const idyll = Idyll({ inputFile: join(PROJECT_DIR, 'index.idl'), output: PROJECT_BUILD_DIR, htmlTemplate: join(PROJECT_DIR, '_index.html'), components: join(PROJECT_DIR, 'components'), - css: join(PROJECT_DIR, 'styles.css'), - defaultComponents: dirname(require.resolve('idyll-components')), - temp: '.idyll', - template: resolve(join(__dirname, '/../../src/client/_index.html')), datasets: join(PROJECT_DIR, 'data'), - static: 'static', - transform: [], - port: 3000, + theme: join(PROJECT_DIR, 'custom-theme.css'), + css: join(PROJECT_DIR, 'styles.css'), googleFonts: ['Hanalei Fill'], - outputCSS: 'idyll_styles.css', - outputJS: 'idyll_index.js', favicon: 'static/favicon.ico', compiler: { spellcheck: false }, - inputString: fs.readFileSync(join(PROJECT_DIR, 'index.idl'), 'utf-8') + minify: false, + env: 'my-env' + }); + + expect(idyll.getOptions()).toEqual({ + env: 'my-env', + alias: { PackageJsonComponentTest: 'CustomComponent' }, + compileLibs: false, + compiler: { spellcheck: false }, + components: join(PROJECT_DIR, 'components'), + css: join(PROJECT_DIR, 'styles.css'), + datasets: join(PROJECT_DIR, 'data'), + defaultComponents: dirname(require.resolve('idyll-components')), + favicon: 'static/favicon.ico', + googleFonts: ['Hanalei Fill'], + htmlTemplate: join(PROJECT_DIR, '_index.html'), + inputFile: join(PROJECT_DIR, 'index.idl'), + layout: 'none', + minify: false, + open: true, + output: join(PROJECT_DIR, 'build'), + outputCSS: 'idyll_styles.css', + outputJS: 'idyll_index.js', + port: 3000, + ssr: true, + static: 'static', + temp: '.idyll', + template: resolve(join(__dirname, '/../../src/client/_index.html')), + theme: join(PROJECT_DIR, 'custom-theme.css'), + transform: [], + watch: false }); }); From 4a1cfbabc26d217d13bf071ee43cc43cb76f94fb Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Sun, 21 Feb 2021 22:49:24 -0800 Subject: [PATCH 08/12] misc --- .github/FUNDING.yml | 1 - .travis.yml | 19 --- CHANGELOG.md | 27 +++- packages/idyll-ast/README.md | 4 +- packages/idyll-ast/package.json | 2 +- packages/idyll-ast/src/index.js | 146 +++++++++++++++--- packages/idyll-ast/test/test.js | 135 ++++++++++++++-- packages/idyll-cli/bin/cmds/create-project.js | 8 +- packages/idyll-cli/bin/cmds/publish.js | 4 +- packages/idyll-cli/package.json | 16 +- packages/idyll-cli/src/index.js | 43 ++++-- packages/idyll-compiler/package.json | 4 +- packages/idyll-components/package.json | 4 +- packages/idyll-components/src/action.js | 10 +- packages/idyll-components/src/aside.js | 7 +- packages/idyll-components/src/chart.js | 2 +- packages/idyll-components/src/cite.js | 23 ++- packages/idyll-components/src/conditional.js | 4 +- packages/idyll-components/src/desmos.js | 7 +- packages/idyll-components/src/display.js | 3 +- packages/idyll-components/src/dynamic.js | 8 +- packages/idyll-components/src/equation.js | 11 +- packages/idyll-components/src/fixed.js | 9 +- packages/idyll-components/src/float.js | 9 +- packages/idyll-components/src/gist.js | 7 +- packages/idyll-components/src/h1.js | 6 + packages/idyll-components/src/h2.js | 6 + packages/idyll-components/src/h3.js | 6 + packages/idyll-components/src/h4.js | 6 + packages/idyll-components/src/h5.js | 6 + packages/idyll-components/src/h6.js | 6 + packages/idyll-components/src/header.js | 13 +- packages/idyll-components/src/inline.js | 12 +- packages/idyll-components/src/link.js | 10 +- packages/idyll-components/src/loop.js | 4 +- packages/idyll-components/src/range.js | 3 +- packages/idyll-components/src/stepper.js | 17 +- packages/idyll-components/src/switch.js | 16 +- packages/idyll-components/src/text-input.js | 2 +- packages/idyll-components/src/tweet.js | 8 +- packages/idyll-components/src/youtube.js | 2 +- packages/idyll-docs/package.json | 8 +- packages/idyll-document/package.json | 8 +- packages/idyll-document/src/index.js | 23 ++- packages/idyll-document/src/runtime.js | 90 +++++++++-- packages/idyll-document/src/utils/index.js | 10 +- packages/idyll-layouts/package.json | 2 +- packages/idyll-layouts/src/blog/styles.js | 1 - packages/idyll-layouts/src/centered/styles.js | 1 - packages/idyll-template-projects/package.json | 2 +- .../templates/article/index.idyll | 3 +- packages/idyll-themes/package.json | 2 +- packages/idyll-themes/src/default/styles.js | 120 ++++++++++++++ packages/idyll-themes/src/github/styles.js | 1 + packages/idyll-themes/src/idyll/styles.js | 1 + packages/idyll-themes/src/tufte/styles.js | 1 + 56 files changed, 726 insertions(+), 183 deletions(-) delete mode 100644 .travis.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 2b2877645..712760add 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,4 +1,3 @@ # These are supported funding model platforms -github: mathisonian open_collective: idyll diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7d7085538..000000000 --- a/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: node_js - -node_js: - - '10' - - '12' - - '14' - -env: - - PACKAGE=idyll-ast - - PACKAGE=idyll-compiler - - PACKAGE=idyll-components - - PACKAGE=idyll-cli - - PACKAGE=idyll-document - - PACKAGE=idyll-layouts - - PACKAGE=idyll-themes - -cache: yarn - -script: cd packages/$PACKAGE && npm test diff --git a/CHANGELOG.md b/CHANGELOG.md index d513976cc..d9cf4e7d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,21 +1,42 @@ +## v5.2.1 + +Bugfix: fix publish command on windows [#695](https://github.com/idyll-lang/idyll/pull/695) + +## v5.2.0 + +Add experimental [project create API](https://github.com/idyll-lang/idyll/pull/690). + +## v5.1.0 + +Features: + +- Adds `insertFullWidth` option to markup serializer ([#686](https://github.com/idyll-lang/idyll/pull/686)) +- Adds `inlineAuthorView` option to `idyll-document` ([#681](https://github.com/idyll-lang/idyll/pull/681)) + +Bugfixes: + +- General improvements to markup serialization ([#685](https://github.com/idyll-lang/idyll/pull/685), [#684](https://github.com/idyll-lang/idyll/pull/684), [#676](https://github.com/idyll-lang/idyll/pull/676)) + ### v5.0.1 Bugfixes: -- Improves output of `AST.toMarkup(ast)` function so that extra whitespace is not inserted on repeated calls. +- Improves output of `AST.toMarkup(ast)` function so that extra whitespace is not inserted on repeated calls. # v5.0 Features: + - Adds `fullWidthSteps` option to the scroller, to make it easier for scroller components steps to take on wider designs Bugfixes: -- Component resolver is initialized at the start of compile process and when a compiler postprocessor plugin creates a new component in components directory, it won't be available till the next build and the current build fails with component not found error. (See: https://github.com/idyll-lang/idyll/pull/610) + +- Component resolver is initialized at the start of compile process and when a compiler postprocessor plugin creates a new component in components directory, it won't be available till the next build and the current build fails with component not found error. (See: https://github.com/idyll-lang/idyll/pull/610) Breaking changes: - Update header component default behavior to use styles (background color and text color) provided by themes -- Fix the `package.json` options logic so any idyll option can be provided via package.json and +- Fix the `package.json` options logic so any idyll option can be provided via package.json and ## v4.10 diff --git a/packages/idyll-ast/README.md b/packages/idyll-ast/README.md index 4a09db9e0..bf3c1aae4 100644 --- a/packages/idyll-ast/README.md +++ b/packages/idyll-ast/README.md @@ -31,7 +31,7 @@ And this is a normal paragraph. This is # not a header. The above Idyll syntax would look like the following when in ast form: -``` +```js { id: 0, type: 'component', name: 'div', @@ -69,7 +69,7 @@ There can be 5 different types of nodes in the AST. The properties field for each component represent, its attributes or value. The general structure for a properties field is as following: -``` +```json "properties" : { "prop1": { "type": "type1", diff --git a/packages/idyll-ast/package.json b/packages/idyll-ast/package.json index b01a33906..418cc0a32 100644 --- a/packages/idyll-ast/package.json +++ b/packages/idyll-ast/package.json @@ -1,6 +1,6 @@ { "name": "idyll-ast", - "version": "2.0.12", + "version": "2.2.2", "description": "Utilities for manipulating Idyll's AST", "main": "dist/cjs/index.js", "module": "dist/es/index.js", diff --git a/packages/idyll-ast/src/index.js b/packages/idyll-ast/src/index.js index 90983778c..632ad9ed8 100644 --- a/packages/idyll-ast/src/index.js +++ b/packages/idyll-ast/src/index.js @@ -925,45 +925,146 @@ function propertyToString(property) { } } -function propertiesToString(node) { - return Object.keys(node.properties || {}) - .reduce(function(memo, key) { - return memo + ` ${key}:${propertyToString(node.properties[key])}`; - }, '') - .trim(); +function propertiesToString(node, depth, insertFullWidth) { + const props = { ...node.properties }; + if ( + insertFullWidth && + node.type === 'component' && + node.name.toLowerCase() !== 'textcontainer' + ) { + props.fullWidth = { type: 'value', value: true }; + } + let flatString = Object.keys(props || {}).reduce(function(memo, key) { + return memo + ` ${key}:${propertyToString(props[key])}`; + }, ''); + + if (flatString.length < 60) { + return flatString; + } + + return Object.keys(props || {}).reduce(function(memo, key) { + return ( + memo + `\n${' '.repeat(depth + 1)}${key}:${propertyToString(props[key])}` + ); + }, ''); } -function childrenToMarkup(node, depth) { +function childrenToMarkup( + node, + depth, + separator = '\n', + insertFullWidth = false +) { return (node.children || []).reduce(function(memo, child) { - return memo + `\n${nodeToMarkup(child, depth)}`; + return ( + memo + + `${separator}${nodeToMarkup(child, depth, insertFullWidth, separator)}` + ); }, ''); } -function nodeToMarkup(node, depth) { +function nodeToMarkup(node, depth, insertFullWidth, separator = '\n') { + const markupNodes = [ + 'strong', + 'em', + 'i', + 'b', + 'code', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'a' + ]; switch (node.type) { case 'textnode': return `${' '.repeat(depth)}${node.value.trim()}`; case 'component': if (node.name.toLowerCase() === 'textcontainer') { - return `\n${childrenToMarkup(node, depth)}\n`; + return `\n${childrenToMarkup(node, depth, '\n', false)}\n`; + } else if (node.name.toLowerCase() === 'p' && depth < 1) { + return `\n${childrenToMarkup(node, depth, ' ', false).trim()}\n`; + } else if (markupNodes.includes(node.name.toLowerCase())) { + switch (node.name.toLowerCase()) { + case 'strong': + case 'b': + return `**${childrenToMarkup(node, 0, ' ', false).trim()}**`; + case 'em': + case 'i': + return `*${childrenToMarkup(node, 0, ' ', false).trim()}*`; + case 'code': + return `\`${childrenToMarkup(node, 0, ' ', false).trim()}\``; + case 'h1': + case 'h2': + case 'h3': + case 'h4': + case 'h5': + if ( + node.children && + node.children.length === 1 && + node.children[0].type === 'textnode' + ) { + return `${'#'.repeat(+node.name[1])} ${childrenToMarkup( + node, + 0, + ' ', + false + ).trim()}`; + } + } } - const propString = propertiesToString(node); + + if ( + node.name.toLowerCase() === 'pre' && + node.children && + node.children.length === 1 && + node.children[0].name && + node.children[0].name.toLowerCase() === 'code' + ) { + return ` +\`\`\` +${childrenToMarkup(node.children[0], 0, ' ', false).trim()} +\`\`\` + `; + } else if ( + node.name.toLowerCase() === 'pre' && + node.children && + node.children.length === 1 && + node.children[0].type === 'textnode' + ) { + return ` +\`\`\` +${childrenToMarkup(node, 0, ' ', false).trim()} +\`\`\``; + } + + const propString = propertiesToString(node, depth, insertFullWidth); if (hasChildren(node)) { + if (node.name === 'a') { + return `[${node.name}${ + propString ? `${propString}` : '' + }]${childrenToMarkup(node, depth + 1, ' ', false).trim()}[/${ + node.name + }]`; + } return `${' '.repeat(depth)}[${node.name}${ - propString ? ` ${propString}` : '' - }]${childrenToMarkup(node, depth + 1)}\n${' '.repeat(depth)}[/${ - node.name - }]`; + propString ? `${propString}` : '' + }]${childrenToMarkup(node, depth + 1, separator, false)}\n${' '.repeat( + depth + )}[/${node.name}]`; } return `${' '.repeat(depth)}[${node.name}${ - propString ? ` ${propString}` : '' + propString ? `${propString}` : '' } /]`; case 'var': case 'derived': case 'data': case 'meta': - return `${' '.repeat(depth)}[${node.type} ${propertiesToString( - node + return `${' '.repeat(depth)}[${node.type}${propertiesToString( + node, + depth, + insertFullWidth )} /]`; } } @@ -975,8 +1076,13 @@ function nodeToMarkup(node, depth) { * @param {object} ast AST node * @return {string} Markup string */ -function toMarkup(ast) { - return childrenToMarkup(ast, 0).trim(); +function toMarkup(ast, options = { insertFullWidth: false }) { + return childrenToMarkup( + ast, + 0, + ast.name === 'p' ? ' ' : '\n', + options.insertFullWidth || false + ).trim(); } module.exports = { diff --git a/packages/idyll-ast/test/test.js b/packages/idyll-ast/test/test.js index 359643b7e..c45d3d5b2 100644 --- a/packages/idyll-ast/test/test.js +++ b/packages/idyll-ast/test/test.js @@ -293,22 +293,139 @@ describe('markup conversion', function() { const markup = util.toMarkup(astTestVar); expect(markup).to.eql( ` -[p] - This is the first paragraph -[/p] + +This is the first paragraph + [div] - [h1] - This is a header - [/h1] +# This is a header [var name:"testVar" value:\`3 * 3\` /] [p] - [a href:"www.test.com"] - This is a link to a website - [/a] +[a href:"www.test.com"]This is a link to a website[/a] [data name:"testData" source:"test.csv" /] [/p] [/div] `.trim() ); }); + + it("should break a complex component's properties onto multiple lines", function() { + const markup = util.toMarkup({ + id: -1, + type: 'component', + name: 'div', + children: [ + { + id: 1, + type: 'component', + name: 'Table', + properties: { + data: { + type: 'variable', + value: 'wheat' + }, + defaultPageSize: { + type: 'value', + value: 10 + }, + showPagination: { + type: 'value', + value: true + }, + showPageSizeOptions: { + type: 'value', + value: false + }, + showPageJump: { + type: 'value', + value: false + } + } + } + ] + }); + + expect(markup).to.eql( + ` +[Table + data:wheat + defaultPageSize:10 + showPagination:true + showPageSizeOptions:false + showPageJump:false /] + `.trim() + ); + }); + + it('should serialize basic markdown elements', function() { + const markup = util.toMarkup({ + id: -1, + type: 'component', + name: 'p', + children: [ + { + id: 1, + type: 'textnode', + value: 'One two ' + }, + { + id: 2, + type: 'component', + name: 'em', + children: [ + { + id: 3, + type: 'textnode', + value: 'three' + } + ] + } + ] + }); + + expect(markup).to.eql( + ` +One two *three* + `.trim() + ); + }); + + it('should insert full width props when requested', function() { + const markup = util.toMarkup( + { + id: -1, + type: 'component', + name: 'div', + children: [ + { + id: 1, + type: 'component', + name: 'Header', + properties: {} + }, + { + id: 2, + type: 'component', + name: 'TextContainer', + children: [ + { + id: 3, + type: 'textnode', + value: 'Hello world.' + } + ] + } + ] + }, + { insertFullWidth: true } + ); + + expect(markup.trim()).to.eql( + ` +[Header fullWidth:true /] + + +Hello world. + `.trim() + ); + }); }); diff --git a/packages/idyll-cli/bin/cmds/create-project.js b/packages/idyll-cli/bin/cmds/create-project.js index 2bfe4810c..23f8a32f0 100755 --- a/packages/idyll-cli/bin/cmds/create-project.js +++ b/packages/idyll-cli/bin/cmds/create-project.js @@ -25,6 +25,7 @@ exports.command = 'create [post-name]'; exports.description = 'Create a new project'; exports.builder = builder; exports.handler = main; +exports.createProject = createProject; let _customTemplate; @@ -101,7 +102,12 @@ function main(argv) { } async function createProject(answers) { - const { install: isinstallDependencies } = yargs.argv; + let isinstallDependencies; + if (answers.installDependencies !== undefined) { + isinstallDependencies = answers.installDependencies; + } else if (yargs && yargs.argv) { + isinstallDependencies = yargs.argv.install; + } let name = answers['package-name']; let template = answers['template']; let dir = answers['post-dir']; diff --git a/packages/idyll-cli/bin/cmds/publish.js b/packages/idyll-cli/bin/cmds/publish.js index 0a3f35d7d..b24f38b12 100755 --- a/packages/idyll-cli/bin/cmds/publish.js +++ b/packages/idyll-cli/bin/cmds/publish.js @@ -51,7 +51,9 @@ exports.handler = async yargs => { let files = await readdir(buildPath); let formData = files.reduce((acc, f) => { - acc[p.relative(buildPath, f)] = fs.createReadStream(f); + acc[p.relative(buildPath, f).replace(/\\/g, '/')] = fs.createReadStream( + f + ); return acc; }, {}); formData.token = token; diff --git a/packages/idyll-cli/package.json b/packages/idyll-cli/package.json index c54abb99b..b48ed0486 100644 --- a/packages/idyll-cli/package.json +++ b/packages/idyll-cli/package.json @@ -1,6 +1,6 @@ { "name": "idyll", - "version": "5.0.2", + "version": "5.2.8", "description": "Command line interface for idyll lang", "main": "src/index.js", "bin": { @@ -47,13 +47,13 @@ "dev-null": "^0.1.1", "fs-extra": "^5.0.0", "html-tags": "^1.1.1", - "idyll-ast": "^2.0.12", - "idyll-compiler": "^4.0.16", - "idyll-components": "^4.0.4", - "idyll-document": "^3.2.5", - "idyll-layouts": "^3.0.6", - "idyll-template-projects": "^2.2.3", - "idyll-themes": "^3.1.0", + "idyll-ast": "^2.2.2", + "idyll-compiler": "^4.0.21", + "idyll-components": "^4.1.6", + "idyll-document": "^3.4.6", + "idyll-layouts": "^3.0.7", + "idyll-template-projects": "^2.2.5", + "idyll-themes": "^3.1.3", "inquirer": "^5.2.0", "insert-css": "^2.0.0", "mkdirp": "^0.5.1", diff --git a/packages/idyll-cli/src/index.js b/packages/idyll-cli/src/index.js index 88c4074fc..809c4c310 100755 --- a/packages/idyll-cli/src/index.js +++ b/packages/idyll-cli/src/index.js @@ -14,7 +14,7 @@ const { has } = require('browser-sync'); const debug = require('debug')('idyll:cli'); const optionDefinitions = [{ name: 'env', alias: 'e', type: String }]; -const options = commandLineArgs(optionDefinitions); +const commandLineOptions = commandLineArgs(optionDefinitions); function createDirectories(paths) { mkdirp.sync(paths.OUTPUT_DIR); @@ -27,7 +27,6 @@ const searchParentDirectories = packageDir => { if (packageDir === join(packageDir, '..')) { break; } - packageDir = join(packageDir, '..'); const parentPackageFilePath = join(packageDir, 'package.json'); @@ -42,20 +41,20 @@ const searchParentDirectories = packageDir => { return {}; }; -function selectIdyllConfig(inputPackage) { - var hasMultipleConfigs = false; +function selectIdyllConfig(inputPackage, env) { + var hasMultipleConfigs = false; // for error handling later if (inputPackage.idyll) { // Check for an idyll env key if array found if (Array.isArray(inputPackage.idyll)) { - if (options.env == null) { + if (env == null) { return { - idyll: inputPackage.idyll[1], + idyll: inputPackage.idyll[0][1], hasMultipleConfigs: hasMultipleConfigs }; } else { for (var i in inputPackage.idyll) { hasMultipleConfigs = true; - if (inputPackage.idyll[i][0] === options.env) { + if (inputPackage.idyll[i][0] === env) { return { idyll: inputPackage.idyll[i][1], hasMultipleConfigs: hasMultipleConfigs @@ -64,16 +63,16 @@ function selectIdyllConfig(inputPackage) { } throw Error( 'No matching env found out of available options. Please verify your package.json file(s) have ' + - options.env + env ); } } else { // env passed but package.json is in wrong format - if (options.env != null) { - throw Error('No env found matching ' + options.env); + if (env != null) { + throw Error('No env found matching ' + env); } return { - idyll: inputPackage.idyll[0], + idyll: inputPackage.idyll, hasMultipleConfigs: hasMultipleConfigs }; } @@ -107,7 +106,8 @@ const idyll = (options = {}, cb) => { template: join(__dirname, 'client', '_index.html'), transform: [], compiler: {}, - compileLibs: false + compileLibs: false, + env: commandLineOptions.env }, options ); @@ -121,13 +121,26 @@ const idyll = (options = {}, cb) => { const inputPackage = fs.existsSync(paths.PACKAGE_FILE) ? require(paths.PACKAGE_FILE) : {}; - const inputConfig = selectIdyllConfig(inputPackage || {}); + + if ( + commandLineOptions.env !== options.env && + (commandLineOptions.env !== undefined && options.env !== undefined) + ) { + //Should one supercede the other? + throw Error( + "Mismatch between Idyll env provided and command line arg. Please remove the Idyll({env='...',...} or the command line argument." + ); + } + + const env = commandLineOptions.env || options.env; + const inputConfig = selectIdyllConfig(inputPackage, env); const parentInputConfig = selectIdyllConfig( - searchParentDirectories(paths.INPUT_DIR) + searchParentDirectories(paths.INPUT_DIR), + env ); if (parentInputConfig.hasMultipleConfigs && !inputConfig.hasMultipleConfigs) { throw Error( - 'Project root has multiple config options given but the local project does not. Please add envs to the local project and use the --env paramter or remove them from the top level package.' + 'Project root has multiple config options given but the local project does not. Please add envs to the local project and use the --env parameter or remove them from the top level package.' ); } Object.assign(opts, parentInputConfig.idyll, inputConfig.idyll, options); diff --git a/packages/idyll-compiler/package.json b/packages/idyll-compiler/package.json index 962a5850e..504d35ad8 100644 --- a/packages/idyll-compiler/package.json +++ b/packages/idyll-compiler/package.json @@ -1,6 +1,6 @@ { "name": "idyll-compiler", - "version": "4.0.16", + "version": "4.0.21", "description": "Compiler for idyll", "main": "dist/cjs/index.js", "module": "dist/es/index.js", @@ -40,7 +40,7 @@ }, "dependencies": { "gray-matter": "^3.1.1", - "idyll-ast": "^2.0.12", + "idyll-ast": "^2.2.2", "lex": "^1.7.9", "nearley": "^2.15.0", "smartquotes": "^2.0.0" diff --git a/packages/idyll-components/package.json b/packages/idyll-components/package.json index aea9a4d47..972a3df8b 100644 --- a/packages/idyll-components/package.json +++ b/packages/idyll-components/package.json @@ -1,6 +1,6 @@ { "name": "idyll-components", - "version": "4.0.4", + "version": "4.1.6", "description": "Components that ship by default in new Idyll projects", "main": "dist/cjs/index.js", "module": "dist/es/index.js", @@ -42,7 +42,7 @@ "d3-drag": "^1.1.1", "d3-format": "^1.2.0", "d3-selection": "^1.1.0", - "idyll-ast": "^2.0.12", + "idyll-ast": "^2.2.2", "idyll-component-children": "^1.0.7", "intersection-observer": "^0.5.0", "prop-types": "^15.5.10", diff --git a/packages/idyll-components/src/action.js b/packages/idyll-components/src/action.js index 6d0856378..0f1bb082c 100644 --- a/packages/idyll-components/src/action.js +++ b/packages/idyll-components/src/action.js @@ -16,27 +16,25 @@ Action._idyll = { name: 'Action', tagType: 'open', displayType: 'inline', - children: ['action text'], + children: ['Click me to trigger an action'], props: [ { name: 'onClick', type: 'event', - example: '`x = !x`', + example: '`alert("You clicked the text.")`', description: 'An event that is triggered when a reader clicks.' }, { name: 'onMouseEnter', type: 'event', - example: '`x = true`', description: - 'An event that is triggered when a reader mouses over the element.' + 'An event that is triggered when a reader mouses over the element, e.g. `x = true`.' }, { name: 'onMouseLeave', type: 'event', - example: '`x = false`', description: - 'An event that is triggered when a reader removes their mouse from the element.' + 'An event that is triggered when a reader removes their mouse from the element, e.g. `x = false`.' } ] }; diff --git a/packages/idyll-components/src/aside.js b/packages/idyll-components/src/aside.js index 18a9b3118..53313daa5 100644 --- a/packages/idyll-components/src/aside.js +++ b/packages/idyll-components/src/aside.js @@ -3,7 +3,7 @@ import React from 'react'; class Aside extends React.PureComponent { render() { return ( - + {this.props.children} ); @@ -12,7 +12,10 @@ class Aside extends React.PureComponent { Aside._idyll = { name: 'Aside', - tagType: 'open' + tagType: 'open', + children: [ + 'Content placed inside of an aside component will be displayed in the margin.' + ] }; export default Aside; diff --git a/packages/idyll-components/src/chart.js b/packages/idyll-components/src/chart.js index f15b2c6d2..453519a68 100644 --- a/packages/idyll-components/src/chart.js +++ b/packages/idyll-components/src/chart.js @@ -69,7 +69,7 @@ class Chart extends React.PureComponent { let formattedRange = { domain: { x: domain, y: range } }; return ( -
+
{type !== 'PIE' ? ( + [{citationNumber}] ); @@ -85,28 +89,35 @@ Cite._idyll = { props: [ { name: 'authors', - type: 'string' + type: 'string', + example: '"Matthew Conlen and Jeffrey Heer"' }, { name: 'title', - type: 'string' + type: 'string', + example: + '"Idyll: A Markup Language for Authoring and Publishing Interactive Articles on the Web"' }, { name: 'url', type: 'string', - description: 'Link to the citation.' + description: 'Link to the citation.', + example: '"https://idl.cs.washington.edu/papers/idyll"' }, { name: 'date', - type: 'string' + type: 'string', + example: '"2018"' }, { name: 'venue', - type: 'string' + type: 'string', + example: '"ACM User Interface Software & Technology (UIST)"' }, { name: 'id', type: 'string', + example: '"idyll-2018"', description: 'Can be used to refer a previously stated citation using the same id.' } diff --git a/packages/idyll-components/src/conditional.js b/packages/idyll-components/src/conditional.js index 21f68c606..fbaac1f93 100644 --- a/packages/idyll-components/src/conditional.js +++ b/packages/idyll-components/src/conditional.js @@ -15,12 +15,12 @@ class Conditional extends React.Component { Conditional._idyll = { name: 'Conditional', tagType: 'open', - children: ['Some text'], + children: ['This text can be conditionally hidden.'], props: [ { name: 'if', type: 'expression', - example: '`x < 10`', + example: '`true`', description: 'An expression; if this evaluates to true, the children will be rendered, otherwise nothing will be drawn to the screen' } diff --git a/packages/idyll-components/src/desmos.js b/packages/idyll-components/src/desmos.js index 8ec6a622a..c000f0fb2 100644 --- a/packages/idyll-components/src/desmos.js +++ b/packages/idyll-components/src/desmos.js @@ -33,10 +33,15 @@ class Desmos extends React.Component { height = 400, width, id, + style, ...attributeProps } = this.props; return ( -
+
); } diff --git a/packages/idyll-components/src/display.js b/packages/idyll-components/src/display.js index d8f6014ac..b2edc148b 100644 --- a/packages/idyll-components/src/display.js +++ b/packages/idyll-components/src/display.js @@ -23,10 +23,11 @@ class Display extends React.PureComponent { } render() { - const { value } = this.props; + const { value, style } = this.props; const v = value !== undefined ? value : this.props.var; return ( {display}; + return ( + + {display} + + ); } } @@ -87,7 +91,7 @@ Dynamic._idyll = { { name: 'display', type: 'expression', - example: '`x === 0 ? "none" : x`', + defaultValue: 'none', description: 'A custom display transform to use' } ] diff --git a/packages/idyll-components/src/equation.js b/packages/idyll-components/src/equation.js index cc0e951c4..10e6a9a72 100644 --- a/packages/idyll-components/src/equation.js +++ b/packages/idyll-components/src/equation.js @@ -167,9 +167,16 @@ class Equation extends React.PureComponent { Equation._idyll = { name: 'Equation', - tagType: 'open', - children: 'y = x^2', + tagType: 'closed', props: [ + { + name: 'latex', + type: 'expression', + example: '`"x = " + x`', + defaultValue: '"x"', + description: + 'Set the latex to be shown. Can be driven by an expression to allow for dynamically updated equations.' + }, { name: 'display', type: 'boolean', diff --git a/packages/idyll-components/src/fixed.js b/packages/idyll-components/src/fixed.js index 904cbabca..e4613c2b6 100644 --- a/packages/idyll-components/src/fixed.js +++ b/packages/idyll-components/src/fixed.js @@ -3,17 +3,16 @@ import React from 'react'; class Fixed extends React.PureComponent { render() { return ( -
+
{this.props.children}
); } } - Fixed._idyll = { - name: "Fixed", - tagType: "open" -} + name: 'Fixed', + tagType: 'open' +}; export default Fixed; diff --git a/packages/idyll-components/src/float.js b/packages/idyll-components/src/float.js index 4e39514a1..0b67cd5b6 100644 --- a/packages/idyll-components/src/float.js +++ b/packages/idyll-components/src/float.js @@ -5,7 +5,11 @@ class Float extends React.PureComponent { return (
{this.props.children}
@@ -16,6 +20,9 @@ class Float extends React.PureComponent { Float._idyll = { name: 'Float', tagType: 'open', + children: [ + `Content placed here will take up half of the text-column width. Use the properties to specify left or right.` + ], props: [ { name: 'position', diff --git a/packages/idyll-components/src/gist.js b/packages/idyll-components/src/gist.js index a49809e86..13f0d4efe 100644 --- a/packages/idyll-components/src/gist.js +++ b/packages/idyll-components/src/gist.js @@ -64,7 +64,12 @@ class EmbeddedGist extends React.PureComponent { if (this.state.loading) { return
loading...
; } else { - return
; + return ( +
+ ); } } } diff --git a/packages/idyll-components/src/h1.js b/packages/idyll-components/src/h1.js index 1269bd161..88865a784 100644 --- a/packages/idyll-components/src/h1.js +++ b/packages/idyll-components/src/h1.js @@ -7,4 +7,10 @@ class H1 extends React.PureComponent { } } +H1._idyll = { + name: 'H1', + tagType: 'open', + children: ['My Header Size 1'] +}; + export default H1; diff --git a/packages/idyll-components/src/h2.js b/packages/idyll-components/src/h2.js index d105ee670..575fae887 100644 --- a/packages/idyll-components/src/h2.js +++ b/packages/idyll-components/src/h2.js @@ -7,4 +7,10 @@ class H2 extends React.PureComponent { } } +H2._idyll = { + name: 'H2', + tagType: 'open', + children: ['My Header Size 2'] +}; + export default H2; diff --git a/packages/idyll-components/src/h3.js b/packages/idyll-components/src/h3.js index 781f8cfeb..165267df6 100644 --- a/packages/idyll-components/src/h3.js +++ b/packages/idyll-components/src/h3.js @@ -7,4 +7,10 @@ class H3 extends React.PureComponent { } } +H3._idyll = { + name: 'H3', + tagType: 'open', + children: ['My Header Size 3'] +}; + export default H3; diff --git a/packages/idyll-components/src/h4.js b/packages/idyll-components/src/h4.js index 026cf0c7e..5a1522a33 100644 --- a/packages/idyll-components/src/h4.js +++ b/packages/idyll-components/src/h4.js @@ -7,4 +7,10 @@ class H4 extends React.PureComponent { } } +H4._idyll = { + name: 'H4', + tagType: 'open', + children: ['My Header Size 4'] +}; + export default H4; diff --git a/packages/idyll-components/src/h5.js b/packages/idyll-components/src/h5.js index af3d79b08..efc0ba8d0 100644 --- a/packages/idyll-components/src/h5.js +++ b/packages/idyll-components/src/h5.js @@ -7,4 +7,10 @@ class H5 extends React.PureComponent { } } +H5._idyll = { + name: 'H5', + tagType: 'open', + children: ['My Header Size 5'] +}; + export default H5; diff --git a/packages/idyll-components/src/h6.js b/packages/idyll-components/src/h6.js index d400bbfe6..3919acfdf 100644 --- a/packages/idyll-components/src/h6.js +++ b/packages/idyll-components/src/h6.js @@ -7,4 +7,10 @@ class H6 extends React.PureComponent { } } +H6._idyll = { + name: 'H6', + tagType: 'open', + children: ['My Header Size 6'] +}; + export default H6; diff --git a/packages/idyll-components/src/header.js b/packages/idyll-components/src/header.js index ee3639c99..5becf90f7 100644 --- a/packages/idyll-components/src/header.js +++ b/packages/idyll-components/src/header.js @@ -44,7 +44,8 @@ class Header extends React.PureComponent { (idyll && idyll.theme ? idyll.theme.headerBackground : undefined), color: color || - (idyll && idyll.theme ? idyll.theme.headerColor : undefined) + (idyll && idyll.theme ? idyll.theme.headerColor : undefined), + ...this.props.style }} >

{this.props.title}

@@ -89,13 +90,11 @@ Header._idyll = { }, { name: 'author', - type: 'string', - example: '"Author Name"' + type: 'string' }, { name: 'authorLink', - type: 'string', - example: '"author.website"' + type: 'string' }, { name: 'authors', @@ -113,13 +112,13 @@ Header._idyll = { { name: 'background', type: 'string', - example: '"blue"', + example: '"#999"', description: 'The background of the header. Can pass a color or a url().' }, { name: 'byLineTemplate', type: 'object', - example: "{ prefix: 'Made by', joint: ' ', suffix: '&' }", + example: "`{ prefix: 'Made by', joint: ' ', suffix: '&' }`", description: 'Optional template to use in by line.' }, { diff --git a/packages/idyll-components/src/inline.js b/packages/idyll-components/src/inline.js index 00e7e629c..47633d63b 100644 --- a/packages/idyll-components/src/inline.js +++ b/packages/idyll-components/src/inline.js @@ -3,7 +3,7 @@ import React from 'react'; class Inline extends React.PureComponent { render() { return ( -
+
{this.props.children}
); @@ -11,9 +11,11 @@ class Inline extends React.PureComponent { } Inline._idyll = { - name: "Inline", - tagType: "open" -} - + name: 'Inline', + tagType: 'open', + children: [ + `[div style:\`{width: 100, height: 100, background: red}\` /][div style:\`{width: 100, height: 100, background: blue}\` /][div style:\`{width: 100, height: 100, background: green}\` /]` + ] +}; export default Inline; diff --git a/packages/idyll-components/src/link.js b/packages/idyll-components/src/link.js index 6d791c606..08b240156 100644 --- a/packages/idyll-components/src/link.js +++ b/packages/idyll-components/src/link.js @@ -23,14 +23,20 @@ Link._idyll = { { name: 'text', type: 'string', - example: '"Link Text"', + example: '"This is a hyperlink"', description: 'The text to display' }, { name: 'url', type: 'string', - example: '"https://some.url/"', + example: '"https://idyll-lang.org/"', description: 'The URL to open when the link is clicked' + }, + { + name: 'target', + type: 'string', + example: '"_blank"', + description: 'Specifies where to open the linked document' } ] }; diff --git a/packages/idyll-components/src/loop.js b/packages/idyll-components/src/loop.js index 29d4c85fb..6c1528427 100644 --- a/packages/idyll-components/src/loop.js +++ b/packages/idyll-components/src/loop.js @@ -30,12 +30,12 @@ class Loop extends React.Component { Loop._idyll = { name: 'Loop', tagType: 'open', - children: ['Some text'], + children: ['Item [Display value:"_iterator" /] [br/]'], props: [ { name: 'value', type: 'array', - example: "['one', 'two', 'three']", + example: "`['one', 'two', 'three']`", description: 'Array of values to map.' } ] diff --git a/packages/idyll-components/src/range.js b/packages/idyll-components/src/range.js index 13fc739fc..8b0c0b0c2 100644 --- a/packages/idyll-components/src/range.js +++ b/packages/idyll-components/src/range.js @@ -12,7 +12,7 @@ class Range extends React.PureComponent { } render() { - const { value, min, max, step } = this.props; + const { value, min, max, step, style } = this.props; return ( ); } diff --git a/packages/idyll-components/src/stepper.js b/packages/idyll-components/src/stepper.js index 230459d02..869ebc7cf 100644 --- a/packages/idyll-components/src/stepper.js +++ b/packages/idyll-components/src/stepper.js @@ -22,8 +22,16 @@ class Stepper extends React.PureComponent { } next() { + let newStep = this.props.currentStep + 1; + if (!newStep) { + newStep = 1; + } + if (newStep <= this.getSteps().length) { + newStep = 0; + } + this.props.updateProps({ - currentStep: (this.props.currentStep + 1) % this.getSteps().length + currentStep: newStep }); } previous() { @@ -51,7 +59,7 @@ class Stepper extends React.PureComponent { return (
{filterChildren(children, c => { @@ -95,13 +103,14 @@ Stepper._idyll = { ` [Step]This is the content for step 1[/Step] [Step]This is the content for step 2[/Step] -[Step]This is the content for step 3[/Step]` +[Step]This is the content for step 3[/Step] +[StepperControl /]` ], props: [ { name: 'currentStep', type: 'number', - example: '0', + example: 'currentStep', description: 'The index of the currently selected step.' } ] diff --git a/packages/idyll-components/src/switch.js b/packages/idyll-components/src/switch.js index 54099763f..2c3c0d0d8 100644 --- a/packages/idyll-components/src/switch.js +++ b/packages/idyll-components/src/switch.js @@ -20,7 +20,11 @@ class Switch extends React.Component { const matchedCase = filterChildren(children, matchCase); const defaultCase = filterChildren(children, matchDefault); - return
{matchedCase.length ? matchedCase : defaultCase}
; + return ( +
+ {matchedCase.length ? matchedCase : defaultCase} +
+ ); } return ''; } @@ -29,12 +33,18 @@ class Switch extends React.Component { Switch._idyll = { name: 'Switch', tagType: 'open', - children: ['Case components'], + children: [ + ` + [Case test:0]Case 0[/Case] + [Case test:1]Case 1[/Case] + [Default]Default case[/Default] + ` + ], props: [ { name: 'value', type: 'variable', - example: '1', + example: 'x', description: 'Value of the child prop to render.' } ] diff --git a/packages/idyll-components/src/text-input.js b/packages/idyll-components/src/text-input.js index 65a0abd0b..abc313004 100644 --- a/packages/idyll-components/src/text-input.js +++ b/packages/idyll-components/src/text-input.js @@ -24,7 +24,7 @@ TextInput._idyll = { { name: 'value', type: 'string', - example: '"Hello"', + example: 'x', description: 'The current value of the text entry box.' } ] diff --git a/packages/idyll-components/src/tweet.js b/packages/idyll-components/src/tweet.js index 8383ddd34..1b647de34 100644 --- a/packages/idyll-components/src/tweet.js +++ b/packages/idyll-components/src/tweet.js @@ -22,7 +22,11 @@ class Tweet extends Component { const twttrEl = document.createElement('script'); twttrEl.setAttribute( 'src', - `${document.location.protocol}//platform.twitter.com/widgets.js` + `${ + document.location.protocol === 'file:' + ? 'https:' + : document.location.protocol + }//platform.twitter.com/widgets.js` ); twttrEl.onload = () => resolve(); twttrEl.onerror = error => reject(error); @@ -78,7 +82,7 @@ Tweet._idyll = { { name: 'parameters', type: 'object', - example: '{linkColor: "#8342f4"}', + example: '`{linkColor: "#8342f4"}`', description: 'Embedded tweet params. See https://developer.twitter.com/en/docs/twitter-for-websites/embedded-tweets/guides/embedded-tweet-parameter-reference. Optional' } diff --git a/packages/idyll-components/src/youtube.js b/packages/idyll-components/src/youtube.js index fc1f58912..f85900738 100644 --- a/packages/idyll-components/src/youtube.js +++ b/packages/idyll-components/src/youtube.js @@ -121,7 +121,7 @@ YoutubeComponent._idyll = { { name: 'id', type: 'string', - example: '', + example: '"KnPe6dZuwlg"', description: 'YouTube video id. Required.' }, { diff --git a/packages/idyll-docs/package.json b/packages/idyll-docs/package.json index f2a198ec9..65d31c636 100644 --- a/packages/idyll-docs/package.json +++ b/packages/idyll-docs/package.json @@ -1,7 +1,7 @@ { "name": "idyll-docs", "private": true, - "version": "4.0.2", + "version": "4.0.16", "description": "A repo for developing the new docs and editor pages, made with next.js", "main": "index.js", "repository": "https://github.com/idyll-lang/docs-redux.git", @@ -23,9 +23,9 @@ "dynasty": "^0.3.9", "fontfaceobserver": "^2.0.13", "html-react-parser": "^0.4.1", - "idyll-compiler": "^4.0.16", - "idyll-components": "^4.0.4", - "idyll-document": "^3.2.5", + "idyll-compiler": "^4.0.21", + "idyll-components": "^4.1.6", + "idyll-document": "^3.4.6", "isomorphic-fetch": "^2.2.1", "markdown-in-js": "^1.1.3", "next": "^9.5.1", diff --git a/packages/idyll-document/package.json b/packages/idyll-document/package.json index 1bcc9b1ba..befd398b5 100644 --- a/packages/idyll-document/package.json +++ b/packages/idyll-document/package.json @@ -1,6 +1,6 @@ { "name": "idyll-document", - "version": "3.2.5", + "version": "3.4.6", "license": "MIT", "authors": [ "Matthew Conlen", @@ -34,9 +34,9 @@ "falafel": "^2.1.0", "fast-deep-equal": "^2.0.1", "html-tags": "^2.0.0", - "idyll-compiler": "^4.0.16", - "idyll-layouts": "^3.0.6", - "idyll-themes": "^3.1.0", + "idyll-compiler": "^4.0.21", + "idyll-layouts": "^3.0.7", + "idyll-themes": "^3.1.3", "object.entries": "^1.0.4", "object.values": "^1.0.4", "react-dom-factories": "^1.0.1", diff --git a/packages/idyll-document/src/index.js b/packages/idyll-document/src/index.js index a0e075a84..7e494e17d 100644 --- a/packages/idyll-document/src/index.js +++ b/packages/idyll-document/src/index.js @@ -12,6 +12,9 @@ const getTheme = theme => { return themes[theme.trim()] || {}; }; +let layoutNode; +let themeNode; + const defaultAST = { id: 0, type: 'component', @@ -57,12 +60,10 @@ class IdyllDocument extends React.Component { } if (this.props.injectThemeCSS) { - this._themeNode = this.createStyleNode(getTheme(this.props.theme).styles); + themeNode = this.createStyleNode(getTheme(this.props.theme).styles); } if (this.props.injectLayoutCSS) { - this._layoutNode = this.createStyleNode( - getLayout(this.props.layout).styles - ); + layoutNode = this.createStyleNode(getLayout(this.props.layout).styles); } } @@ -73,19 +74,17 @@ class IdyllDocument extends React.Component { componentWillReceiveProps(newProps) { if (newProps.theme !== this.props.theme && newProps.injectThemeCSS) { - if (this._themeNode) { - this._themeNode.innerHTML = getTheme(newProps.theme).styles; + if (themeNode) { + themeNode.innerHTML = getTheme(newProps.theme).styles; } else { - this._themeNode = this.createStyleNode(getTheme(newProps.theme).styles); + themeNode = this.createStyleNode(getTheme(newProps.theme).styles); } } if (newProps.layout !== this.props.layout && newProps.injectLayoutCSS) { - if (this._layoutNode) { - this._layoutNode.innerHTML = getLayout(newProps.layout).styles; + if (layoutNode) { + layoutNode.innerHTML = getLayout(newProps.layout).styles; } else { - this._layoutNode = this.createStyleNode( - getLayout(newProps.layout).styles - ); + layoutNode = this.createStyleNode(getLayout(newProps.layout).styles); } } diff --git a/packages/idyll-document/src/runtime.js b/packages/idyll-document/src/runtime.js index 02c1bba59..51913ec0a 100644 --- a/packages/idyll-document/src/runtime.js +++ b/packages/idyll-document/src/runtime.js @@ -70,7 +70,15 @@ const getRefs = () => { }; let wrapperKey = 0; -const createWrapper = ({ theme, layout, authorView, userViewComponent }) => { +const createWrapper = ({ + theme, + layout, + authorView, + textEditComponent, + userViewComponent, + userInlineViewComponent, + wrapTextComponents +}) => { return class Wrapper extends React.PureComponent { constructor(props) { super(props); @@ -203,9 +211,28 @@ const createWrapper = ({ theme, layout, authorView, userViewComponent }) => { ); } const metaData = childComponent.type._idyll; - if (authorView && metaData && metaData.props) { + if (authorView) { // ensure inline elements do not have this overlay if ( + (metaData && metaData.name === 'TextContainer') || + ['TextContainer', 'DragDropContainer'].includes( + childComponent.type.name + ) + ) { + return returnComponent; + } else if ( + textEditComponent && + metaData && + wrapTextComponents.includes(metaData.name.toLowerCase()) + ) { + const ViewComponent = textEditComponent; + return ( + + {childComponent} + + ); + } else if ( + !metaData || metaData.displayType === undefined || metaData.displayType !== 'inline' ) { @@ -218,6 +245,17 @@ const createWrapper = ({ theme, layout, authorView, userViewComponent }) => { uniqueKey={uniqueKey} /> ); + } else if (metaData.displayType === 'inline') { + const InlineViewComponent = + userInlineViewComponent || userViewComponent || AuthorTool; + return ( + + ); } } return returnComponent; @@ -244,12 +282,34 @@ class IdyllRuntime extends React.PureComponent { theme: props.theme, layout: props.layout, authorView: props.authorView, - userViewComponent: props.userViewComponent + textEditComponent: props.textEditComponent, + userViewComponent: props.userViewComponent, + userInlineViewComponent: props.userInlineViewComponent, + wrapTextComponents: props.wrapTextComponents }); let hasInitialized = false; let initialContext = {}; // Initialize a custom context + let _initializeCallbacks = []; + let _mountCallbacks = []; + let _updateCallbacks = []; + + this._onInitializeState = () => { + _initializeCallbacks.forEach(cb => { + cb(); + }); + }; + this._onMount = () => { + _mountCallbacks.forEach(cb => { + cb(); + }); + }; + this._onUpdateState = newData => { + _updateCallbacks.forEach(cb => { + cb(newData); + }); + }; if (typeof props.context === 'function') { props.context({ update: newState => { @@ -263,13 +323,13 @@ class IdyllRuntime extends React.PureComponent { return this.state; }, onInitialize: cb => { - this._onInitializeState = cb; + _initializeCallbacks.push(cb); }, onMount: cb => { - this._onMount = cb; + _mountCallbacks.push(cb); }, onUpdate: cb => { - this._onUpdateState = cb; + _updateCallbacks.push(cb); } }); } @@ -373,7 +433,7 @@ class IdyllRuntime extends React.PureComponent { const schema = translate(ast); const wrapTargets = findWrapTargets(schema, this.state, props.components); let refCounter = 0; - const transformedSchema = mapTree(schema, node => { + const transformedSchema = mapTree(schema, (node, depth) => { // console.log('mapoing ', node.component || node.type); if (!node.component) { if (node.type && node.type === 'textnode') return node.value; @@ -400,8 +460,6 @@ class IdyllRuntime extends React.PureComponent { } //Inspect for isHTMLNode props and to check for dynamic components. if (!wrapTargets.includes(node)) { - // console.log('node not wrapped', node); - if ( this.props.wrapTextComponents.indexOf(node.component) > -1 && this.props.textEditComponent @@ -555,7 +613,19 @@ IdyllRuntime.defaultProps = { theme: 'github', authorView: false, insertStyles: false, - wrapTextComponents: ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'CodeHighlight'] + wrapTextComponents: [ + 'p', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'ul', + 'ol', + 'pre', + 'CodeHighlight' + ] }; export default IdyllRuntime; diff --git a/packages/idyll-document/src/utils/index.js b/packages/idyll-document/src/utils/index.js index dd7c2ae06..9b5ae6ceb 100644 --- a/packages/idyll-document/src/utils/index.js +++ b/packages/idyll-document/src/utils/index.js @@ -393,22 +393,22 @@ export const translate = ast => { return splitAST(getChildren(ast)).elements.map(tNode); }; -export const mapTree = (tree, mapFn, filterFn = () => true) => { - const walkFn = (acc, node) => { +export const mapTree = (tree, mapFn, filterFn = () => true, depth = 0) => { + const walkFn = depth => (acc, node) => { //To check for textnodes if (node.component) { //To check for childrens if (node.children) { - node.children = node.children.reduce(walkFn, []); + node.children = node.children.reduce(walkFn(depth + 1), []); } } if (filterFn(node)) { - acc.push(mapFn(node)); + acc.push(mapFn(node, depth)); } return acc; }; - let value = tree.reduce(walkFn, []); + let value = tree.reduce(walkFn(depth), []); return value; }; diff --git a/packages/idyll-layouts/package.json b/packages/idyll-layouts/package.json index 13ff0f8b0..cb447292e 100644 --- a/packages/idyll-layouts/package.json +++ b/packages/idyll-layouts/package.json @@ -1,6 +1,6 @@ { "name": "idyll-layouts", - "version": "3.0.6", + "version": "3.0.7", "description": "Default layouts for Idyll", "main": "dist/cjs/index.js", "module": "dist/es/index.js", diff --git a/packages/idyll-layouts/src/blog/styles.js b/packages/idyll-layouts/src/blog/styles.js index c9c1c9ed9..ea3ea58a8 100644 --- a/packages/idyll-layouts/src/blog/styles.js +++ b/packages/idyll-layouts/src/blog/styles.js @@ -82,7 +82,6 @@ input { .component-debug-view { position: relative; transition: background-color 0.3s ease-in; - box-shadow: 5px 5px 10px 1px lightGray; } .author-view-button { diff --git a/packages/idyll-layouts/src/centered/styles.js b/packages/idyll-layouts/src/centered/styles.js index d95b50de5..86638a17f 100644 --- a/packages/idyll-layouts/src/centered/styles.js +++ b/packages/idyll-layouts/src/centered/styles.js @@ -177,7 +177,6 @@ input { @media all and (max-width: 1000px) { .idyll-root { - max-width: 600px; margin: 0 auto; padding: 60px 20px; margin-bottom: 60px; diff --git a/packages/idyll-template-projects/package.json b/packages/idyll-template-projects/package.json index eae77ff6f..1e14c9294 100644 --- a/packages/idyll-template-projects/package.json +++ b/packages/idyll-template-projects/package.json @@ -1,6 +1,6 @@ { "name": "idyll-template-projects", - "version": "2.2.3", + "version": "2.2.5", "description": "Template projects for Idyll", "main": "index.js", "repository": { diff --git a/packages/idyll-template-projects/templates/article/index.idyll b/packages/idyll-template-projects/templates/article/index.idyll index 965a455f4..6210cfe65 100644 --- a/packages/idyll-template-projects/templates/article/index.idyll +++ b/packages/idyll-template-projects/templates/article/index.idyll @@ -11,6 +11,7 @@ color:"#ffffff" /] +[var name:"x" value:0 /] ## Introduction @@ -35,7 +36,7 @@ Configuration can be done via the `idyll` field in `package.json`. Idyll is based on Markdown. You can use familiar syntax -to create **bold** (`**bold**` ) and *italic* (``*italic*` ) styles, +to create **bold** (`**bold**` ) and *italic* (`*italic*` ) styles, * lists * of diff --git a/packages/idyll-themes/package.json b/packages/idyll-themes/package.json index 1b25db4a7..46cfe43e7 100644 --- a/packages/idyll-themes/package.json +++ b/packages/idyll-themes/package.json @@ -1,6 +1,6 @@ { "name": "idyll-themes", - "version": "3.1.0", + "version": "3.1.3", "description": "Default themes for Idyll", "main": "dist/cjs/index.js", "module": "dist/es/index.js", diff --git a/packages/idyll-themes/src/default/styles.js b/packages/idyll-themes/src/default/styles.js index 902ed934b..e75a4271d 100644 --- a/packages/idyll-themes/src/default/styles.js +++ b/packages/idyll-themes/src/default/styles.js @@ -227,6 +227,126 @@ input { line-height: inherit; } + +/* Buttons +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.button, +button, +input[type="submit"], +input[type="reset"], +input[type="button"] { + display: inline-block; + height: 38px; + padding: 0 30px; + color: #333; + text-align: center; + font-size: 11px; + font-weight: 600; + line-height: 38px; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border-radius: 4px; + border: 1px solid #bbb; + cursor: pointer; + box-sizing: border-box; } +.button:hover, +button:hover, +input[type="submit"]:hover, +input[type="reset"]:hover, +input[type="button"]:hover, +.button:focus, +button:focus, +input[type="submit"]:focus, +input[type="reset"]:focus, +input[type="button"]:focus { + color: #333; + border-color: #888; + outline: 0; } +.button.button-primary, +button.button-primary, +input[type="submit"].button-primary, +input[type="reset"].button-primary, +input[type="button"].button-primary { + color: #FFF; + background-color: #33C3F0; + border-color: #33C3F0; } +.button.button-primary:hover, +button.button-primary:hover, +input[type="submit"].button-primary:hover, +input[type="reset"].button-primary:hover, +input[type="button"].button-primary:hover, +.button.button-primary:focus, +button.button-primary:focus, +input[type="submit"].button-primary:focus, +input[type="reset"].button-primary:focus, +input[type="button"].button-primary:focus { + color: #FFF; + background-color: #1EAEDB; + border-color: #1EAEDB; } + + +/* Forms +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea, +select { + height: 38px; + padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ + background-color: #fff; + border: 1px solid #D1D1D1; + border-radius: 4px; + box-shadow: none; + box-sizing: border-box; } +/* Removes awkward default styles on some inputs for iOS */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } +textarea { + min-height: 65px; + padding-top: 6px; + padding-bottom: 6px; } +input[type="email"]:focus, +input[type="number"]:focus, +input[type="search"]:focus, +input[type="text"]:focus, +input[type="tel"]:focus, +input[type="url"]:focus, +input[type="password"]:focus, +textarea:focus, +select:focus { + border: 1px solid #666; + outline: 0; } +label, +legend { + display: block; + margin-bottom: .5rem; + font-weight: 600; } +fieldset { + padding: 0; + border-width: 0; } +input[type="checkbox"], +input[type="radio"] { + display: inline; } +label > .label-body { + display: inline-block; + margin-left: .5rem; + font-weight: normal; } + a { color: #0366d6; text-decoration: none; diff --git a/packages/idyll-themes/src/github/styles.js b/packages/idyll-themes/src/github/styles.js index 7b2d982e7..8e816a5d6 100644 --- a/packages/idyll-themes/src/github/styles.js +++ b/packages/idyll-themes/src/github/styles.js @@ -727,6 +727,7 @@ hr { .idyll-action { text-decoration: underline; + cursor: pointer; } .idyll-document-error { diff --git a/packages/idyll-themes/src/idyll/styles.js b/packages/idyll-themes/src/idyll/styles.js index 66c87efc9..bdb1323a6 100644 --- a/packages/idyll-themes/src/idyll/styles.js +++ b/packages/idyll-themes/src/idyll/styles.js @@ -125,6 +125,7 @@ span.action { .idyll-action { text-decoration: underline; + cursor: pointer; } .idyll-document-error { diff --git a/packages/idyll-themes/src/tufte/styles.js b/packages/idyll-themes/src/tufte/styles.js index 291e329fd..8be27f78d 100644 --- a/packages/idyll-themes/src/tufte/styles.js +++ b/packages/idyll-themes/src/tufte/styles.js @@ -272,6 +272,7 @@ label.margin-toggle:not(.sidenote-number) { display: none; } .idyll-action { text-decoration: underline; + cursor: pointer; } From fc5d443b26b7cdb8aad74a6a7c0e52e35970a14a Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Sun, 21 Feb 2021 22:54:38 -0800 Subject: [PATCH 09/12] Added tests --- .../outer-project/components/CapitalPascal.js | 11 + .../components/custom-component.js | 17 + .../components/functional-component.js | 5 + .../functional-default-component.js | 9 + .../outer-project/custom-theme.css | 721 + .../outer-project/data/example-data.json | 10 + .../outer-project/data/example-file.csv | 3 + .../test/env-options/outer-project/index.idl | 58 + .../outer-project/inner-project/package.json | 38 + .../node_modules/d3/.gitattributes | 2 + .../outer-project/node_modules/d3/.npmignore | 6 + .../outer-project/node_modules/d3/.spmignore | 4 + .../node_modules/d3/CONTRIBUTING.md | 27 + .../outer-project/node_modules/d3/LICENSE | 26 + .../outer-project/node_modules/d3/README.md | 13 + .../outer-project/node_modules/d3/bin/meteor | 20 + .../outer-project/node_modules/d3/bin/start | 3 + .../outer-project/node_modules/d3/bin/uglify | 34 + .../node_modules/d3/composer.json | 26 + .../outer-project/node_modules/d3/d3.js | 13237 ++++++++++++++++ .../outer-project/node_modules/d3/d3.min.js | 10942 +++++++++++++ .../outer-project/node_modules/d3/package.js | 14 + .../node_modules/d3/package.json | 137 + .../node_modules/d3/src/arrays/ascending.js | 5 + .../node_modules/d3/src/arrays/bisect.js | 40 + .../node_modules/d3/src/arrays/descending.js | 3 + .../node_modules/d3/src/arrays/deviation.js | 6 + .../node_modules/d3/src/arrays/entries.js | 5 + .../node_modules/d3/src/arrays/extent.js | 31 + .../node_modules/d3/src/arrays/index.js | 25 + .../node_modules/d3/src/arrays/keys.js | 5 + .../node_modules/d3/src/arrays/map.js | 89 + .../node_modules/d3/src/arrays/max.js | 23 + .../node_modules/d3/src/arrays/mean.js | 19 + .../node_modules/d3/src/arrays/median.js | 18 + .../node_modules/d3/src/arrays/merge.js | 21 + .../node_modules/d3/src/arrays/min.js | 23 + .../node_modules/d3/src/arrays/nest.js | 101 + .../node_modules/d3/src/arrays/pairs.js | 9 + .../node_modules/d3/src/arrays/permute.js | 6 + .../node_modules/d3/src/arrays/quantile.js | 8 + .../node_modules/d3/src/arrays/range.js | 26 + .../node_modules/d3/src/arrays/set.js | 27 + .../node_modules/d3/src/arrays/shuffle.js | 14 + .../node_modules/d3/src/arrays/sum.js | 14 + .../node_modules/d3/src/arrays/transpose.js | 21 + .../node_modules/d3/src/arrays/values.js | 5 + .../node_modules/d3/src/arrays/variance.js | 29 + .../node_modules/d3/src/arrays/zip.js | 5 + .../node_modules/d3/src/behavior/behavior.js | 1 + .../node_modules/d3/src/behavior/drag.js | 98 + .../node_modules/d3/src/behavior/index.js | 3 + .../node_modules/d3/src/behavior/zoom.js | 413 + .../node_modules/d3/src/color/color.js | 7 + .../node_modules/d3/src/color/hcl.js | 46 + .../node_modules/d3/src/color/hsl.js | 58 + .../node_modules/d3/src/color/index.js | 6 + .../node_modules/d3/src/color/lab.js | 72 + .../node_modules/d3/src/color/rgb.js | 318 + .../node_modules/d3/src/color/xyz.js | 9 + .../node_modules/d3/src/compat/array.js | 16 + .../node_modules/d3/src/compat/date.js | 4 + .../node_modules/d3/src/compat/index.js | 3 + .../node_modules/d3/src/compat/style.js | 23 + .../node_modules/d3/src/core/array.js | 4 + .../node_modules/d3/src/core/class.js | 8 + .../node_modules/d3/src/core/document.js | 21 + .../node_modules/d3/src/core/functor.js | 9 + .../node_modules/d3/src/core/identity.js | 3 + .../node_modules/d3/src/core/index.js | 3 + .../node_modules/d3/src/core/noop.js | 1 + .../node_modules/d3/src/core/ns.js | 22 + .../node_modules/d3/src/core/rebind.js | 19 + .../node_modules/d3/src/core/source.js | 3 + .../node_modules/d3/src/core/subclass.js | 9 + .../node_modules/d3/src/core/target.js | 3 + .../node_modules/d3/src/core/true.js | 3 + .../node_modules/d3/src/core/vendor.js | 10 + .../node_modules/d3/src/core/zero.js | 3 + .../outer-project/node_modules/d3/src/d3.js | 23 + .../node_modules/d3/src/dsv/csv.js | 3 + .../node_modules/d3/src/dsv/dsv.js | 164 + .../node_modules/d3/src/dsv/index.js | 3 + .../node_modules/d3/src/dsv/tsv.js | 3 + .../outer-project/node_modules/d3/src/end.js | 4 + .../node_modules/d3/src/event/dispatch.js | 69 + .../node_modules/d3/src/event/drag.js | 36 + .../node_modules/d3/src/event/event.js | 50 + .../node_modules/d3/src/event/index.js | 6 + .../node_modules/d3/src/event/mouse.js | 39 + .../node_modules/d3/src/event/timer.js | 82 + .../node_modules/d3/src/event/touch.js | 11 + .../node_modules/d3/src/event/touches.js | 12 + .../node_modules/d3/src/format/collapse.js | 3 + .../node_modules/d3/src/format/format.js | 3 + .../d3/src/format/formatPrefix.js | 24 + .../node_modules/d3/src/format/index.js | 4 + .../node_modules/d3/src/format/precision.js | 3 + .../node_modules/d3/src/format/requote.js | 5 + .../node_modules/d3/src/format/round.js | 5 + .../node_modules/d3/src/geo/albers-usa.js | 129 + .../node_modules/d3/src/geo/albers.js | 11 + .../node_modules/d3/src/geo/area.js | 69 + .../d3/src/geo/azimuthal-equal-area.js | 12 + .../d3/src/geo/azimuthal-equidistant.js | 13 + .../node_modules/d3/src/geo/azimuthal.js | 25 + .../node_modules/d3/src/geo/bounds.js | 168 + .../node_modules/d3/src/geo/cartesian.js | 47 + .../node_modules/d3/src/geo/centroid.js | 149 + .../node_modules/d3/src/geo/circle.js | 81 + .../d3/src/geo/clip-antimeridian.js | 95 + .../node_modules/d3/src/geo/clip-circle.js | 178 + .../node_modules/d3/src/geo/clip-extent.js | 196 + .../node_modules/d3/src/geo/clip-polygon.js | 104 + .../node_modules/d3/src/geo/clip.js | 149 + .../node_modules/d3/src/geo/compose.js | 12 + .../d3/src/geo/conic-conformal.js | 39 + .../d3/src/geo/conic-equal-area.js | 33 + .../d3/src/geo/conic-equidistant.js | 36 + .../node_modules/d3/src/geo/conic.js | 16 + .../node_modules/d3/src/geo/distance.js | 13 + .../d3/src/geo/equirectangular.js | 10 + .../node_modules/d3/src/geo/geo.js | 1 + .../node_modules/d3/src/geo/gnomonic.js | 12 + .../node_modules/d3/src/geo/graticule.js | 103 + .../node_modules/d3/src/geo/greatArc.js | 42 + .../node_modules/d3/src/geo/index.js | 33 + .../node_modules/d3/src/geo/interpolate.js | 38 + .../node_modules/d3/src/geo/length.js | 44 + .../node_modules/d3/src/geo/mercator.js | 48 + .../node_modules/d3/src/geo/orthographic.js | 12 + .../node_modules/d3/src/geo/path-area.js | 41 + .../node_modules/d3/src/geo/path-bounds.js | 21 + .../node_modules/d3/src/geo/path-buffer.js | 59 + .../node_modules/d3/src/geo/path-centroid.js | 78 + .../node_modules/d3/src/geo/path-context.js | 49 + .../node_modules/d3/src/geo/path.js | 87 + .../d3/src/geo/point-in-polygon.js | 71 + .../node_modules/d3/src/geo/projection.js | 121 + .../node_modules/d3/src/geo/resample.js | 109 + .../node_modules/d3/src/geo/rotation.js | 79 + .../node_modules/d3/src/geo/spherical.js | 13 + .../node_modules/d3/src/geo/stereographic.js | 12 + .../node_modules/d3/src/geo/stream.js | 71 + .../node_modules/d3/src/geo/transform.js | 36 + .../d3/src/geo/transverse-mercator.js | 31 + .../node_modules/d3/src/geom/clip-line.js | 66 + .../node_modules/d3/src/geom/delaunay.js | 6 + .../node_modules/d3/src/geom/geom.js | 1 + .../node_modules/d3/src/geom/hull.js | 91 + .../node_modules/d3/src/geom/index.js | 6 + .../node_modules/d3/src/geom/point.js | 7 + .../node_modules/d3/src/geom/polygon.js | 105 + .../node_modules/d3/src/geom/quadtree.js | 243 + .../node_modules/d3/src/geom/voronoi.js | 110 + .../node_modules/d3/src/geom/voronoi/beach.js | 186 + .../node_modules/d3/src/geom/voronoi/cell.js | 64 + .../d3/src/geom/voronoi/circle.js | 73 + .../node_modules/d3/src/geom/voronoi/clip.js | 80 + .../node_modules/d3/src/geom/voronoi/edge.js | 50 + .../node_modules/d3/src/geom/voronoi/index.js | 59 + .../d3/src/geom/voronoi/red-black.js | 235 + .../node_modules/d3/src/interpolate/array.js | 19 + .../node_modules/d3/src/interpolate/ease.js | 111 + .../node_modules/d3/src/interpolate/hcl.js | 20 + .../node_modules/d3/src/interpolate/hsl.js | 20 + .../node_modules/d3/src/interpolate/index.js | 14 + .../d3/src/interpolate/interpolate.js | 26 + .../node_modules/d3/src/interpolate/lab.js | 17 + .../node_modules/d3/src/interpolate/number.js | 6 + .../node_modules/d3/src/interpolate/object.js | 25 + .../node_modules/d3/src/interpolate/rgb.js | 20 + .../node_modules/d3/src/interpolate/round.js | 6 + .../node_modules/d3/src/interpolate/string.js | 54 + .../d3/src/interpolate/transform.js | 59 + .../d3/src/interpolate/uninterpolate.js | 9 + .../node_modules/d3/src/interpolate/zoom.js | 53 + .../node_modules/d3/src/layout/bundle.js | 59 + .../node_modules/d3/src/layout/chord.js | 157 + .../node_modules/d3/src/layout/cluster.js | 92 + .../node_modules/d3/src/layout/force.js | 372 + .../node_modules/d3/src/layout/hierarchy.js | 136 + .../node_modules/d3/src/layout/histogram.js | 110 + .../node_modules/d3/src/layout/index.js | 13 + .../node_modules/d3/src/layout/layout.js | 1 + .../node_modules/d3/src/layout/pack.js | 211 + .../node_modules/d3/src/layout/partition.js | 51 + .../node_modules/d3/src/layout/pie.js | 78 + .../node_modules/d3/src/layout/stack.js | 247 + .../node_modules/d3/src/layout/tree.js | 240 + .../node_modules/d3/src/layout/treemap.js | 229 + .../node_modules/d3/src/locale/ca-ES.js | 16 + .../node_modules/d3/src/locale/de-CH.js | 16 + .../node_modules/d3/src/locale/de-DE.js | 16 + .../node_modules/d3/src/locale/en-CA.js | 16 + .../node_modules/d3/src/locale/en-GB.js | 16 + .../node_modules/d3/src/locale/en-US.js | 16 + .../node_modules/d3/src/locale/es-ES.js | 16 + .../node_modules/d3/src/locale/fi-FI.js | 16 + .../node_modules/d3/src/locale/fr-CA.js | 16 + .../node_modules/d3/src/locale/fr-FR.js | 16 + .../node_modules/d3/src/locale/he-IL.js | 16 + .../node_modules/d3/src/locale/hu-HU.js | 16 + .../node_modules/d3/src/locale/it-IT.js | 16 + .../node_modules/d3/src/locale/ja-JP.js | 16 + .../node_modules/d3/src/locale/ko-KR.js | 16 + .../node_modules/d3/src/locale/locale.js | 9 + .../node_modules/d3/src/locale/mk-MK.js | 16 + .../node_modules/d3/src/locale/nl-NL.js | 16 + .../d3/src/locale/number-format.js | 155 + .../node_modules/d3/src/locale/pl-PL.js | 16 + .../node_modules/d3/src/locale/pt-BR.js | 16 + .../node_modules/d3/src/locale/ru-RU.js | 16 + .../node_modules/d3/src/locale/sv-SE.js | 16 + .../node_modules/d3/src/locale/time-format.js | 370 + .../node_modules/d3/src/locale/time-scale.js | 0 .../node_modules/d3/src/locale/zh-CN.js | 16 + .../node_modules/d3/src/math/abs.js | 1 + .../node_modules/d3/src/math/adder.js | 34 + .../node_modules/d3/src/math/index.js | 2 + .../node_modules/d3/src/math/number.js | 7 + .../node_modules/d3/src/math/random.js | 34 + .../node_modules/d3/src/math/transform.js | 64 + .../node_modules/d3/src/math/trigonometry.js | 44 + .../node_modules/d3/src/scale/bilinear.js | 7 + .../node_modules/d3/src/scale/category.js | 58 + .../node_modules/d3/src/scale/identity.js | 33 + .../node_modules/d3/src/scale/index.js | 11 + .../node_modules/d3/src/scale/linear.js | 160 + .../node_modules/d3/src/scale/log.js | 92 + .../node_modules/d3/src/scale/nice.js | 30 + .../node_modules/d3/src/scale/ordinal.js | 102 + .../node_modules/d3/src/scale/polylinear.js | 24 + .../node_modules/d3/src/scale/pow.js | 57 + .../node_modules/d3/src/scale/quantile.js | 55 + .../node_modules/d3/src/scale/quantize.js | 44 + .../node_modules/d3/src/scale/scale.js | 10 + .../node_modules/d3/src/scale/sqrt.js | 6 + .../node_modules/d3/src/scale/threshold.js | 36 + .../node_modules/d3/src/selection/append.js | 28 + .../node_modules/d3/src/selection/attr.js | 62 + .../node_modules/d3/src/selection/call.js | 8 + .../node_modules/d3/src/selection/classed.js | 76 + .../node_modules/d3/src/selection/data.js | 117 + .../node_modules/d3/src/selection/datum.js | 7 + .../node_modules/d3/src/selection/each.js | 16 + .../node_modules/d3/src/selection/empty.js | 5 + .../d3/src/selection/enter-insert.js | 20 + .../d3/src/selection/enter-select.js | 27 + .../node_modules/d3/src/selection/enter.js | 21 + .../node_modules/d3/src/selection/filter.js | 28 + .../node_modules/d3/src/selection/html.js | 10 + .../node_modules/d3/src/selection/index.js | 1 + .../node_modules/d3/src/selection/insert.js | 9 + .../d3/src/selection/interrupt.js | 27 + .../node_modules/d3/src/selection/node.js | 11 + .../node_modules/d3/src/selection/on.js | 106 + .../node_modules/d3/src/selection/order.js | 13 + .../node_modules/d3/src/selection/property.js | 43 + .../node_modules/d3/src/selection/remove.js | 13 + .../node_modules/d3/src/selection/select.js | 32 + .../d3/src/selection/selectAll.js | 27 + .../d3/src/selection/selection.js | 81 + .../node_modules/d3/src/selection/size.js | 7 + .../node_modules/d3/src/selection/sort.js | 15 + .../node_modules/d3/src/selection/style.js | 59 + .../node_modules/d3/src/selection/text.js | 10 + .../d3/src/selection/transition.js | 21 + .../node_modules/d3/src/start.js | 2 + .../node_modules/d3/src/svg/arc.js | 292 + .../node_modules/d3/src/svg/area-radial.js | 14 + .../node_modules/d3/src/svg/area.js | 121 + .../node_modules/d3/src/svg/axis.js | 160 + .../node_modules/d3/src/svg/brush.js | 429 + .../node_modules/d3/src/svg/chord.js | 90 + .../d3/src/svg/diagonal-radial.js | 27 + .../node_modules/d3/src/svg/diagonal.js | 43 + .../node_modules/d3/src/svg/index.js | 12 + .../node_modules/d3/src/svg/line-radial.js | 27 + .../node_modules/d3/src/svg/line.js | 432 + .../node_modules/d3/src/svg/svg.js | 1 + .../node_modules/d3/src/svg/symbol.js | 105 + .../node_modules/d3/src/time/day.js | 21 + .../node_modules/d3/src/time/format-iso.js | 19 + .../node_modules/d3/src/time/format-utc.js | 3 + .../node_modules/d3/src/time/format.js | 4 + .../node_modules/d3/src/time/hour.js | 14 + .../node_modules/d3/src/time/index.js | 14 + .../node_modules/d3/src/time/interval.js | 71 + .../node_modules/d3/src/time/minute.js | 13 + .../node_modules/d3/src/time/month.js | 16 + .../node_modules/d3/src/time/scale-utc.js | 25 + .../node_modules/d3/src/time/scale.js | 155 + .../node_modules/d3/src/time/second.js | 13 + .../node_modules/d3/src/time/time.js | 33 + .../node_modules/d3/src/time/week.js | 31 + .../node_modules/d3/src/time/year.js | 16 + .../node_modules/d3/src/transition/attr.js | 58 + .../node_modules/d3/src/transition/delay.js | 10 + .../d3/src/transition/duration.js | 10 + .../node_modules/d3/src/transition/each.js | 26 + .../node_modules/d3/src/transition/ease.js | 10 + .../node_modules/d3/src/transition/filter.js | 22 + .../node_modules/d3/src/transition/index.js | 1 + .../node_modules/d3/src/transition/remove.js | 9 + .../node_modules/d3/src/transition/select.js | 28 + .../d3/src/transition/selectAll.js | 31 + .../node_modules/d3/src/transition/style.js | 53 + .../d3/src/transition/subtransition.js | 25 + .../node_modules/d3/src/transition/text.js | 11 + .../d3/src/transition/transition.js | 161 + .../node_modules/d3/src/transition/tween.js | 17 + .../node_modules/d3/src/xhr/html.js | 12 + .../node_modules/d3/src/xhr/index.js | 5 + .../node_modules/d3/src/xhr/json.js | 9 + .../node_modules/d3/src/xhr/text.js | 5 + .../node_modules/d3/src/xhr/xhr.js | 126 + .../node_modules/d3/src/xhr/xml.js | 5 + .../react-simple-pie-chart/.babelrc | 7 + .../react-simple-pie-chart/.npmignore | 11 + .../react-simple-pie-chart/.travis.yml | 8 + .../react-simple-pie-chart/CHANGELOG.md | 38 + .../react-simple-pie-chart/LICENSE | 21 + .../react-simple-pie-chart/README.md | 54 + .../react-simple-pie-chart/package.json | 142 + .../env-options/outer-project/package.json | 32 + .../outer-project/static/favicon.ico | Bin 0 -> 5430 bytes .../test/env-options/outer-project/styles.css | 13 + packages/idyll-cli/test/env-options/test.js | 121 + 329 files changed, 40305 insertions(+) create mode 100644 packages/idyll-cli/test/env-options/outer-project/components/CapitalPascal.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/components/custom-component.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/components/functional-component.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/components/functional-default-component.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/custom-theme.css create mode 100644 packages/idyll-cli/test/env-options/outer-project/data/example-data.json create mode 100644 packages/idyll-cli/test/env-options/outer-project/data/example-file.csv create mode 100644 packages/idyll-cli/test/env-options/outer-project/index.idl create mode 100644 packages/idyll-cli/test/env-options/outer-project/inner-project/package.json create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.gitattributes create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.npmignore create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.spmignore create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/CONTRIBUTING.md create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/LICENSE create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/README.md create mode 100755 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/meteor create mode 100755 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/start create mode 100755 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/uglify create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/composer.json create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/d3.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/d3.min.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/package.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/package.json create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/ascending.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/bisect.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/descending.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/deviation.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/entries.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/extent.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/keys.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/map.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/max.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/mean.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/median.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/merge.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/min.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/nest.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/pairs.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/permute.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/quantile.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/range.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/set.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/shuffle.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/sum.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/transpose.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/values.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/variance.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/zip.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/behavior.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/drag.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/zoom.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/color.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/hcl.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/hsl.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/lab.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/rgb.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/xyz.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/array.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/date.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/style.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/array.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/class.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/document.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/functor.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/identity.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/noop.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/ns.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/rebind.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/source.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/subclass.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/target.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/true.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/vendor.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/zero.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/d3.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/csv.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/dsv.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/tsv.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/end.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/dispatch.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/drag.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/event.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/mouse.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/timer.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/touch.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/touches.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/collapse.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/format.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/formatPrefix.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/precision.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/requote.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/round.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/albers-usa.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/albers.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/area.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal-equal-area.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal-equidistant.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/bounds.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/cartesian.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/centroid.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/circle.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-antimeridian.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-circle.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-extent.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-polygon.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/compose.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-conformal.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-equal-area.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-equidistant.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/distance.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/equirectangular.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/geo.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/gnomonic.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/graticule.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/greatArc.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/interpolate.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/length.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/mercator.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/orthographic.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-area.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-bounds.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-buffer.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-centroid.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-context.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/point-in-polygon.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/projection.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/resample.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/rotation.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/spherical.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/stereographic.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/stream.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/transform.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/transverse-mercator.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/clip-line.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/delaunay.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/geom.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/hull.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/point.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/polygon.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/quadtree.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/beach.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/cell.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/circle.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/clip.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/edge.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/red-black.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/array.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/ease.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/hcl.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/hsl.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/interpolate.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/lab.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/number.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/object.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/rgb.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/round.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/string.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/transform.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/uninterpolate.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/zoom.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/bundle.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/chord.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/cluster.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/force.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/hierarchy.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/histogram.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/layout.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/pack.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/partition.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/pie.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/stack.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/tree.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/treemap.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ca-ES.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/de-CH.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/de-DE.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-CA.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-GB.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-US.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/es-ES.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fi-FI.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fr-CA.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fr-FR.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/he-IL.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/hu-HU.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/it-IT.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ja-JP.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ko-KR.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/locale.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/mk-MK.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/nl-NL.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/number-format.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/pl-PL.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/pt-BR.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ru-RU.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/sv-SE.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/time-format.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/time-scale.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/zh-CN.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/abs.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/adder.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/number.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/random.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/transform.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/trigonometry.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/bilinear.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/category.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/identity.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/linear.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/log.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/nice.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/ordinal.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/polylinear.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/pow.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/quantile.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/quantize.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/scale.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/sqrt.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/threshold.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/append.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/attr.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/call.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/classed.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/data.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/datum.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/each.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/empty.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter-insert.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter-select.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/filter.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/html.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/insert.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/interrupt.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/node.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/on.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/order.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/property.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/remove.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/select.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/selectAll.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/selection.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/size.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/sort.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/style.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/text.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/transition.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/start.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/arc.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/area-radial.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/area.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/axis.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/brush.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/chord.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/diagonal-radial.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/diagonal.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/line-radial.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/line.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/svg.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/symbol.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/day.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format-iso.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format-utc.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/hour.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/interval.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/minute.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/month.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/scale-utc.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/scale.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/second.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/time.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/week.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/year.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/attr.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/delay.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/duration.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/each.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/ease.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/filter.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/remove.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/select.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/selectAll.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/style.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/subtransition.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/text.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/transition.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/tween.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/html.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/index.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/json.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/text.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/xhr.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/xml.js create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.babelrc create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.npmignore create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.travis.yml create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/CHANGELOG.md create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/LICENSE create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/README.md create mode 100644 packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/package.json create mode 100644 packages/idyll-cli/test/env-options/outer-project/package.json create mode 100755 packages/idyll-cli/test/env-options/outer-project/static/favicon.ico create mode 100644 packages/idyll-cli/test/env-options/outer-project/styles.css create mode 100644 packages/idyll-cli/test/env-options/test.js diff --git a/packages/idyll-cli/test/env-options/outer-project/components/CapitalPascal.js b/packages/idyll-cli/test/env-options/outer-project/components/CapitalPascal.js new file mode 100644 index 000000000..d5861b1c7 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/components/CapitalPascal.js @@ -0,0 +1,11 @@ +const React = require('react'); + +class PascalComponent extends React.PureComponent { + render() { + const { hasError, updateProps, idyll, ...props } = this.props; + + return
This is a custom component
; + } +} + +module.exports = PascalComponent; diff --git a/packages/idyll-cli/test/env-options/outer-project/components/custom-component.js b/packages/idyll-cli/test/env-options/outer-project/components/custom-component.js new file mode 100644 index 000000000..39d111ab6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/components/custom-component.js @@ -0,0 +1,17 @@ +const React = require('react'); + +class CustomComponent extends React.PureComponent { + render() { + const { hasError, updateProps, idyll, ...props } = this.props; + return
This is a custom component
; + } +} + +module.exports = CustomComponent; + +module.exports.IndexedComponent = class extends React.PureComponent { + render() { + const { hasError, updateProps, idyll, ...props } = this.props; + return
This is another custom component
; + } +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/components/functional-component.js b/packages/idyll-cli/test/env-options/outer-project/components/functional-component.js new file mode 100644 index 000000000..01991bcf4 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/components/functional-component.js @@ -0,0 +1,5 @@ +const React = require('react'); + +module.exports = () => { + return
Let's put the fun back in functional!
; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/components/functional-default-component.js b/packages/idyll-cli/test/env-options/outer-project/components/functional-default-component.js new file mode 100644 index 000000000..47bdf47fe --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/components/functional-default-component.js @@ -0,0 +1,9 @@ +const React = require('react'); + +export default () => ( +
+ This is some text + + Then some more text +
+); diff --git a/packages/idyll-cli/test/env-options/outer-project/custom-theme.css b/packages/idyll-cli/test/env-options/outer-project/custom-theme.css new file mode 100644 index 000000000..ae41890f6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/custom-theme.css @@ -0,0 +1,721 @@ +@font-face { + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) + format('woff'); +} + +.idyll-root { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + line-height: 1.5; + color: #24292e; + font-family: -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', + Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', + 'Segoe UI Symbol'; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.idyll-root .pl-c { + color: #969896; +} + +.idyll-root .pl-c1, +.idyll-root .pl-s .pl-v { + color: #0086b3; +} + +.idyll-root .pl-e, +.idyll-root .pl-en { + color: #795da3; +} + +.idyll-root .pl-smi, +.idyll-root .pl-s .pl-s1 { + color: #333; +} + +.idyll-root .pl-ent { + color: #63a35c; +} + +.idyll-root .pl-k { + color: #a71d5d; +} + +.idyll-root .pl-s, +.idyll-root .pl-pds, +.idyll-root .pl-s .pl-pse .pl-s1, +.idyll-root .pl-sr, +.idyll-root .pl-sr .pl-cce, +.idyll-root .pl-sr .pl-sre, +.idyll-root .pl-sr .pl-sra { + color: #183691; +} + +.idyll-root .pl-v, +.idyll-root .pl-smw { + color: #ed6a43; +} + +.idyll-root .pl-bu { + color: #b52a1d; +} + +.idyll-root .pl-ii { + color: #f8f8f8; + background-color: #b52a1d; +} + +.idyll-root .pl-c2 { + color: #f8f8f8; + background-color: #b52a1d; +} + +.idyll-root .pl-c2::before { + content: '^M'; +} + +.idyll-root .pl-sr .pl-cce { + font-weight: bold; + color: #63a35c; +} + +.idyll-root .pl-ml { + color: #693a17; +} + +.idyll-root .pl-mh, +.idyll-root .pl-mh .pl-en, +.idyll-root .pl-ms { + font-weight: bold; + color: #1d3e81; +} + +.idyll-root .pl-mq { + color: #008080; +} + +.idyll-root .pl-mi { + font-style: italic; + color: #333; +} + +.idyll-root .pl-mb { + font-weight: bold; + color: #333; +} + +.idyll-root .pl-md { + color: #bd2c00; + background-color: #ffecec; +} + +.idyll-root .pl-mi1 { + color: #55a532; + background-color: #eaffea; +} + +.idyll-root .pl-mc { + color: #ef9700; + background-color: #ffe3b4; +} + +.idyll-root .pl-mi2 { + color: #d8d8d8; + background-color: #808080; +} + +.idyll-root .pl-mdr { + font-weight: bold; + color: #795da3; +} + +.idyll-root .pl-mo { + color: #1d3e81; +} + +.idyll-root .pl-ba { + color: #595e62; +} + +.idyll-root .pl-sg { + color: #c0c0c0; +} + +.idyll-root .pl-corl { + text-decoration: underline; + color: #183691; +} + +.idyll-root .octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.idyll-root a { + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +.idyll-root a:active, +.idyll-root a:hover { + outline-width: 0; +} + +.idyll-root strong { + font-weight: inherit; +} + +.idyll-root strong { + font-weight: bolder; +} + +.idyll-root h1 { + font-size: 2em; + margin: 0.67em 0; +} + +.idyll-root img { + border-style: none; +} + +.idyll-root svg:not(:root) { + overflow: hidden; +} + +.idyll-root code, +.idyll-root kbd, +.idyll-root pre { + font-family: monospace, monospace; + font-size: 1em; +} + +.idyll-root hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +.idyll-root input { + font: inherit; + margin: 10px 10px 20px 0; +} + +.idyll-root input { + overflow: visible; +} + +.idyll-root [type='checkbox'] { + box-sizing: border-box; + padding: 0; +} + +.idyll-root * { + box-sizing: border-box; +} + +.idyll-root input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.idyll-root a { + color: #0366d6; + text-decoration: none; +} + +.idyll-root a:hover { + text-decoration: underline; +} + +.idyll-root strong { + font-weight: 600; +} + +.idyll-root hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; +} + +.idyll-root hr::before { + display: table; + content: ''; +} + +.idyll-root hr::after { + display: table; + clear: both; + content: ''; +} + +.idyll-root table { + border-spacing: 0; + border-collapse: collapse; +} + +.idyll-root td, +.idyll-root th { + padding: 0; +} + +.idyll-root h1, +.idyll-root h2, +.idyll-root h3, +.idyll-root h4, +.idyll-root h5, +.idyll-root h6 { + margin-top: 0; + margin-bottom: 0; +} + +.idyll-root h1 { + font-size: 32px; + font-weight: 600; +} + +.idyll-root h2 { + font-size: 24px; + font-weight: 600; +} + +.idyll-root h3 { + font-size: 20px; + font-weight: 600; +} + +.idyll-root h4 { + font-size: 16px; + font-weight: 600; +} + +.idyll-root h5 { + font-size: 14px; + font-weight: 600; +} + +.idyll-root h6 { + font-size: 12px; + font-weight: 600; +} + +.idyll-root p { + margin-top: 0; + margin-bottom: 10px; +} + +.idyll-root blockquote { + margin: 0; +} + +.idyll-root ul, +.idyll-root ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +.idyll-root ol ol, +.idyll-root ul ol { + list-style-type: lower-roman; +} + +.idyll-root ul ul ol, +.idyll-root ul ol ol, +.idyll-root ol ul ol, +.idyll-root ol ol ol { + list-style-type: lower-alpha; +} + +.idyll-root dd { + margin-left: 0; +} + +.idyll-root code { + font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, + monospace; + font-size: 12px; +} + +.idyll-root pre { + margin-top: 0; + margin-bottom: 0; + font: 12px 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, + monospace; +} + +.idyll-root .octicon { + vertical-align: text-bottom; +} + +.idyll-root .pl-0 { + padding-left: 0 !important; +} + +.idyll-root .pl-1 { + padding-left: 4px !important; +} + +.idyll-root .pl-2 { + padding-left: 8px !important; +} + +.idyll-root .pl-3 { + padding-left: 16px !important; +} + +.idyll-root .pl-4 { + padding-left: 24px !important; +} + +.idyll-root .pl-5 { + padding-left: 32px !important; +} + +.idyll-root .pl-6 { + padding-left: 40px !important; +} + +.idyll-root::before { + display: table; + content: ''; +} + +.idyll-root::after { + display: table; + clear: both; + content: ''; +} + +.idyll-root > *:first-child { + margin-top: 0 !important; +} + +.idyll-root > *:last-child { + margin-bottom: 0 !important; +} + +.idyll-root a:not([href]) { + color: inherit; + text-decoration: none; +} + +.idyll-root .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.idyll-root .anchor:focus { + outline: none; +} + +.idyll-root p, +.idyll-root blockquote, +.idyll-root ul, +.idyll-root ol, +.idyll-root dl, +.idyll-root table, +.idyll-root pre { + margin-top: 0; + margin-bottom: 16px; +} + +.idyll-root hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; +} + +.idyll-root blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; +} + +.idyll-root blockquote > :first-child { + margin-top: 0; +} + +.idyll-root blockquote > :last-child { + margin-bottom: 0; +} + +.idyll-root kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.idyll-root h1, +.idyll-root h2, +.idyll-root h3, +.idyll-root h4, +.idyll-root h5, +.idyll-root h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.idyll-root h1 .octicon-link, +.idyll-root h2 .octicon-link, +.idyll-root h3 .octicon-link, +.idyll-root h4 .octicon-link, +.idyll-root h5 .octicon-link, +.idyll-root h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.idyll-root h1:hover .anchor, +.idyll-root h2:hover .anchor, +.idyll-root h3:hover .anchor, +.idyll-root h4:hover .anchor, +.idyll-root h5:hover .anchor, +.idyll-root h6:hover .anchor { + text-decoration: none; +} + +.idyll-root h1:hover .anchor .octicon-link, +.idyll-root h2:hover .anchor .octicon-link, +.idyll-root h3:hover .anchor .octicon-link, +.idyll-root h4:hover .anchor .octicon-link, +.idyll-root h5:hover .anchor .octicon-link, +.idyll-root h6:hover .anchor .octicon-link { + visibility: visible; +} + +.idyll-root h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eaecef; +} + +.idyll-root h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eaecef; +} + +.idyll-root h3 { + font-size: 1.25em; +} + +.idyll-root h4 { + font-size: 1em; +} + +.idyll-root h5 { + font-size: 0.875em; +} + +.idyll-root h6 { + font-size: 0.85em; + color: #6a737d; +} + +.idyll-root h1.hed, +.idyll-root h2.dek { + border-bottom: none; + padding-bottom: 0; + margin-top: 12px; +} + +.idyll-root ul, +.idyll-root ol { + padding-left: 2em; +} + +.idyll-root ul ul, +.idyll-root ul ol, +.idyll-root ol ol, +.idyll-root ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.idyll-root li > p { + margin-top: 16px; +} + +.idyll-root li + li { + margin-top: 0.25em; +} + +.idyll-root dl { + padding: 0; +} + +.idyll-root dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.idyll-root dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.idyll-root table { + display: block; + width: 100%; + overflow: auto; +} + +.idyll-root table th { + font-weight: 600; +} + +.idyll-root table th, +.idyll-root table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.idyll-root table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.idyll-root table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.idyll-root img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +.idyll-root code { + padding: 0; + padding-top: 0.2em; + padding-bottom: 0.2em; + margin: 0; + font-size: 85%; + background-color: rgba(27, 31, 35, 0.05); + border-radius: 3px; +} + +.idyll-root code::before, +.idyll-root code::after { + letter-spacing: -0.2em; + content: '\00a0'; +} + +.idyll-root pre { + word-wrap: normal; +} + +.idyll-root pre > code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.idyll-root .highlight { + margin-bottom: 16px; +} + +.idyll-root .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.idyll-root .highlight pre, +.idyll-root pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; +} + +.idyll-root pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.idyll-root pre code::before, +.idyll-root pre code::after { + content: normal; +} + +.idyll-root .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; +} + +.idyll-root kbd { + display: inline-block; + padding: 3px 5px; + font: 11px 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, + monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fcfcfc; + border: solid 1px #c6cbd1; + border-bottom-color: #959da5; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #959da5; +} + +.idyll-root :checked + .radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; +} + +.idyll-root .task-list-item { + list-style-type: none; +} + +.idyll-root .task-list-item + .task-list-item { + margin-top: 3px; +} + +.idyll-root .task-list-item input { + margin: 0 0.2em 0.25em -1.6em; + vertical-align: middle; +} + +.idyll-root hr { + border-bottom-color: #eee; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/data/example-data.json b/packages/idyll-cli/test/env-options/outer-project/data/example-data.json new file mode 100644 index 000000000..070f8e68e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/data/example-data.json @@ -0,0 +1,10 @@ +[ + { + "x": 0, + "y": 0 + }, + { + "x": 1, + "y": 1 + } +] diff --git a/packages/idyll-cli/test/env-options/outer-project/data/example-file.csv b/packages/idyll-cli/test/env-options/outer-project/data/example-file.csv new file mode 100644 index 000000000..e5726765b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/data/example-file.csv @@ -0,0 +1,3 @@ +"x","y" +0,0 +1,1 \ No newline at end of file diff --git a/packages/idyll-cli/test/env-options/outer-project/index.idl b/packages/idyll-cli/test/env-options/outer-project/index.idl new file mode 100644 index 000000000..b0992ba94 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/index.idl @@ -0,0 +1,58 @@ +[meta title:"Page Title" description:"Short description of your project" /] + +[Header + title:"Welcome to Idyll" + subtitle:"Open index.idl to start writing" + author:"Your Name Here" + authorLink:"https://idyll-lang.github.io" /] + + +This is an Idyll file. Write text +as you please in here. To add interactivity, +you can add different components to the text. + +[data name:"myData" source:"example-data.json" /] +[data name:"myCSVData" source:"example-file.csv" /] + +[Table data:myData /] + +[Table data:myCSVData /] + +Here is how you can use a variable: + +[var name:"exampleVar" value:5 /] + +[Range min:0 max:10 value:exampleVar /] +[Display value:exampleVar /] + +```js +var code = true; +``` + +And here is a custom component: + +[CustomComponent /] + +You can use standard html tags if a +component with the same name +doesn't exist. + +[ReactSimplePieChart + slices:`[{ + color: '#7b3af5', + value: 0.1, + }, { + color: '#EAE7D6', + value: 0.9, }, + ]` /] + +[PackageJsonComponentTest /] + +This adds support for indexed components: [CustomComponent.IndexedComponent /] + +[FunctionalComponent /] + +[FunctionalDefaultComponent /] + + +[CapitalPascal /] diff --git a/packages/idyll-cli/test/env-options/outer-project/inner-project/package.json b/packages/idyll-cli/test/env-options/outer-project/inner-project/package.json new file mode 100644 index 000000000..ebc6062fd --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/inner-project/package.json @@ -0,0 +1,38 @@ +{ + "name": "test-project-inner", + "version": "1.0.0", + "scripts": { + "start": "idyll index.idl --watch --css styles.css --layout centered --theme github --spellcheck" + }, + "idyll": [ + [ + "default-env", + { + "layout": "none" + } + ], + [ + "my-env", + { + "alias": { + "PackageJsonComponentTest": "CustomComponent" + }, + "layout": "none" + } + ], + [ + "inner-env", + { + "alias": { + "PackageJsonComponentTest": "CustomComponent" + }, + "layout": "blog" + } + ] + ], + "dependencies": { + "idyll-component": "^1.1.0", + "react-simple-pie-chart": "^0.4.1" + }, + "devDependencies": {} +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.gitattributes b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.gitattributes new file mode 100644 index 000000000..f19c7a9e9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.gitattributes @@ -0,0 +1,2 @@ +d3.js -diff merge=ours +d3.min.js -diff merge=ours diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.npmignore b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.npmignore new file mode 100644 index 000000000..23b0df14b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.npmignore @@ -0,0 +1,6 @@ +examples/ +test/ +lib/ +.DS_Store +_site +d3.zip diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.spmignore b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.spmignore new file mode 100644 index 000000000..0a6730419 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/.spmignore @@ -0,0 +1,4 @@ +bin +lib +src +test diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/CONTRIBUTING.md b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/CONTRIBUTING.md new file mode 100644 index 000000000..f2ed9201d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/CONTRIBUTING.md @@ -0,0 +1,27 @@ +# Contributing + +**Important:** these GitHub issues are for _bug reports and feature requests only_. Please use [StackOverflow](http://stackoverflow.com/questions/tagged/d3.js) or the [d3-js Google group](https://groups.google.com/d/forum/d3-js) for general help. + +If you’re looking for ways to contribute, please [peruse open issues](https://github.com/mbostock/d3/issues?milestone=&page=1&state=open). The icebox is a good place to find ideas that are not currently in development. If you already have an idea, please check past issues to see whether your idea or a similar one was previously discussed. + +Before submitting a pull request, consider implementing a live example first, say using [bl.ocks.org](http://bl.ocks.org). Real-world use cases go a long way to demonstrating the usefulness of a proposed feature. The more complex a feature’s implementation, the more usefulness it should provide. Share your demo using the #d3js tag on Twitter or by sending it to the [d3-js Google group](https://groups.google.com/d/forum/d3-js). + +If your proposed feature does not involve changing core functionality, consider submitting it instead as a [D3 plugin](https://github.com/d3/d3-plugins). New core features should be for general use, whereas plugins are suitable for more specialized use cases. When in doubt, it’s easier to start with a plugin before “graduating” to core. + +To contribute new documentation or add examples to the gallery, just [edit the Wiki](https://github.com/mbostock/d3/wiki)! + +## How to Submit a Pull Request + +1. Click the “Fork” button to create your personal fork of the D3 repository. + +2. After cloning your fork of the D3 repository in the terminal, run `npm install` to install D3’s dependencies. + +3. Create a new branch for your new feature. For example: `git checkout -b my-awesome-feature`. A dedicated branch for your pull request means you can develop multiple features at the same time, and ensures that your pull request is stable even if you later decide to develop an unrelated feature. + +4. The `d3.js` and `d3.min.js` files are built from source files in the `src` directory. _Do not edit `d3.js` directly._ Instead, edit the source files, and then run `make` to build the generated files. + +5. Use `make test` to run tests and verify your changes. If you are adding a new feature, you should add new tests! If you are changing existing functionality, make sure the existing tests run, or update them as appropriate. + +6. Sign D3’s [Individual Contributor License Agreement](https://docs.google.com/forms/d/1CzjdBKtDuA8WeuFJinadx956xLQ4Xriv7-oDvXnZMaI/viewform). Unless you are submitting a trivial patch (such as fixing a typo), this form is needed to verify that you are able to contribute. + +7. Submit your pull request, and good luck! diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/LICENSE b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/LICENSE new file mode 100644 index 000000000..ff3f2e541 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/LICENSE @@ -0,0 +1,26 @@ +Copyright (c) 2010-2016, Michael Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* 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. + +* The name Michael Bostock may not 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 MICHAEL BOSTOCK 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/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/README.md b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/README.md new file mode 100644 index 000000000..33e97bf18 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/README.md @@ -0,0 +1,13 @@ +# Data-Driven Documents + + + +**D3.js** is a JavaScript library for manipulating documents based on data. **D3** helps you bring data to life using HTML, SVG, and CSS. **D3** emphasizes web standards and combines powerful visualization components with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers without tying yourself to a proprietary framework. + +Want to learn more? [See the wiki.](https://github.com/mbostock/d3/wiki) + +For examples, [see the gallery](https://github.com/mbostock/d3/wiki/Gallery) and [mbostock’s bl.ocks](http://bl.ocks.org/mbostock). + +## Good News, Everyone! + +The next major release of D3, 4.0, is coming! See the [4.0 development branch](https://github.com/mbostock/d3/tree/4) and read the [new API reference](https://github.com/mbostock/d3/blob/4/README.md) to get ready. diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/meteor b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/meteor new file mode 100755 index 000000000..478705160 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/meteor @@ -0,0 +1,20 @@ +#!/usr/bin/env node + +var fs = require("fs"), + package = require("../package.json"); + +console.log( + "// Package metadata for Meteor.js.\n" + + "\n" + + "Package.describe({\n" + + " name: \"d3js:d3\", // http://atmospherejs.com/d3js/d3\n" + + " summary: \"D3 (official): " + package.description + "\",\n" + + " version: \"" + package.version + "\",\n" + + " git: \"https://github.com/mbostock/d3.git\"\n" + + "});\n" + + "\n" + + "Package.onUse(function(api) {\n" + + " api.versionsFrom([\"METEOR@1.0\"]);\n" + + " api.addFiles(\"d3.js\", \"client\");\n" + + "});" +); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/start b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/start new file mode 100755 index 000000000..9b046fc93 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/start @@ -0,0 +1,3 @@ +#!/usr/bin/env node + +console.log("!function(){\n var d3 = {version: " + JSON.stringify(require("../package.json").version) + "}; // semver"); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/uglify b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/uglify new file mode 100755 index 000000000..6defe2f5b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/bin/uglify @@ -0,0 +1,34 @@ +#!/usr/bin/env node + +var fs = require("fs"), + uglify = require("uglify-js"); + +var filename = process.argv[2], + toplevel = uglify.parse(fs.readFileSync(filename, "utf8"), {filename: filename}), + output = uglify.OutputStream({ascii_only: true}), + compressor = uglify.Compressor(true), + warn = uglify.AST_Node.warn; + +uglify.AST_Node.warn = function(s, o) { + if (o.msg === "Accidental global?" && o.name === "d3" && o.line === 1 && !o.col) return; + warn.apply(this, arguments); +}; + +toplevel.figure_out_scope(); +toplevel.scope_warnings({ + undeclared: false, + unreferenced: false, + assign_to_global: true, + func_arguments: false, + nested_defuns: false, + eval: false +}); + +toplevel = toplevel.transform(compressor); + +toplevel.figure_out_scope(); +toplevel.compute_char_frequency(true); +toplevel.mangle_names(true); +toplevel.print(output); + +process.stdout.write(output.get()); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/composer.json b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/composer.json new file mode 100644 index 000000000..c5a50f219 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/composer.json @@ -0,0 +1,26 @@ +{ + "name": "mbostock/d3", + "description": "A JavaScript visualization library for HTML and SVG.", + "keywords": [ + "dom", + "w3c", + "visualization", + "svg", + "animation", + "canvas" + ], + "homepage": "http://d3js.org/", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Mike Bostock", + "homepage": "http://bost.ocks.org/mike" + } + ], + "support": { + "issues": "https://github.com/mbostock/d3/issues", + "wiki": "https://github.com/mbostock/d3/wiki", + "API": "https://github.com/mbostock/d3/wiki/API-Reference", + "source": "https://github.com/mbostock/d3" + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/d3.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/d3.js new file mode 100644 index 000000000..f0f61b216 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/d3.js @@ -0,0 +1,13237 @@ +!(function() { + var d3 = { + version: '3.5.17' + }; + var d3_arraySlice = [].slice, + d3_array = function(list) { + return d3_arraySlice.call(list); + }; + var d3_document = this.document; + function d3_documentElement(node) { + return ( + node && (node.ownerDocument || node.document || node).documentElement + ); + } + function d3_window(node) { + return ( + node && + ((node.ownerDocument && node.ownerDocument.defaultView) || + (node.document && node) || + node.defaultView) + ); + } + if (d3_document) { + try { + d3_array(d3_document.documentElement.childNodes)[0].nodeType; + } catch (e) { + d3_array = function(list) { + var i = list.length, + array = new Array(i); + while (i--) array[i] = list[i]; + return array; + }; + } + } + if (!Date.now) + Date.now = function() { + return +new Date(); + }; + if (d3_document) { + try { + d3_document.createElement('DIV').style.setProperty('opacity', 0, ''); + } catch (error) { + var d3_element_prototype = this.Element.prototype, + d3_element_setAttribute = d3_element_prototype.setAttribute, + d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, + d3_style_prototype = this.CSSStyleDeclaration.prototype, + d3_style_setProperty = d3_style_prototype.setProperty; + d3_element_prototype.setAttribute = function(name, value) { + d3_element_setAttribute.call(this, name, value + ''); + }; + d3_element_prototype.setAttributeNS = function(space, local, value) { + d3_element_setAttributeNS.call(this, space, local, value + ''); + }; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + '', priority); + }; + } + } + d3.ascending = d3_ascending; + function d3_ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; + } + d3.descending = function(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; + }; + d3.min = function(array, f) { + var i = -1, + n = array.length, + a, + b; + if (arguments.length === 1) { + while (++i < n) + if ((b = array[i]) != null && b >= b) { + a = b; + break; + } + while (++i < n) if ((b = array[i]) != null && a > b) a = b; + } else { + while (++i < n) + if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = b; + break; + } + while (++i < n) + if ((b = f.call(array, array[i], i)) != null && a > b) a = b; + } + return a; + }; + d3.max = function(array, f) { + var i = -1, + n = array.length, + a, + b; + if (arguments.length === 1) { + while (++i < n) + if ((b = array[i]) != null && b >= b) { + a = b; + break; + } + while (++i < n) if ((b = array[i]) != null && b > a) a = b; + } else { + while (++i < n) + if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = b; + break; + } + while (++i < n) + if ((b = f.call(array, array[i], i)) != null && b > a) a = b; + } + return a; + }; + d3.extent = function(array, f) { + var i = -1, + n = array.length, + a, + b, + c; + if (arguments.length === 1) { + while (++i < n) + if ((b = array[i]) != null && b >= b) { + a = c = b; + break; + } + while (++i < n) + if ((b = array[i]) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } else { + while (++i < n) + if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = c = b; + break; + } + while (++i < n) + if ((b = f.call(array, array[i], i)) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } + return [a, c]; + }; + function d3_number(x) { + return x === null ? NaN : +x; + } + function d3_numeric(x) { + return !isNaN(x); + } + d3.sum = function(array, f) { + var s = 0, + n = array.length, + a, + i = -1; + if (arguments.length === 1) { + while (++i < n) if (d3_numeric((a = +array[i]))) s += a; + } else { + while (++i < n) if (d3_numeric((a = +f.call(array, array[i], i)))) s += a; + } + return s; + }; + d3.mean = function(array, f) { + var s = 0, + n = array.length, + a, + i = -1, + j = n; + if (arguments.length === 1) { + while (++i < n) + if (d3_numeric((a = d3_number(array[i])))) s += a; + else --j; + } else { + while (++i < n) + if (d3_numeric((a = d3_number(f.call(array, array[i], i))))) s += a; + else --j; + } + if (j) return s / j; + }; + d3.quantile = function(values, p) { + var H = (values.length - 1) * p + 1, + h = Math.floor(H), + v = +values[h - 1], + e = H - h; + return e ? v + e * (values[h] - v) : v; + }; + d3.median = function(array, f) { + var numbers = [], + n = array.length, + a, + i = -1; + if (arguments.length === 1) { + while (++i < n) + if (d3_numeric((a = d3_number(array[i])))) numbers.push(a); + } else { + while (++i < n) + if (d3_numeric((a = d3_number(f.call(array, array[i], i))))) + numbers.push(a); + } + if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), 0.5); + }; + d3.variance = function(array, f) { + var n = array.length, + m = 0, + a, + d, + s = 0, + i = -1, + j = 0; + if (arguments.length === 1) { + while (++i < n) { + if (d3_numeric((a = d3_number(array[i])))) { + d = a - m; + m += d / ++j; + s += d * (a - m); + } + } + } else { + while (++i < n) { + if (d3_numeric((a = d3_number(f.call(array, array[i], i))))) { + d = a - m; + m += d / ++j; + s += d * (a - m); + } + } + } + if (j > 1) return s / (j - 1); + }; + d3.deviation = function() { + var v = d3.variance.apply(this, arguments); + return v ? Math.sqrt(v) : v; + }; + function d3_bisector(compare) { + return { + left: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = (lo + hi) >>> 1; + if (compare(a[mid], x) < 0) lo = mid + 1; + else hi = mid; + } + return lo; + }, + right: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = (lo + hi) >>> 1; + if (compare(a[mid], x) > 0) hi = mid; + else lo = mid + 1; + } + return lo; + } + }; + } + var d3_bisect = d3_bisector(d3_ascending); + d3.bisectLeft = d3_bisect.left; + d3.bisect = d3.bisectRight = d3_bisect.right; + d3.bisector = function(f) { + return d3_bisector( + f.length === 1 + ? function(d, x) { + return d3_ascending(f(d), x); + } + : f + ); + }; + d3.shuffle = function(array, i0, i1) { + if ((m = arguments.length) < 3) { + i1 = array.length; + if (m < 2) i0 = 0; + } + var m = i1 - i0, + t, + i; + while (m) { + i = (Math.random() * m--) | 0; + (t = array[m + i0]), (array[m + i0] = array[i + i0]), (array[i + i0] = t); + } + return array; + }; + d3.permute = function(array, indexes) { + var i = indexes.length, + permutes = new Array(i); + while (i--) permutes[i] = array[indexes[i]]; + return permutes; + }; + d3.pairs = function(array) { + var i = 0, + n = array.length - 1, + p0, + p1 = array[0], + pairs = new Array(n < 0 ? 0 : n); + while (i < n) pairs[i] = [(p0 = p1), (p1 = array[++i])]; + return pairs; + }; + d3.transpose = function(matrix) { + if (!(n = matrix.length)) return []; + for ( + var i = -1, + m = d3.min(matrix, d3_transposeLength), + transpose = new Array(m); + ++i < m; + + ) { + for (var j = -1, n, row = (transpose[i] = new Array(n)); ++j < n; ) { + row[j] = matrix[j][i]; + } + } + return transpose; + }; + function d3_transposeLength(d) { + return d.length; + } + d3.zip = function() { + return d3.transpose(arguments); + }; + d3.keys = function(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; + }; + d3.values = function(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; + }; + d3.entries = function(map) { + var entries = []; + for (var key in map) + entries.push({ + key: key, + value: map[key] + }); + return entries; + }; + d3.merge = function(arrays) { + var n = arrays.length, + m, + i = -1, + j = 0, + merged, + array; + while (++i < n) j += arrays[i].length; + merged = new Array(j); + while (--n >= 0) { + array = arrays[n]; + m = array.length; + while (--m >= 0) { + merged[--j] = array[m]; + } + } + return merged; + }; + var abs = Math.abs; + d3.range = function(start, stop, step) { + if (arguments.length < 3) { + step = 1; + if (arguments.length < 2) { + stop = start; + start = 0; + } + } + if ((stop - start) / step === Infinity) throw new Error('infinite range'); + var range = [], + k = d3_range_integerScale(abs(step)), + i = -1, + j; + (start *= k), (stop *= k), (step *= k); + if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); + else while ((j = start + step * ++i) < stop) range.push(j / k); + return range; + }; + function d3_range_integerScale(x) { + var k = 1; + while ((x * k) % 1) k *= 10; + return k; + } + function d3_class(ctor, properties) { + for (var key in properties) { + Object.defineProperty(ctor.prototype, key, { + value: properties[key], + enumerable: false + }); + } + } + d3.map = function(object, f) { + var map = new d3_Map(); + if (object instanceof d3_Map) { + object.forEach(function(key, value) { + map.set(key, value); + }); + } else if (Array.isArray(object)) { + var i = -1, + n = object.length, + o; + if (arguments.length === 1) while (++i < n) map.set(i, object[i]); + else while (++i < n) map.set(f.call(object, (o = object[i]), i), o); + } else { + for (var key in object) map.set(key, object[key]); + } + return map; + }; + function d3_Map() { + this._ = Object.create(null); + } + var d3_map_proto = '__proto__', + d3_map_zero = '\x00'; + d3_class(d3_Map, { + has: d3_map_has, + get: function(key) { + return this._[d3_map_escape(key)]; + }, + set: function(key, value) { + return (this._[d3_map_escape(key)] = value); + }, + remove: d3_map_remove, + keys: d3_map_keys, + values: function() { + var values = []; + for (var key in this._) values.push(this._[key]); + return values; + }, + entries: function() { + var entries = []; + for (var key in this._) + entries.push({ + key: d3_map_unescape(key), + value: this._[key] + }); + return entries; + }, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]); + } + }); + function d3_map_escape(key) { + return (key += '') === d3_map_proto || key[0] === d3_map_zero + ? d3_map_zero + key + : key; + } + function d3_map_unescape(key) { + return (key += '')[0] === d3_map_zero ? key.slice(1) : key; + } + function d3_map_has(key) { + return d3_map_escape(key) in this._; + } + function d3_map_remove(key) { + return (key = d3_map_escape(key)) in this._ && delete this._[key]; + } + function d3_map_keys() { + var keys = []; + for (var key in this._) keys.push(d3_map_unescape(key)); + return keys; + } + function d3_map_size() { + var size = 0; + for (var key in this._) ++size; + return size; + } + function d3_map_empty() { + for (var key in this._) return false; + return true; + } + d3.nest = function() { + var nest = {}, + keys = [], + sortKeys = [], + sortValues, + rollup; + function map(mapType, array, depth) { + if (depth >= keys.length) + return rollup + ? rollup.call(nest, array) + : sortValues + ? array.sort(sortValues) + : array; + var i = -1, + n = array.length, + key = keys[depth++], + keyValue, + object, + setter, + valuesByKey = new d3_Map(), + values; + while (++i < n) { + if ((values = valuesByKey.get((keyValue = key((object = array[i])))))) { + values.push(object); + } else { + valuesByKey.set(keyValue, [object]); + } + } + if (mapType) { + object = mapType(); + setter = function(keyValue, values) { + object.set(keyValue, map(mapType, values, depth)); + }; + } else { + object = {}; + setter = function(keyValue, values) { + object[keyValue] = map(mapType, values, depth); + }; + } + valuesByKey.forEach(setter); + return object; + } + function entries(map, depth) { + if (depth >= keys.length) return map; + var array = [], + sortKey = sortKeys[depth++]; + map.forEach(function(key, keyMap) { + array.push({ + key: key, + values: entries(keyMap, depth) + }); + }); + return sortKey + ? array.sort(function(a, b) { + return sortKey(a.key, b.key); + }) + : array; + } + nest.map = function(array, mapType) { + return map(mapType, array, 0); + }; + nest.entries = function(array) { + return entries(map(d3.map, array, 0), 0); + }; + nest.key = function(d) { + keys.push(d); + return nest; + }; + nest.sortKeys = function(order) { + sortKeys[keys.length - 1] = order; + return nest; + }; + nest.sortValues = function(order) { + sortValues = order; + return nest; + }; + nest.rollup = function(f) { + rollup = f; + return nest; + }; + return nest; + }; + d3.set = function(array) { + var set = new d3_Set(); + if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]); + return set; + }; + function d3_Set() { + this._ = Object.create(null); + } + d3_class(d3_Set, { + has: d3_map_has, + add: function(key) { + this._[d3_map_escape((key += ''))] = true; + return key; + }, + remove: d3_map_remove, + values: d3_map_keys, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var key in this._) f.call(this, d3_map_unescape(key)); + } + }); + d3.behavior = {}; + function d3_identity(d) { + return d; + } + d3.rebind = function(target, source) { + var i = 1, + n = arguments.length, + method; + while (++i < n) + target[(method = arguments[i])] = d3_rebind( + target, + source, + source[method] + ); + return target; + }; + function d3_rebind(target, source, method) { + return function() { + var value = method.apply(source, arguments); + return value === source ? target : value; + }; + } + function d3_vendorSymbol(object, name) { + if (name in object) return name; + name = name.charAt(0).toUpperCase() + name.slice(1); + for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) { + var prefixName = d3_vendorPrefixes[i] + name; + if (prefixName in object) return prefixName; + } + } + var d3_vendorPrefixes = ['webkit', 'ms', 'moz', 'Moz', 'o', 'O']; + function d3_noop() {} + d3.dispatch = function() { + var dispatch = new d3_dispatch(), + i = -1, + n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + return dispatch; + }; + function d3_dispatch() {} + d3_dispatch.prototype.on = function(type, listener) { + var i = type.indexOf('.'), + name = ''; + if (i >= 0) { + name = type.slice(i + 1); + type = type.slice(0, i); + } + if (type) + return arguments.length < 2 + ? this[type].on(name) + : this[type].on(name, listener); + if (arguments.length === 2) { + if (listener == null) + for (type in this) { + if (this.hasOwnProperty(type)) this[type].on(name, null); + } + return this; + } + }; + function d3_dispatch_event(dispatch) { + var listeners = [], + listenerByName = new d3_Map(); + function event() { + var z = listeners, + i = -1, + n = z.length, + l; + while (++i < n) if ((l = z[i].on)) l.apply(this, arguments); + return dispatch; + } + event.on = function(name, listener) { + var l = listenerByName.get(name), + i; + if (arguments.length < 2) return l && l.on; + if (l) { + l.on = null; + listeners = listeners + .slice(0, (i = listeners.indexOf(l))) + .concat(listeners.slice(i + 1)); + listenerByName.remove(name); + } + if (listener) + listeners.push( + listenerByName.set(name, { + on: listener + }) + ); + return dispatch; + }; + return event; + } + d3.event = null; + function d3_eventPreventDefault() { + d3.event.preventDefault(); + } + function d3_eventSource() { + var e = d3.event, + s; + while ((s = e.sourceEvent)) e = s; + return e; + } + function d3_eventDispatch(target) { + var dispatch = new d3_dispatch(), + i = 0, + n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + dispatch.of = function(thiz, argumentz) { + return function(e1) { + try { + var e0 = (e1.sourceEvent = d3.event); + e1.target = target; + d3.event = e1; + dispatch[e1.type].apply(thiz, argumentz); + } finally { + d3.event = e0; + } + }; + }; + return dispatch; + } + d3.requote = function(s) { + return s.replace(d3_requote_re, '\\$&'); + }; + var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; + var d3_subclass = {}.__proto__ + ? function(object, prototype) { + object.__proto__ = prototype; + } + : function(object, prototype) { + for (var property in prototype) object[property] = prototype[property]; + }; + function d3_selection(groups) { + d3_subclass(groups, d3_selectionPrototype); + return groups; + } + var d3_select = function(s, n) { + return n.querySelector(s); + }, + d3_selectAll = function(s, n) { + return n.querySelectorAll(s); + }, + d3_selectMatches = function(n, s) { + var d3_selectMatcher = + n.matches || n[d3_vendorSymbol(n, 'matchesSelector')]; + d3_selectMatches = function(n, s) { + return d3_selectMatcher.call(n, s); + }; + return d3_selectMatches(n, s); + }; + if (typeof Sizzle === 'function') { + d3_select = function(s, n) { + return Sizzle(s, n)[0] || null; + }; + d3_selectAll = Sizzle; + d3_selectMatches = Sizzle.matchesSelector; + } + d3.selection = function() { + return d3.select(d3_document.documentElement); + }; + var d3_selectionPrototype = (d3.selection.prototype = []); + d3_selectionPrototype.select = function(selector) { + var subgroups = [], + subgroup, + subnode, + group, + node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push((subgroup = [])); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if ((node = group[i])) { + subgroup.push((subnode = selector.call(node, node.__data__, i, j))); + if (subnode && '__data__' in node) subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selector(selector) { + return typeof selector === 'function' + ? selector + : function() { + return d3_select(selector, this); + }; + } + d3_selectionPrototype.selectAll = function(selector) { + var subgroups = [], + subgroup, + node; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if ((node = group[i])) { + subgroups.push( + (subgroup = d3_array(selector.call(node, node.__data__, i, j))) + ); + subgroup.parentNode = node; + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_selectorAll(selector) { + return typeof selector === 'function' + ? selector + : function() { + return d3_selectAll(selector, this); + }; + } + var d3_nsXhtml = 'http://www.w3.org/1999/xhtml'; + var d3_nsPrefix = { + svg: 'http://www.w3.org/2000/svg', + xhtml: d3_nsXhtml, + xlink: 'http://www.w3.org/1999/xlink', + xml: 'http://www.w3.org/XML/1998/namespace', + xmlns: 'http://www.w3.org/2000/xmlns/' + }; + d3.ns = { + prefix: d3_nsPrefix, + qualify: function(name) { + var i = name.indexOf(':'), + prefix = name; + if (i >= 0 && (prefix = name.slice(0, i)) !== 'xmlns') + name = name.slice(i + 1); + return d3_nsPrefix.hasOwnProperty(prefix) + ? { + space: d3_nsPrefix[prefix], + local: name + } + : name; + } + }; + d3_selectionPrototype.attr = function(name, value) { + if (arguments.length < 2) { + if (typeof name === 'string') { + var node = this.node(); + name = d3.ns.qualify(name); + return name.local + ? node.getAttributeNS(name.space, name.local) + : node.getAttribute(name); + } + for (value in name) this.each(d3_selection_attr(value, name[value])); + return this; + } + return this.each(d3_selection_attr(name, value)); + }; + function d3_selection_attr(name, value) { + name = d3.ns.qualify(name); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrConstant() { + this.setAttribute(name, value); + } + function attrConstantNS() { + this.setAttributeNS(name.space, name.local, value); + } + function attrFunction() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttribute(name); + else this.setAttribute(name, x); + } + function attrFunctionNS() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttributeNS(name.space, name.local); + else this.setAttributeNS(name.space, name.local, x); + } + return value == null + ? name.local + ? attrNullNS + : attrNull + : typeof value === 'function' + ? name.local + ? attrFunctionNS + : attrFunction + : name.local + ? attrConstantNS + : attrConstant; + } + function d3_collapse(s) { + return s.trim().replace(/\s+/g, ' '); + } + d3_selectionPrototype.classed = function(name, value) { + if (arguments.length < 2) { + if (typeof name === 'string') { + var node = this.node(), + n = (name = d3_selection_classes(name)).length, + i = -1; + if ((value = node.classList)) { + while (++i < n) if (!value.contains(name[i])) return false; + } else { + value = node.getAttribute('class'); + while (++i < n) + if (!d3_selection_classedRe(name[i]).test(value)) return false; + } + return true; + } + for (value in name) this.each(d3_selection_classed(value, name[value])); + return this; + } + return this.each(d3_selection_classed(name, value)); + }; + function d3_selection_classedRe(name) { + return new RegExp('(?:^|\\s+)' + d3.requote(name) + '(?:\\s+|$)', 'g'); + } + function d3_selection_classes(name) { + return (name + '').trim().split(/^|\s+/); + } + function d3_selection_classed(name, value) { + name = d3_selection_classes(name).map(d3_selection_classedName); + var n = name.length; + function classedConstant() { + var i = -1; + while (++i < n) name[i](this, value); + } + function classedFunction() { + var i = -1, + x = value.apply(this, arguments); + while (++i < n) name[i](this, x); + } + return typeof value === 'function' ? classedFunction : classedConstant; + } + function d3_selection_classedName(name) { + var re = d3_selection_classedRe(name); + return function(node, value) { + if ((c = node.classList)) return value ? c.add(name) : c.remove(name); + var c = node.getAttribute('class') || ''; + if (value) { + re.lastIndex = 0; + if (!re.test(c)) + node.setAttribute('class', d3_collapse(c + ' ' + name)); + } else { + node.setAttribute('class', d3_collapse(c.replace(re, ' '))); + } + }; + } + d3_selectionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== 'string') { + if (n < 2) value = ''; + for (priority in name) + this.each(d3_selection_style(priority, name[priority], value)); + return this; + } + if (n < 2) { + var node = this.node(); + return d3_window(node) + .getComputedStyle(node, null) + .getPropertyValue(name); + } + priority = ''; + } + return this.each(d3_selection_style(name, value, priority)); + }; + function d3_selection_style(name, value, priority) { + function styleNull() { + this.style.removeProperty(name); + } + function styleConstant() { + this.style.setProperty(name, value, priority); + } + function styleFunction() { + var x = value.apply(this, arguments); + if (x == null) this.style.removeProperty(name); + else this.style.setProperty(name, x, priority); + } + return value == null + ? styleNull + : typeof value === 'function' + ? styleFunction + : styleConstant; + } + d3_selectionPrototype.property = function(name, value) { + if (arguments.length < 2) { + if (typeof name === 'string') return this.node()[name]; + for (value in name) this.each(d3_selection_property(value, name[value])); + return this; + } + return this.each(d3_selection_property(name, value)); + }; + function d3_selection_property(name, value) { + function propertyNull() { + delete this[name]; + } + function propertyConstant() { + this[name] = value; + } + function propertyFunction() { + var x = value.apply(this, arguments); + if (x == null) delete this[name]; + else this[name] = x; + } + return value == null + ? propertyNull + : typeof value === 'function' + ? propertyFunction + : propertyConstant; + } + d3_selectionPrototype.text = function(value) { + return arguments.length + ? this.each( + typeof value === 'function' + ? function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? '' : v; + } + : value == null + ? function() { + this.textContent = ''; + } + : function() { + this.textContent = value; + } + ) + : this.node().textContent; + }; + d3_selectionPrototype.html = function(value) { + return arguments.length + ? this.each( + typeof value === 'function' + ? function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? '' : v; + } + : value == null + ? function() { + this.innerHTML = ''; + } + : function() { + this.innerHTML = value; + } + ) + : this.node().innerHTML; + }; + d3_selectionPrototype.append = function(name) { + name = d3_selection_creator(name); + return this.select(function() { + return this.appendChild(name.apply(this, arguments)); + }); + }; + function d3_selection_creator(name) { + function create() { + var document = this.ownerDocument, + namespace = this.namespaceURI; + return namespace === d3_nsXhtml && + document.documentElement.namespaceURI === d3_nsXhtml + ? document.createElement(name) + : document.createElementNS(namespace, name); + } + function createNS() { + return this.ownerDocument.createElementNS(name.space, name.local); + } + return typeof name === 'function' + ? name + : (name = d3.ns.qualify(name)).local + ? createNS + : create; + } + d3_selectionPrototype.insert = function(name, before) { + name = d3_selection_creator(name); + before = d3_selection_selector(before); + return this.select(function() { + return this.insertBefore( + name.apply(this, arguments), + before.apply(this, arguments) || null + ); + }); + }; + d3_selectionPrototype.remove = function() { + return this.each(d3_selectionRemove); + }; + function d3_selectionRemove() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + } + d3_selectionPrototype.data = function(value, key) { + var i = -1, + n = this.length, + group, + node; + if (!arguments.length) { + value = new Array((n = (group = this[0]).length)); + while (++i < n) { + if ((node = group[i])) { + value[i] = node.__data__; + } + } + return value; + } + function bind(group, groupData) { + var i, + n = group.length, + m = groupData.length, + n0 = Math.min(n, m), + updateNodes = new Array(m), + enterNodes = new Array(m), + exitNodes = new Array(n), + node, + nodeData; + if (key) { + var nodeByKeyValue = new d3_Map(), + keyValues = new Array(n), + keyValue; + for (i = -1; ++i < n; ) { + if ((node = group[i])) { + if ( + nodeByKeyValue.has((keyValue = key.call(node, node.__data__, i))) + ) { + exitNodes[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + keyValues[i] = keyValue; + } + } + for (i = -1; ++i < m; ) { + if ( + !(node = nodeByKeyValue.get( + (keyValue = key.call(groupData, (nodeData = groupData[i]), i)) + )) + ) { + enterNodes[i] = d3_selection_dataNode(nodeData); + } else if (node !== true) { + updateNodes[i] = node; + node.__data__ = nodeData; + } + nodeByKeyValue.set(keyValue, true); + } + for (i = -1; ++i < n; ) { + if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) { + exitNodes[i] = group[i]; + } + } + } else { + for (i = -1; ++i < n0; ) { + node = group[i]; + nodeData = groupData[i]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + } + for (; i < m; ++i) { + enterNodes[i] = d3_selection_dataNode(groupData[i]); + } + for (; i < n; ++i) { + exitNodes[i] = group[i]; + } + } + enterNodes.update = updateNodes; + enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = + group.parentNode; + enter.push(enterNodes); + update.push(updateNodes); + exit.push(exitNodes); + } + var enter = d3_selection_enter([]), + update = d3_selection([]), + exit = d3_selection([]); + if (typeof value === 'function') { + while (++i < n) { + bind( + (group = this[i]), + value.call(group, group.parentNode.__data__, i) + ); + } + } else { + while (++i < n) { + bind((group = this[i]), value); + } + } + update.enter = function() { + return enter; + }; + update.exit = function() { + return exit; + }; + return update; + }; + function d3_selection_dataNode(data) { + return { + __data__: data + }; + } + d3_selectionPrototype.datum = function(value) { + return arguments.length + ? this.property('__data__', value) + : this.property('__data__'); + }; + d3_selectionPrototype.filter = function(filter) { + var subgroups = [], + subgroup, + group, + node; + if (typeof filter !== 'function') filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push((subgroup = [])); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_selection(subgroups); + }; + function d3_selection_filter(selector) { + return function() { + return d3_selectMatches(this, selector); + }; + } + d3_selectionPrototype.order = function() { + for (var j = -1, m = this.length; ++j < m; ) { + for ( + var group = this[j], i = group.length - 1, next = group[i], node; + --i >= 0; + + ) { + if ((node = group[i])) { + if (next && next !== node.nextSibling) + next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; + }; + d3_selectionPrototype.sort = function(comparator) { + comparator = d3_selection_sortComparator.apply(this, arguments); + for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator); + return this.order(); + }; + function d3_selection_sortComparator(comparator) { + if (!arguments.length) comparator = d3_ascending; + return function(a, b) { + return a && b ? comparator(a.__data__, b.__data__) : !a - !b; + }; + } + d3_selectionPrototype.each = function(callback) { + return d3_selection_each(this, function(node, i, j) { + callback.call(node, node.__data__, i, j); + }); + }; + function d3_selection_each(groups, callback) { + for (var j = 0, m = groups.length; j < m; j++) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) { + if ((node = group[i])) callback(node, i, j); + } + } + return groups; + } + d3_selectionPrototype.call = function(callback) { + var args = d3_array(arguments); + callback.apply((args[0] = this), args); + return this; + }; + d3_selectionPrototype.empty = function() { + return !this.node(); + }; + d3_selectionPrototype.node = function() { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) return node; + } + } + return null; + }; + d3_selectionPrototype.size = function() { + var n = 0; + d3_selection_each(this, function() { + ++n; + }); + return n; + }; + function d3_selection_enter(selection) { + d3_subclass(selection, d3_selection_enterPrototype); + return selection; + } + var d3_selection_enterPrototype = []; + d3.selection.enter = d3_selection_enter; + d3.selection.enter.prototype = d3_selection_enterPrototype; + d3_selection_enterPrototype.append = d3_selectionPrototype.append; + d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; + d3_selection_enterPrototype.node = d3_selectionPrototype.node; + d3_selection_enterPrototype.call = d3_selectionPrototype.call; + d3_selection_enterPrototype.size = d3_selectionPrototype.size; + d3_selection_enterPrototype.select = function(selector) { + var subgroups = [], + subgroup, + subnode, + upgroup, + group, + node; + for (var j = -1, m = this.length; ++j < m; ) { + upgroup = (group = this[j]).update; + subgroups.push((subgroup = [])); + subgroup.parentNode = group.parentNode; + for (var i = -1, n = group.length; ++i < n; ) { + if ((node = group[i])) { + subgroup.push( + (upgroup[i] = subnode = selector.call( + group.parentNode, + node.__data__, + i, + j + )) + ); + subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + return d3_selection(subgroups); + }; + d3_selection_enterPrototype.insert = function(name, before) { + if (arguments.length < 2) before = d3_selection_enterInsertBefore(this); + return d3_selectionPrototype.insert.call(this, name, before); + }; + function d3_selection_enterInsertBefore(enter) { + var i0, j0; + return function(d, i, j) { + var group = enter[j].update, + n = group.length, + node; + if (j != j0) (j0 = j), (i0 = 0); + if (i >= i0) i0 = i + 1; + while (!(node = group[i0]) && ++i0 < n); + return node; + }; + } + d3.select = function(node) { + var group; + if (typeof node === 'string') { + group = [d3_select(node, d3_document)]; + group.parentNode = d3_document.documentElement; + } else { + group = [node]; + group.parentNode = d3_documentElement(node); + } + return d3_selection([group]); + }; + d3.selectAll = function(nodes) { + var group; + if (typeof nodes === 'string') { + group = d3_array(d3_selectAll(nodes, d3_document)); + group.parentNode = d3_document.documentElement; + } else { + group = d3_array(nodes); + group.parentNode = null; + } + return d3_selection([group]); + }; + d3_selectionPrototype.on = function(type, listener, capture) { + var n = arguments.length; + if (n < 3) { + if (typeof type !== 'string') { + if (n < 2) listener = false; + for (capture in type) + this.each(d3_selection_on(capture, type[capture], listener)); + return this; + } + if (n < 2) return (n = this.node()['__on' + type]) && n._; + capture = false; + } + return this.each(d3_selection_on(type, listener, capture)); + }; + function d3_selection_on(type, listener, capture) { + var name = '__on' + type, + i = type.indexOf('.'), + wrap = d3_selection_onListener; + if (i > 0) type = type.slice(0, i); + var filter = d3_selection_onFilters.get(type); + if (filter) (type = filter), (wrap = d3_selection_onFilter); + function onRemove() { + var l = this[name]; + if (l) { + this.removeEventListener(type, l, l.$); + delete this[name]; + } + } + function onAdd() { + var l = wrap(listener, d3_array(arguments)); + onRemove.call(this); + this.addEventListener(type, (this[name] = l), (l.$ = capture)); + l._ = listener; + } + function removeAll() { + var re = new RegExp('^__on([^.]+)' + d3.requote(type) + '$'), + match; + for (var name in this) { + if ((match = name.match(re))) { + var l = this[name]; + this.removeEventListener(match[1], l, l.$); + delete this[name]; + } + } + } + return i ? (listener ? onAdd : onRemove) : listener ? d3_noop : removeAll; + } + var d3_selection_onFilters = d3.map({ + mouseenter: 'mouseover', + mouseleave: 'mouseout' + }); + if (d3_document) { + d3_selection_onFilters.forEach(function(k) { + if ('on' + k in d3_document) d3_selection_onFilters.remove(k); + }); + } + function d3_selection_onListener(listener, argumentz) { + return function(e) { + var o = d3.event; + d3.event = e; + argumentz[0] = this.__data__; + try { + listener.apply(this, argumentz); + } finally { + d3.event = o; + } + }; + } + function d3_selection_onFilter(listener, argumentz) { + var l = d3_selection_onListener(listener, argumentz); + return function(e) { + var target = this, + related = e.relatedTarget; + if ( + !related || + (related !== target && !(related.compareDocumentPosition(target) & 8)) + ) { + l.call(target, e); + } + }; + } + var d3_event_dragSelect, + d3_event_dragId = 0; + function d3_event_dragSuppress(node) { + var name = '.dragsuppress-' + ++d3_event_dragId, + click = 'click' + name, + w = d3 + .select(d3_window(node)) + .on('touchmove' + name, d3_eventPreventDefault) + .on('dragstart' + name, d3_eventPreventDefault) + .on('selectstart' + name, d3_eventPreventDefault); + if (d3_event_dragSelect == null) { + d3_event_dragSelect = + 'onselectstart' in node + ? false + : d3_vendorSymbol(node.style, 'userSelect'); + } + if (d3_event_dragSelect) { + var style = d3_documentElement(node).style, + select = style[d3_event_dragSelect]; + style[d3_event_dragSelect] = 'none'; + } + return function(suppressClick) { + w.on(name, null); + if (d3_event_dragSelect) style[d3_event_dragSelect] = select; + if (suppressClick) { + var off = function() { + w.on(click, null); + }; + w.on( + click, + function() { + d3_eventPreventDefault(); + off(); + }, + true + ); + setTimeout(off, 0); + } + }; + } + d3.mouse = function(container) { + return d3_mousePoint(container, d3_eventSource()); + }; + var d3_mouse_bug44083 = + this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0; + function d3_mousePoint(container, e) { + if (e.changedTouches) e = e.changedTouches[0]; + var svg = container.ownerSVGElement || container; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + if (d3_mouse_bug44083 < 0) { + var window = d3_window(container); + if (window.scrollX || window.scrollY) { + svg = d3 + .select('body') + .append('svg') + .style( + { + position: 'absolute', + top: 0, + left: 0, + margin: 0, + padding: 0, + border: 'none' + }, + 'important' + ); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + } + if (d3_mouse_bug44083) (point.x = e.pageX), (point.y = e.pageY); + else (point.x = e.clientX), (point.y = e.clientY); + point = point.matrixTransform(container.getScreenCTM().inverse()); + return [point.x, point.y]; + } + var rect = container.getBoundingClientRect(); + return [ + e.clientX - rect.left - container.clientLeft, + e.clientY - rect.top - container.clientTop + ]; + } + d3.touch = function(container, touches, identifier) { + if (arguments.length < 3) + (identifier = touches), (touches = d3_eventSource().changedTouches); + if (touches) + for (var i = 0, n = touches.length, touch; i < n; ++i) { + if ((touch = touches[i]).identifier === identifier) { + return d3_mousePoint(container, touch); + } + } + }; + d3.behavior.drag = function() { + var event = d3_eventDispatch(drag, 'drag', 'dragstart', 'dragend'), + origin = null, + mousedown = dragstart( + d3_noop, + d3.mouse, + d3_window, + 'mousemove', + 'mouseup' + ), + touchstart = dragstart( + d3_behavior_dragTouchId, + d3.touch, + d3_identity, + 'touchmove', + 'touchend' + ); + function drag() { + this.on('mousedown.drag', mousedown).on('touchstart.drag', touchstart); + } + function dragstart(id, position, subject, move, end) { + return function() { + var that = this, + target = d3.event.target.correspondingElement || d3.event.target, + parent = that.parentNode, + dispatch = event.of(that, arguments), + dragged = 0, + dragId = id(), + dragName = '.drag' + (dragId == null ? '' : '-' + dragId), + dragOffset, + dragSubject = d3 + .select(subject(target)) + .on(move + dragName, moved) + .on(end + dragName, ended), + dragRestore = d3_event_dragSuppress(target), + position0 = position(parent, dragId); + if (origin) { + dragOffset = origin.apply(that, arguments); + dragOffset = [ + dragOffset.x - position0[0], + dragOffset.y - position0[1] + ]; + } else { + dragOffset = [0, 0]; + } + dispatch({ + type: 'dragstart' + }); + function moved() { + var position1 = position(parent, dragId), + dx, + dy; + if (!position1) return; + dx = position1[0] - position0[0]; + dy = position1[1] - position0[1]; + dragged |= dx | dy; + position0 = position1; + dispatch({ + type: 'drag', + x: position1[0] + dragOffset[0], + y: position1[1] + dragOffset[1], + dx: dx, + dy: dy + }); + } + function ended() { + if (!position(parent, dragId)) return; + dragSubject.on(move + dragName, null).on(end + dragName, null); + dragRestore(dragged); + dispatch({ + type: 'dragend' + }); + } + }; + } + drag.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return drag; + }; + return d3.rebind(drag, event, 'on'); + }; + function d3_behavior_dragTouchId() { + return d3.event.changedTouches[0].identifier; + } + d3.touches = function(container, touches) { + if (arguments.length < 2) touches = d3_eventSource().touches; + return touches + ? d3_array(touches).map(function(touch) { + var point = d3_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) + : []; + }; + var ε = 1e-6, + ε2 = ε * ε, + π = Math.PI, + τ = 2 * π, + τε = τ - ε, + halfπ = π / 2, + d3_radians = π / 180, + d3_degrees = 180 / π; + function d3_sgn(x) { + return x > 0 ? 1 : x < 0 ? -1 : 0; + } + function d3_cross2d(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); + } + function d3_acos(x) { + return x > 1 ? 0 : x < -1 ? π : Math.acos(x); + } + function d3_asin(x) { + return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x); + } + function d3_sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; + } + function d3_cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; + } + function d3_tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); + } + function d3_haversin(x) { + return (x = Math.sin(x / 2)) * x; + } + var ρ = Math.SQRT2, + ρ2 = 2, + ρ4 = 4; + d3.interpolateZoom = function(p0, p1) { + var ux0 = p0[0], + uy0 = p0[1], + w0 = p0[2], + ux1 = p1[0], + uy1 = p1[1], + w1 = p1[2], + dx = ux1 - ux0, + dy = uy1 - uy0, + d2 = dx * dx + dy * dy, + i, + S; + if (d2 < ε2) { + S = Math.log(w1 / w0) / ρ; + i = function(t) { + return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S)]; + }; + } else { + var d1 = Math.sqrt(d2), + b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), + b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), + r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), + r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / ρ; + i = function(t) { + var s = t * S, + coshr0 = d3_cosh(r0), + u = (w0 / (ρ2 * d1)) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); + return [ + ux0 + u * dx, + uy0 + u * dy, + (w0 * coshr0) / d3_cosh(ρ * s + r0) + ]; + }; + } + i.duration = S * 1e3; + return i; + }; + d3.behavior.zoom = function() { + var view = { + x: 0, + y: 0, + k: 1 + }, + translate0, + center0, + center, + size = [960, 500], + scaleExtent = d3_behavior_zoomInfinity, + duration = 250, + zooming = 0, + mousedown = 'mousedown.zoom', + mousemove = 'mousemove.zoom', + mouseup = 'mouseup.zoom', + mousewheelTimer, + touchstart = 'touchstart.zoom', + touchtime, + event = d3_eventDispatch(zoom, 'zoomstart', 'zoom', 'zoomend'), + x0, + x1, + y0, + y1; + if (!d3_behavior_zoomWheel) { + d3_behavior_zoomWheel = + 'onwheel' in d3_document + ? ((d3_behavior_zoomDelta = function() { + return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); + }), + 'wheel') + : 'onmousewheel' in d3_document + ? ((d3_behavior_zoomDelta = function() { + return d3.event.wheelDelta; + }), + 'mousewheel') + : ((d3_behavior_zoomDelta = function() { + return -d3.event.detail; + }), + 'MozMousePixelScroll'); + } + function zoom(g) { + g.on(mousedown, mousedowned) + .on(d3_behavior_zoomWheel + '.zoom', mousewheeled) + .on('dblclick.zoom', dblclicked) + .on(touchstart, touchstarted); + } + zoom.event = function(g) { + g.each(function() { + var dispatch = event.of(this, arguments), + view1 = view; + if (d3_transitionInheritId) { + d3.select(this) + .transition() + .each('start.zoom', function() { + view = this.__chart__ || { + x: 0, + y: 0, + k: 1 + }; + zoomstarted(dispatch); + }) + .tween('zoom:zoom', function() { + var dx = size[0], + dy = size[1], + cx = center0 ? center0[0] : dx / 2, + cy = center0 ? center0[1] : dy / 2, + i = d3.interpolateZoom( + [(cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k], + [ + (cx - view1.x) / view1.k, + (cy - view1.y) / view1.k, + dx / view1.k + ] + ); + return function(t) { + var l = i(t), + k = dx / l[2]; + this.__chart__ = view = { + x: cx - l[0] * k, + y: cy - l[1] * k, + k: k + }; + zoomed(dispatch); + }; + }) + .each('interrupt.zoom', function() { + zoomended(dispatch); + }) + .each('end.zoom', function() { + zoomended(dispatch); + }); + } else { + this.__chart__ = view; + zoomstarted(dispatch); + zoomed(dispatch); + zoomended(dispatch); + } + }); + }; + zoom.translate = function(_) { + if (!arguments.length) return [view.x, view.y]; + view = { + x: +_[0], + y: +_[1], + k: view.k + }; + rescale(); + return zoom; + }; + zoom.scale = function(_) { + if (!arguments.length) return view.k; + view = { + x: view.x, + y: view.y, + k: null + }; + scaleTo(+_); + rescale(); + return zoom; + }; + zoom.scaleExtent = function(_) { + if (!arguments.length) return scaleExtent; + scaleExtent = _ == null ? d3_behavior_zoomInfinity : [+_[0], +_[1]]; + return zoom; + }; + zoom.center = function(_) { + if (!arguments.length) return center; + center = _ && [+_[0], +_[1]]; + return zoom; + }; + zoom.size = function(_) { + if (!arguments.length) return size; + size = _ && [+_[0], +_[1]]; + return zoom; + }; + zoom.duration = function(_) { + if (!arguments.length) return duration; + duration = +_; + return zoom; + }; + zoom.x = function(z) { + if (!arguments.length) return x1; + x1 = z; + x0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + zoom.y = function(z) { + if (!arguments.length) return y1; + y1 = z; + y0 = z.copy(); + view = { + x: 0, + y: 0, + k: 1 + }; + return zoom; + }; + function location(p) { + return [(p[0] - view.x) / view.k, (p[1] - view.y) / view.k]; + } + function point(l) { + return [l[0] * view.k + view.x, l[1] * view.k + view.y]; + } + function scaleTo(s) { + view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s)); + } + function translateTo(p, l) { + l = point(l); + view.x += p[0] - l[0]; + view.y += p[1] - l[1]; + } + function zoomTo(that, p, l, k) { + that.__chart__ = { + x: view.x, + y: view.y, + k: view.k + }; + scaleTo(Math.pow(2, k)); + translateTo((center0 = p), l); + that = d3.select(that); + if (duration > 0) that = that.transition().duration(duration); + that.call(zoom.event); + } + function rescale() { + if (x1) + x1.domain( + x0 + .range() + .map(function(x) { + return (x - view.x) / view.k; + }) + .map(x0.invert) + ); + if (y1) + y1.domain( + y0 + .range() + .map(function(y) { + return (y - view.y) / view.k; + }) + .map(y0.invert) + ); + } + function zoomstarted(dispatch) { + if (!zooming++) + dispatch({ + type: 'zoomstart' + }); + } + function zoomed(dispatch) { + rescale(); + dispatch({ + type: 'zoom', + scale: view.k, + translate: [view.x, view.y] + }); + } + function zoomended(dispatch) { + if (!--zooming) + dispatch({ + type: 'zoomend' + }), + (center0 = null); + } + function mousedowned() { + var that = this, + dispatch = event.of(that, arguments), + dragged = 0, + subject = d3 + .select(d3_window(that)) + .on(mousemove, moved) + .on(mouseup, ended), + location0 = location(d3.mouse(that)), + dragRestore = d3_event_dragSuppress(that); + d3_selection_interrupt.call(that); + zoomstarted(dispatch); + function moved() { + dragged = 1; + translateTo(d3.mouse(that), location0); + zoomed(dispatch); + } + function ended() { + subject.on(mousemove, null).on(mouseup, null); + dragRestore(dragged); + zoomended(dispatch); + } + } + function touchstarted() { + var that = this, + dispatch = event.of(that, arguments), + locations0 = {}, + distance0 = 0, + scale0, + zoomName = '.zoom-' + d3.event.changedTouches[0].identifier, + touchmove = 'touchmove' + zoomName, + touchend = 'touchend' + zoomName, + targets = [], + subject = d3.select(that), + dragRestore = d3_event_dragSuppress(that); + started(); + zoomstarted(dispatch); + subject.on(mousedown, null).on(touchstart, started); + function relocate() { + var touches = d3.touches(that); + scale0 = view.k; + touches.forEach(function(t) { + if (t.identifier in locations0) + locations0[t.identifier] = location(t); + }); + return touches; + } + function started() { + var target = d3.event.target; + d3.select(target) + .on(touchmove, moved) + .on(touchend, ended); + targets.push(target); + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + locations0[changed[i].identifier] = null; + } + var touches = relocate(), + now = Date.now(); + if (touches.length === 1) { + if (now - touchtime < 500) { + var p = touches[0]; + zoomTo( + that, + p, + locations0[p.identifier], + Math.floor(Math.log(view.k) / Math.LN2) + 1 + ); + d3_eventPreventDefault(); + } + touchtime = now; + } else if (touches.length > 1) { + var p = touches[0], + q = touches[1], + dx = p[0] - q[0], + dy = p[1] - q[1]; + distance0 = dx * dx + dy * dy; + } + } + function moved() { + var touches = d3.touches(that), + p0, + l0, + p1, + l1; + d3_selection_interrupt.call(that); + for (var i = 0, n = touches.length; i < n; ++i, l1 = null) { + p1 = touches[i]; + if ((l1 = locations0[p1.identifier])) { + if (l0) break; + (p0 = p1), (l0 = l1); + } + } + if (l1) { + var distance1 = + (distance1 = p1[0] - p0[0]) * distance1 + + (distance1 = p1[1] - p0[1]) * distance1, + scale1 = distance0 && Math.sqrt(distance1 / distance0); + p0 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2]; + l0 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2]; + scaleTo(scale1 * scale0); + } + touchtime = null; + translateTo(p0, l0); + zoomed(dispatch); + } + function ended() { + if (d3.event.touches.length) { + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + delete locations0[changed[i].identifier]; + } + for (var identifier in locations0) { + return void relocate(); + } + } + d3.selectAll(targets).on(zoomName, null); + subject.on(mousedown, mousedowned).on(touchstart, touchstarted); + dragRestore(); + zoomended(dispatch); + } + } + function mousewheeled() { + var dispatch = event.of(this, arguments); + if (mousewheelTimer) clearTimeout(mousewheelTimer); + else + d3_selection_interrupt.call(this), + (translate0 = location((center0 = center || d3.mouse(this)))), + zoomstarted(dispatch); + mousewheelTimer = setTimeout(function() { + mousewheelTimer = null; + zoomended(dispatch); + }, 50); + d3_eventPreventDefault(); + scaleTo(Math.pow(2, d3_behavior_zoomDelta() * 0.002) * view.k); + translateTo(center0, translate0); + zoomed(dispatch); + } + function dblclicked() { + var p = d3.mouse(this), + k = Math.log(view.k) / Math.LN2; + zoomTo( + this, + p, + location(p), + d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1 + ); + } + return d3.rebind(zoom, event, 'on'); + }; + var d3_behavior_zoomInfinity = [0, Infinity], + d3_behavior_zoomDelta, + d3_behavior_zoomWheel; + d3.color = d3_color; + function d3_color() {} + d3_color.prototype.toString = function() { + return this.rgb() + ''; + }; + d3.hsl = d3_hsl; + function d3_hsl(h, s, l) { + return this instanceof d3_hsl + ? void ((this.h = +h), (this.s = +s), (this.l = +l)) + : arguments.length < 2 + ? h instanceof d3_hsl + ? new d3_hsl(h.h, h.s, h.l) + : d3_rgb_parse('' + h, d3_rgb_hsl, d3_hsl) + : new d3_hsl(h, s, l); + } + var d3_hslPrototype = (d3_hsl.prototype = new d3_color()); + d3_hslPrototype.brighter = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, this.l / k); + }; + d3_hslPrototype.darker = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, k * this.l); + }; + d3_hslPrototype.rgb = function() { + return d3_hsl_rgb(this.h, this.s, this.l); + }; + function d3_hsl_rgb(h, s, l) { + var m1, m2; + h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h; + s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s; + l = l < 0 ? 0 : l > 1 ? 1 : l; + m2 = l <= 0.5 ? l * (1 + s) : l + s - l * s; + m1 = 2 * l - m2; + function v(h) { + if (h > 360) h -= 360; + else if (h < 0) h += 360; + if (h < 60) return m1 + ((m2 - m1) * h) / 60; + if (h < 180) return m2; + if (h < 240) return m1 + ((m2 - m1) * (240 - h)) / 60; + return m1; + } + function vv(h) { + return Math.round(v(h) * 255); + } + return new d3_rgb(vv(h + 120), vv(h), vv(h - 120)); + } + d3.hcl = d3_hcl; + function d3_hcl(h, c, l) { + return this instanceof d3_hcl + ? void ((this.h = +h), (this.c = +c), (this.l = +l)) + : arguments.length < 2 + ? h instanceof d3_hcl + ? new d3_hcl(h.h, h.c, h.l) + : h instanceof d3_lab + ? d3_lab_hcl(h.l, h.a, h.b) + : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) + : new d3_hcl(h, c, l); + } + var d3_hclPrototype = (d3_hcl.prototype = new d3_color()); + d3_hclPrototype.brighter = function(k) { + return new d3_hcl( + this.h, + this.c, + Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)) + ); + }; + d3_hclPrototype.darker = function(k) { + return new d3_hcl( + this.h, + this.c, + Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)) + ); + }; + d3_hclPrototype.rgb = function() { + return d3_hcl_lab(this.h, this.c, this.l).rgb(); + }; + function d3_hcl_lab(h, c, l) { + if (isNaN(h)) h = 0; + if (isNaN(c)) c = 0; + return new d3_lab(l, Math.cos((h *= d3_radians)) * c, Math.sin(h) * c); + } + d3.lab = d3_lab; + function d3_lab(l, a, b) { + return this instanceof d3_lab + ? void ((this.l = +l), (this.a = +a), (this.b = +b)) + : arguments.length < 2 + ? l instanceof d3_lab + ? new d3_lab(l.l, l.a, l.b) + : l instanceof d3_hcl + ? d3_hcl_lab(l.h, l.c, l.l) + : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) + : new d3_lab(l, a, b); + } + var d3_lab_K = 18; + var d3_lab_X = 0.95047, + d3_lab_Y = 1, + d3_lab_Z = 1.08883; + var d3_labPrototype = (d3_lab.prototype = new d3_color()); + d3_labPrototype.brighter = function(k) { + return new d3_lab( + Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), + this.a, + this.b + ); + }; + d3_labPrototype.darker = function(k) { + return new d3_lab( + Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), + this.a, + this.b + ); + }; + d3_labPrototype.rgb = function() { + return d3_lab_rgb(this.l, this.a, this.b); + }; + function d3_lab_rgb(l, a, b) { + var y = (l + 16) / 116, + x = y + a / 500, + z = y - b / 200; + x = d3_lab_xyz(x) * d3_lab_X; + y = d3_lab_xyz(y) * d3_lab_Y; + z = d3_lab_xyz(z) * d3_lab_Z; + return new d3_rgb( + d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z), + d3_xyz_rgb(-0.969266 * x + 1.8760108 * y + 0.041556 * z), + d3_xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z) + ); + } + function d3_lab_hcl(l, a, b) { + return l > 0 + ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) + : new d3_hcl(NaN, NaN, l); + } + function d3_lab_xyz(x) { + return x > 0.206893034 ? x * x * x : (x - 4 / 29) / 7.787037; + } + function d3_xyz_lab(x) { + return x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29; + } + function d3_xyz_rgb(r) { + return Math.round( + 255 * (r <= 0.00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - 0.055) + ); + } + d3.rgb = d3_rgb; + function d3_rgb(r, g, b) { + return this instanceof d3_rgb + ? void ((this.r = ~~r), (this.g = ~~g), (this.b = ~~b)) + : arguments.length < 2 + ? r instanceof d3_rgb + ? new d3_rgb(r.r, r.g, r.b) + : d3_rgb_parse('' + r, d3_rgb, d3_hsl_rgb) + : new d3_rgb(r, g, b); + } + function d3_rgbNumber(value) { + return new d3_rgb(value >> 16, (value >> 8) & 255, value & 255); + } + function d3_rgbString(value) { + return d3_rgbNumber(value) + ''; + } + var d3_rgbPrototype = (d3_rgb.prototype = new d3_color()); + d3_rgbPrototype.brighter = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + var r = this.r, + g = this.g, + b = this.b, + i = 30; + if (!r && !g && !b) return new d3_rgb(i, i, i); + if (r && r < i) r = i; + if (g && g < i) g = i; + if (b && b < i) b = i; + return new d3_rgb( + Math.min(255, r / k), + Math.min(255, g / k), + Math.min(255, b / k) + ); + }; + d3_rgbPrototype.darker = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return new d3_rgb(k * this.r, k * this.g, k * this.b); + }; + d3_rgbPrototype.hsl = function() { + return d3_rgb_hsl(this.r, this.g, this.b); + }; + d3_rgbPrototype.toString = function() { + return '#' + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); + }; + function d3_rgb_hex(v) { + return v < 16 + ? '0' + Math.max(0, v).toString(16) + : Math.min(255, v).toString(16); + } + function d3_rgb_parse(format, rgb, hsl) { + var r = 0, + g = 0, + b = 0, + m1, + m2, + color; + m1 = /([a-z]+)\((.*)\)/.exec((format = format.toLowerCase())); + if (m1) { + m2 = m1[2].split(','); + switch (m1[1]) { + case 'hsl': { + return hsl( + parseFloat(m2[0]), + parseFloat(m2[1]) / 100, + parseFloat(m2[2]) / 100 + ); + } + + case 'rgb': { + return rgb( + d3_rgb_parseNumber(m2[0]), + d3_rgb_parseNumber(m2[1]), + d3_rgb_parseNumber(m2[2]) + ); + } + } + } + if ((color = d3_rgb_names.get(format))) { + return rgb(color.r, color.g, color.b); + } + if ( + format != null && + format.charAt(0) === '#' && + !isNaN((color = parseInt(format.slice(1), 16))) + ) { + if (format.length === 4) { + r = (color & 3840) >> 4; + r = (r >> 4) | r; + g = color & 240; + g = (g >> 4) | g; + b = color & 15; + b = (b << 4) | b; + } else if (format.length === 7) { + r = (color & 16711680) >> 16; + g = (color & 65280) >> 8; + b = color & 255; + } + } + return rgb(r, g, b); + } + function d3_rgb_hsl(r, g, b) { + var min = Math.min((r /= 255), (g /= 255), (b /= 255)), + max = Math.max(r, g, b), + d = max - min, + h, + s, + l = (max + min) / 2; + if (d) { + s = l < 0.5 ? d / (max + min) : d / (2 - max - min); + if (r == max) h = (g - b) / d + (g < b ? 6 : 0); + else if (g == max) h = (b - r) / d + 2; + else h = (r - g) / d + 4; + h *= 60; + } else { + h = NaN; + s = l > 0 && l < 1 ? 0 : h; + } + return new d3_hsl(h, s, l); + } + function d3_rgb_lab(r, g, b) { + r = d3_rgb_xyz(r); + g = d3_rgb_xyz(g); + b = d3_rgb_xyz(b); + var x = d3_xyz_lab( + (0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / d3_lab_X + ), + y = d3_xyz_lab((0.2126729 * r + 0.7151522 * g + 0.072175 * b) / d3_lab_Y), + z = d3_xyz_lab((0.0193339 * r + 0.119192 * g + 0.9503041 * b) / d3_lab_Z); + return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z)); + } + function d3_rgb_xyz(r) { + return (r /= 255) <= 0.04045 + ? r / 12.92 + : Math.pow((r + 0.055) / 1.055, 2.4); + } + function d3_rgb_parseNumber(c) { + var f = parseFloat(c); + return c.charAt(c.length - 1) === '%' ? Math.round(f * 2.55) : f; + } + var d3_rgb_names = d3.map({ + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 + }); + d3_rgb_names.forEach(function(key, value) { + d3_rgb_names.set(key, d3_rgbNumber(value)); + }); + function d3_functor(v) { + return typeof v === 'function' + ? v + : function() { + return v; + }; + } + d3.functor = d3_functor; + d3.xhr = d3_xhrType(d3_identity); + function d3_xhrType(response) { + return function(url, mimeType, callback) { + if (arguments.length === 2 && typeof mimeType === 'function') + (callback = mimeType), (mimeType = null); + return d3_xhr(url, mimeType, response, callback); + }; + } + function d3_xhr(url, mimeType, response, callback) { + var xhr = {}, + dispatch = d3.dispatch('beforesend', 'progress', 'load', 'error'), + headers = {}, + request = new XMLHttpRequest(), + responseType = null; + if ( + this.XDomainRequest && + !('withCredentials' in request) && + /^(http(s)?:)?\/\//.test(url) + ) + request = new XDomainRequest(); + 'onload' in request + ? (request.onload = request.onerror = respond) + : (request.onreadystatechange = function() { + request.readyState > 3 && respond(); + }); + function respond() { + var status = request.status, + result; + if ( + (!status && d3_xhrHasResponse(request)) || + (status >= 200 && status < 300) || + status === 304 + ) { + try { + result = response.call(xhr, request); + } catch (e) { + dispatch.error.call(xhr, e); + return; + } + dispatch.load.call(xhr, result); + } else { + dispatch.error.call(xhr, request); + } + } + request.onprogress = function(event) { + var o = d3.event; + d3.event = event; + try { + dispatch.progress.call(xhr, request); + } finally { + d3.event = o; + } + }; + xhr.header = function(name, value) { + name = (name + '').toLowerCase(); + if (arguments.length < 2) return headers[name]; + if (value == null) delete headers[name]; + else headers[name] = value + ''; + return xhr; + }; + xhr.mimeType = function(value) { + if (!arguments.length) return mimeType; + mimeType = value == null ? null : value + ''; + return xhr; + }; + xhr.responseType = function(value) { + if (!arguments.length) return responseType; + responseType = value; + return xhr; + }; + xhr.response = function(value) { + response = value; + return xhr; + }; + ['get', 'post'].forEach(function(method) { + xhr[method] = function() { + return xhr.send.apply(xhr, [method].concat(d3_array(arguments))); + }; + }); + xhr.send = function(method, data, callback) { + if (arguments.length === 2 && typeof data === 'function') + (callback = data), (data = null); + request.open(method, url, true); + if (mimeType != null && !('accept' in headers)) + headers['accept'] = mimeType + ',*/*'; + if (request.setRequestHeader) + for (var name in headers) request.setRequestHeader(name, headers[name]); + if (mimeType != null && request.overrideMimeType) + request.overrideMimeType(mimeType); + if (responseType != null) request.responseType = responseType; + if (callback != null) + xhr.on('error', callback).on('load', function(request) { + callback(null, request); + }); + dispatch.beforesend.call(xhr, request); + request.send(data == null ? null : data); + return xhr; + }; + xhr.abort = function() { + request.abort(); + return xhr; + }; + d3.rebind(xhr, dispatch, 'on'); + return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback)); + } + function d3_xhr_fixCallback(callback) { + return callback.length === 1 + ? function(error, request) { + callback(error == null ? request : null); + } + : callback; + } + function d3_xhrHasResponse(request) { + var type = request.responseType; + return type && type !== 'text' ? request.response : request.responseText; + } + d3.dsv = function(delimiter, mimeType) { + var reFormat = new RegExp('["' + delimiter + '\n]'), + delimiterCode = delimiter.charCodeAt(0); + function dsv(url, row, callback) { + if (arguments.length < 3) (callback = row), (row = null); + var xhr = d3_xhr( + url, + mimeType, + row == null ? response : typedResponse(row), + callback + ); + xhr.row = function(_) { + return arguments.length + ? xhr.response((row = _) == null ? response : typedResponse(_)) + : row; + }; + return xhr; + } + function response(request) { + return dsv.parse(request.responseText); + } + function typedResponse(f) { + return function(request) { + return dsv.parse(request.responseText, f); + }; + } + dsv.parse = function(text, f) { + var o; + return dsv.parseRows(text, function(row, i) { + if (o) return o(row, i - 1); + var a = new Function( + 'd', + 'return {' + + row + .map(function(name, i) { + return JSON.stringify(name) + ': d[' + i + ']'; + }) + .join(',') + + '}' + ); + o = f + ? function(row, i) { + return f(a(row), i); + } + : a; + }); + }; + dsv.parseRows = function(text, f) { + var EOL = {}, + EOF = {}, + rows = [], + N = text.length, + I = 0, + n = 0, + t, + eol; + function token() { + if (I >= N) return EOF; + if (eol) return (eol = false), EOL; + var j = I; + if (text.charCodeAt(j) === 34) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === 34) { + if (text.charCodeAt(i + 1) !== 34) break; + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) ++I; + } else if (c === 10) { + eol = true; + } + return text.slice(j + 1, i).replace(/""/g, '"'); + } + while (I < N) { + var c = text.charCodeAt(I++), + k = 1; + if (c === 10) eol = true; + else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) ++I, ++k; + } else if (c !== delimiterCode) continue; + return text.slice(j, I - k); + } + return text.slice(j); + } + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t); + t = token(); + } + if (f && (a = f(a, n++)) == null) continue; + rows.push(a); + } + return rows; + }; + dsv.format = function(rows) { + if (Array.isArray(rows[0])) return dsv.formatRows(rows); + var fieldSet = new d3_Set(), + fields = []; + rows.forEach(function(row) { + for (var field in row) { + if (!fieldSet.has(field)) { + fields.push(fieldSet.add(field)); + } + } + }); + return [fields.map(formatValue).join(delimiter)] + .concat( + rows.map(function(row) { + return fields + .map(function(field) { + return formatValue(row[field]); + }) + .join(delimiter); + }) + ) + .join('\n'); + }; + dsv.formatRows = function(rows) { + return rows.map(formatRow).join('\n'); + }; + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + function formatValue(text) { + return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text; + } + return dsv; + }; + d3.csv = d3.dsv(',', 'text/csv'); + d3.tsv = d3.dsv(' ', 'text/tab-separated-values'); + var d3_timer_queueHead, + d3_timer_queueTail, + d3_timer_interval, + d3_timer_timeout, + d3_timer_frame = + this[d3_vendorSymbol(this, 'requestAnimationFrame')] || + function(callback) { + setTimeout(callback, 17); + }; + d3.timer = function() { + d3_timer.apply(this, arguments); + }; + function d3_timer(callback, delay, then) { + var n = arguments.length; + if (n < 2) delay = 0; + if (n < 3) then = Date.now(); + var time = then + delay, + timer = { + c: callback, + t: time, + n: null + }; + if (d3_timer_queueTail) d3_timer_queueTail.n = timer; + else d3_timer_queueHead = timer; + d3_timer_queueTail = timer; + if (!d3_timer_interval) { + d3_timer_timeout = clearTimeout(d3_timer_timeout); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + return timer; + } + function d3_timer_step() { + var now = d3_timer_mark(), + delay = d3_timer_sweep() - now; + if (delay > 24) { + if (isFinite(delay)) { + clearTimeout(d3_timer_timeout); + d3_timer_timeout = setTimeout(d3_timer_step, delay); + } + d3_timer_interval = 0; + } else { + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + } + d3.timer.flush = function() { + d3_timer_mark(); + d3_timer_sweep(); + }; + function d3_timer_mark() { + var now = Date.now(), + timer = d3_timer_queueHead; + while (timer) { + if (now >= timer.t && timer.c(now - timer.t)) timer.c = null; + timer = timer.n; + } + return now; + } + function d3_timer_sweep() { + var t0, + t1 = d3_timer_queueHead, + time = Infinity; + while (t1) { + if (t1.c) { + if (t1.t < time) time = t1.t; + t1 = (t0 = t1).n; + } else { + t1 = t0 ? (t0.n = t1.n) : (d3_timer_queueHead = t1.n); + } + } + d3_timer_queueTail = t0; + return time; + } + function d3_format_precision(x, p) { + return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1); + } + d3.round = function(x, n) { + return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x); + }; + var d3_formatPrefixes = [ + 'y', + 'z', + 'a', + 'f', + 'p', + 'n', + 'µ', + 'm', + '', + 'k', + 'M', + 'G', + 'T', + 'P', + 'E', + 'Z', + 'Y' + ].map(d3_formatPrefix); + d3.formatPrefix = function(value, precision) { + var i = 0; + if ((value = +value)) { + if (value < 0) value *= -1; + if (precision) + value = d3.round(value, d3_format_precision(value, precision)); + i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); + i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3)); + } + return d3_formatPrefixes[8 + i / 3]; + }; + function d3_formatPrefix(d, i) { + var k = Math.pow(10, abs(8 - i) * 3); + return { + scale: + i > 8 + ? function(d) { + return d / k; + } + : function(d) { + return d * k; + }, + symbol: d + }; + } + function d3_locale_numberFormat(locale) { + var locale_decimal = locale.decimal, + locale_thousands = locale.thousands, + locale_grouping = locale.grouping, + locale_currency = locale.currency, + formatGroup = + locale_grouping && locale_thousands + ? function(value, width) { + var i = value.length, + t = [], + j = 0, + g = locale_grouping[0], + length = 0; + while (i > 0 && g > 0) { + if (length + g + 1 > width) g = Math.max(1, width - length); + t.push(value.substring((i -= g), i + g)); + if ((length += g + 1) > width) break; + g = locale_grouping[(j = (j + 1) % locale_grouping.length)]; + } + return t.reverse().join(locale_thousands); + } + : d3_identity; + return function(specifier) { + var match = d3_format_re.exec(specifier), + fill = match[1] || ' ', + align = match[2] || '>', + sign = match[3] || '-', + symbol = match[4] || '', + zfill = match[5], + width = +match[6], + comma = match[7], + precision = match[8], + type = match[9], + scale = 1, + prefix = '', + suffix = '', + integer = false, + exponent = true; + if (precision) precision = +precision.substring(1); + if (zfill || (fill === '0' && align === '=')) { + zfill = fill = '0'; + align = '='; + } + switch (type) { + case 'n': + comma = true; + type = 'g'; + break; + + case '%': + scale = 100; + suffix = '%'; + type = 'f'; + break; + + case 'p': + scale = 100; + suffix = '%'; + type = 'r'; + break; + + case 'b': + case 'o': + case 'x': + case 'X': + if (symbol === '#') prefix = '0' + type.toLowerCase(); + + case 'c': + exponent = false; + + case 'd': + integer = true; + precision = 0; + break; + + case 's': + scale = -1; + type = 'r'; + break; + } + if (symbol === '$') + (prefix = locale_currency[0]), (suffix = locale_currency[1]); + if (type == 'r' && !precision) type = 'g'; + if (precision != null) { + if (type == 'g') precision = Math.max(1, Math.min(21, precision)); + else if (type == 'e' || type == 'f') + precision = Math.max(0, Math.min(20, precision)); + } + type = d3_format_types.get(type) || d3_format_typeDefault; + var zcomma = zfill && comma; + return function(value) { + var fullSuffix = suffix; + if (integer && value % 1) return ''; + var negative = + value < 0 || (value === 0 && 1 / value < 0) + ? ((value = -value), '-') + : sign === '-' + ? '' + : sign; + if (scale < 0) { + var unit = d3.formatPrefix(value, precision); + value = unit.scale(value); + fullSuffix = unit.symbol + suffix; + } else { + value *= scale; + } + value = type(value, precision); + var i = value.lastIndexOf('.'), + before, + after; + if (i < 0) { + var j = exponent ? value.lastIndexOf('e') : -1; + if (j < 0) (before = value), (after = ''); + else (before = value.substring(0, j)), (after = value.substring(j)); + } else { + before = value.substring(0, i); + after = locale_decimal + value.substring(i + 1); + } + if (!zfill && comma) before = formatGroup(before, Infinity); + var length = + prefix.length + + before.length + + after.length + + (zcomma ? 0 : negative.length), + padding = + length < width + ? new Array((length = width - length + 1)).join(fill) + : ''; + if (zcomma) + before = formatGroup( + padding + before, + padding.length ? width - after.length : Infinity + ); + negative += prefix; + value = before + after; + return ( + (align === '<' + ? negative + value + padding + : align === '>' + ? padding + negative + value + : align === '^' + ? padding.substring(0, (length >>= 1)) + + negative + + value + + padding.substring(length) + : negative + (zcomma ? value : padding + value)) + fullSuffix + ); + }; + }; + } + var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i; + var d3_format_types = d3.map({ + b: function(x) { + return x.toString(2); + }, + c: function(x) { + return String.fromCharCode(x); + }, + o: function(x) { + return x.toString(8); + }, + x: function(x) { + return x.toString(16); + }, + X: function(x) { + return x.toString(16).toUpperCase(); + }, + g: function(x, p) { + return x.toPrecision(p); + }, + e: function(x, p) { + return x.toExponential(p); + }, + f: function(x, p) { + return x.toFixed(p); + }, + r: function(x, p) { + return (x = d3.round(x, d3_format_precision(x, p))).toFixed( + Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))) + ); + } + }); + function d3_format_typeDefault(x) { + return x + ''; + } + var d3_time = (d3.time = {}), + d3_date = Date; + function d3_date_utc() { + this._ = new Date( + arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0] + ); + } + d3_date_utc.prototype = { + getDate: function() { + return this._.getUTCDate(); + }, + getDay: function() { + return this._.getUTCDay(); + }, + getFullYear: function() { + return this._.getUTCFullYear(); + }, + getHours: function() { + return this._.getUTCHours(); + }, + getMilliseconds: function() { + return this._.getUTCMilliseconds(); + }, + getMinutes: function() { + return this._.getUTCMinutes(); + }, + getMonth: function() { + return this._.getUTCMonth(); + }, + getSeconds: function() { + return this._.getUTCSeconds(); + }, + getTime: function() { + return this._.getTime(); + }, + getTimezoneOffset: function() { + return 0; + }, + valueOf: function() { + return this._.valueOf(); + }, + setDate: function() { + d3_time_prototype.setUTCDate.apply(this._, arguments); + }, + setDay: function() { + d3_time_prototype.setUTCDay.apply(this._, arguments); + }, + setFullYear: function() { + d3_time_prototype.setUTCFullYear.apply(this._, arguments); + }, + setHours: function() { + d3_time_prototype.setUTCHours.apply(this._, arguments); + }, + setMilliseconds: function() { + d3_time_prototype.setUTCMilliseconds.apply(this._, arguments); + }, + setMinutes: function() { + d3_time_prototype.setUTCMinutes.apply(this._, arguments); + }, + setMonth: function() { + d3_time_prototype.setUTCMonth.apply(this._, arguments); + }, + setSeconds: function() { + d3_time_prototype.setUTCSeconds.apply(this._, arguments); + }, + setTime: function() { + d3_time_prototype.setTime.apply(this._, arguments); + } + }; + var d3_time_prototype = Date.prototype; + function d3_time_interval(local, step, number) { + function round(date) { + var d0 = local(date), + d1 = offset(d0, 1); + return date - d0 < d1 - date ? d0 : d1; + } + function ceil(date) { + step((date = local(new d3_date(date - 1))), 1); + return date; + } + function offset(date, k) { + step((date = new d3_date(+date)), k); + return date; + } + function range(t0, t1, dt) { + var time = ceil(t0), + times = []; + if (dt > 1) { + while (time < t1) { + if (!(number(time) % dt)) times.push(new Date(+time)); + step(time, 1); + } + } else { + while (time < t1) times.push(new Date(+time)), step(time, 1); + } + return times; + } + function range_utc(t0, t1, dt) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = t0; + return range(utc, t1, dt); + } finally { + d3_date = Date; + } + } + local.floor = local; + local.round = round; + local.ceil = ceil; + local.offset = offset; + local.range = range; + var utc = (local.utc = d3_time_interval_utc(local)); + utc.floor = utc; + utc.round = d3_time_interval_utc(round); + utc.ceil = d3_time_interval_utc(ceil); + utc.offset = d3_time_interval_utc(offset); + utc.range = range_utc; + return local; + } + function d3_time_interval_utc(method) { + return function(date, k) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = date; + return method(utc, k)._; + } finally { + d3_date = Date; + } + }; + } + d3_time.year = d3_time_interval( + function(date) { + date = d3_time.day(date); + date.setMonth(0, 1); + return date; + }, + function(date, offset) { + date.setFullYear(date.getFullYear() + offset); + }, + function(date) { + return date.getFullYear(); + } + ); + d3_time.years = d3_time.year.range; + d3_time.years.utc = d3_time.year.utc.range; + d3_time.day = d3_time_interval( + function(date) { + var day = new d3_date(2e3, 0); + day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); + return day; + }, + function(date, offset) { + date.setDate(date.getDate() + offset); + }, + function(date) { + return date.getDate() - 1; + } + ); + d3_time.days = d3_time.day.range; + d3_time.days.utc = d3_time.day.utc.range; + d3_time.dayOfYear = function(date) { + var year = d3_time.year(date); + return Math.floor( + (date - + year - + (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / + 864e5 + ); + }; + [ + 'sunday', + 'monday', + 'tuesday', + 'wednesday', + 'thursday', + 'friday', + 'saturday' + ].forEach(function(day, i) { + i = 7 - i; + var interval = (d3_time[day] = d3_time_interval( + function(date) { + (date = d3_time.day(date)).setDate( + date.getDate() - ((date.getDay() + i) % 7) + ); + return date; + }, + function(date, offset) { + date.setDate(date.getDate() + Math.floor(offset) * 7); + }, + function(date) { + var day = d3_time.year(date).getDay(); + return ( + Math.floor((d3_time.dayOfYear(date) + ((day + i) % 7)) / 7) - + (day !== i) + ); + } + )); + d3_time[day + 's'] = interval.range; + d3_time[day + 's'].utc = interval.utc.range; + d3_time[day + 'OfYear'] = function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + ((day + i) % 7)) / 7); + }; + }); + d3_time.week = d3_time.sunday; + d3_time.weeks = d3_time.sunday.range; + d3_time.weeks.utc = d3_time.sunday.utc.range; + d3_time.weekOfYear = d3_time.sundayOfYear; + function d3_locale_timeFormat(locale) { + var locale_dateTime = locale.dateTime, + locale_date = locale.date, + locale_time = locale.time, + locale_periods = locale.periods, + locale_days = locale.days, + locale_shortDays = locale.shortDays, + locale_months = locale.months, + locale_shortMonths = locale.shortMonths; + function d3_time_format(template) { + var n = template.length; + function format(date) { + var string = [], + i = -1, + j = 0, + c, + p, + f; + while (++i < n) { + if (template.charCodeAt(i) === 37) { + string.push(template.slice(j, i)); + if ((p = d3_time_formatPads[(c = template.charAt(++i))]) != null) + c = template.charAt(++i); + if ((f = d3_time_formats[c])) + c = f(date, p == null ? (c === 'e' ? ' ' : '0') : p); + string.push(c); + j = i + 1; + } + } + string.push(template.slice(j, i)); + return string.join(''); + } + format.parse = function(string) { + var d = { + y: 1900, + m: 0, + d: 1, + H: 0, + M: 0, + S: 0, + L: 0, + Z: null + }, + i = d3_time_parse(d, template, string, 0); + if (i != string.length) return null; + if ('p' in d) d.H = (d.H % 12) + d.p * 12; + var localZ = d.Z != null && d3_date !== d3_date_utc, + date = new (localZ ? d3_date_utc : d3_date)(); + if ('j' in d) date.setFullYear(d.y, 0, d.j); + else if ('W' in d || 'U' in d) { + if (!('w' in d)) d.w = 'W' in d ? 1 : 0; + date.setFullYear(d.y, 0, 1); + date.setFullYear( + d.y, + 0, + 'W' in d + ? ((d.w + 6) % 7) + d.W * 7 - ((date.getDay() + 5) % 7) + : d.w + d.U * 7 - ((date.getDay() + 6) % 7) + ); + } else date.setFullYear(d.y, d.m, d.d); + date.setHours(d.H + ((d.Z / 100) | 0), d.M + (d.Z % 100), d.S, d.L); + return localZ ? date._ : date; + }; + format.toString = function() { + return template; + }; + return format; + } + function d3_time_parse(date, template, string, j) { + var c, + p, + t, + i = 0, + n = template.length, + m = string.length; + while (i < n) { + if (j >= m) return -1; + c = template.charCodeAt(i++); + if (c === 37) { + t = template.charAt(i++); + p = + d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t]; + if (!p || (j = p(date, string, j)) < 0) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; + } + d3_time_format.utc = function(template) { + var local = d3_time_format(template); + function format(date) { + try { + d3_date = d3_date_utc; + var utc = new d3_date(); + utc._ = date; + return local(utc); + } finally { + d3_date = Date; + } + } + format.parse = function(string) { + try { + d3_date = d3_date_utc; + var date = local.parse(string); + return date && date._; + } finally { + d3_date = Date; + } + }; + format.toString = local.toString; + return format; + }; + d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti; + var d3_time_periodLookup = d3.map(), + d3_time_dayRe = d3_time_formatRe(locale_days), + d3_time_dayLookup = d3_time_formatLookup(locale_days), + d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), + d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), + d3_time_monthRe = d3_time_formatRe(locale_months), + d3_time_monthLookup = d3_time_formatLookup(locale_months), + d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), + d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths); + locale_periods.forEach(function(p, i) { + d3_time_periodLookup.set(p.toLowerCase(), i); + }); + var d3_time_formats = { + a: function(d) { + return locale_shortDays[d.getDay()]; + }, + A: function(d) { + return locale_days[d.getDay()]; + }, + b: function(d) { + return locale_shortMonths[d.getMonth()]; + }, + B: function(d) { + return locale_months[d.getMonth()]; + }, + c: d3_time_format(locale_dateTime), + d: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + e: function(d, p) { + return d3_time_formatPad(d.getDate(), p, 2); + }, + H: function(d, p) { + return d3_time_formatPad(d.getHours(), p, 2); + }, + I: function(d, p) { + return d3_time_formatPad(d.getHours() % 12 || 12, p, 2); + }, + j: function(d, p) { + return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3); + }, + L: function(d, p) { + return d3_time_formatPad(d.getMilliseconds(), p, 3); + }, + m: function(d, p) { + return d3_time_formatPad(d.getMonth() + 1, p, 2); + }, + M: function(d, p) { + return d3_time_formatPad(d.getMinutes(), p, 2); + }, + p: function(d) { + return locale_periods[+(d.getHours() >= 12)]; + }, + S: function(d, p) { + return d3_time_formatPad(d.getSeconds(), p, 2); + }, + U: function(d, p) { + return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2); + }, + w: function(d) { + return d.getDay(); + }, + W: function(d, p) { + return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2); + }, + x: d3_time_format(locale_date), + X: d3_time_format(locale_time), + y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 100, p, 2); + }, + Y: function(d, p) { + return d3_time_formatPad(d.getFullYear() % 1e4, p, 4); + }, + Z: d3_time_zone, + '%': function() { + return '%'; + } + }; + var d3_time_parsers = { + a: d3_time_parseWeekdayAbbrev, + A: d3_time_parseWeekday, + b: d3_time_parseMonthAbbrev, + B: d3_time_parseMonth, + c: d3_time_parseLocaleFull, + d: d3_time_parseDay, + e: d3_time_parseDay, + H: d3_time_parseHour24, + I: d3_time_parseHour24, + j: d3_time_parseDayOfYear, + L: d3_time_parseMilliseconds, + m: d3_time_parseMonthNumber, + M: d3_time_parseMinutes, + p: d3_time_parseAmPm, + S: d3_time_parseSeconds, + U: d3_time_parseWeekNumberSunday, + w: d3_time_parseWeekdayNumber, + W: d3_time_parseWeekNumberMonday, + x: d3_time_parseLocaleDate, + X: d3_time_parseLocaleTime, + y: d3_time_parseYear, + Y: d3_time_parseFullYear, + Z: d3_time_parseZone, + '%': d3_time_parseLiteralPercent + }; + function d3_time_parseWeekdayAbbrev(date, string, i) { + d3_time_dayAbbrevRe.lastIndex = 0; + var n = d3_time_dayAbbrevRe.exec(string.slice(i)); + return n + ? ((date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase())), + i + n[0].length) + : -1; + } + function d3_time_parseWeekday(date, string, i) { + d3_time_dayRe.lastIndex = 0; + var n = d3_time_dayRe.exec(string.slice(i)); + return n + ? ((date.w = d3_time_dayLookup.get(n[0].toLowerCase())), + i + n[0].length) + : -1; + } + function d3_time_parseMonthAbbrev(date, string, i) { + d3_time_monthAbbrevRe.lastIndex = 0; + var n = d3_time_monthAbbrevRe.exec(string.slice(i)); + return n + ? ((date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase())), + i + n[0].length) + : -1; + } + function d3_time_parseMonth(date, string, i) { + d3_time_monthRe.lastIndex = 0; + var n = d3_time_monthRe.exec(string.slice(i)); + return n + ? ((date.m = d3_time_monthLookup.get(n[0].toLowerCase())), + i + n[0].length) + : -1; + } + function d3_time_parseLocaleFull(date, string, i) { + return d3_time_parse(date, d3_time_formats.c.toString(), string, i); + } + function d3_time_parseLocaleDate(date, string, i) { + return d3_time_parse(date, d3_time_formats.x.toString(), string, i); + } + function d3_time_parseLocaleTime(date, string, i) { + return d3_time_parse(date, d3_time_formats.X.toString(), string, i); + } + function d3_time_parseAmPm(date, string, i) { + var n = d3_time_periodLookup.get(string.slice(i, (i += 2)).toLowerCase()); + return n == null ? -1 : ((date.p = n), i); + } + return d3_time_format; + } + var d3_time_formatPads = { + '-': '', + _: ' ', + '0': '0' + }, + d3_time_numberRe = /^\s*\d+/, + d3_time_percentRe = /^%/; + function d3_time_formatPad(value, fill, width) { + var sign = value < 0 ? '-' : '', + string = (sign ? -value : value) + '', + length = string.length; + return ( + sign + + (length < width + ? new Array(width - length + 1).join(fill) + string + : string) + ); + } + function d3_time_formatRe(names) { + return new RegExp('^(?:' + names.map(d3.requote).join('|') + ')', 'i'); + } + function d3_time_formatLookup(names) { + var map = new d3_Map(), + i = -1, + n = names.length; + while (++i < n) map.set(names[i].toLowerCase(), i); + return map; + } + function d3_time_parseWeekdayNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 1)); + return n ? ((date.w = +n[0]), i + n[0].length) : -1; + } + function d3_time_parseWeekNumberSunday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i)); + return n ? ((date.U = +n[0]), i + n[0].length) : -1; + } + function d3_time_parseWeekNumberMonday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i)); + return n ? ((date.W = +n[0]), i + n[0].length) : -1; + } + function d3_time_parseFullYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 4)); + return n ? ((date.y = +n[0]), i + n[0].length) : -1; + } + function d3_time_parseYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? ((date.y = d3_time_expandYear(+n[0])), i + n[0].length) : -1; + } + function d3_time_parseZone(date, string, i) { + return /^[+-]\d{4}$/.test((string = string.slice(i, i + 5))) + ? ((date.Z = -string), i + 5) + : -1; + } + function d3_time_expandYear(d) { + return d + (d > 68 ? 1900 : 2e3); + } + function d3_time_parseMonthNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? ((date.m = n[0] - 1), i + n[0].length) : -1; + } + function d3_time_parseDay(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? ((date.d = +n[0]), i + n[0].length) : -1; + } + function d3_time_parseDayOfYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 3)); + return n ? ((date.j = +n[0]), i + n[0].length) : -1; + } + function d3_time_parseHour24(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? ((date.H = +n[0]), i + n[0].length) : -1; + } + function d3_time_parseMinutes(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? ((date.M = +n[0]), i + n[0].length) : -1; + } + function d3_time_parseSeconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? ((date.S = +n[0]), i + n[0].length) : -1; + } + function d3_time_parseMilliseconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 3)); + return n ? ((date.L = +n[0]), i + n[0].length) : -1; + } + function d3_time_zone(d) { + var z = d.getTimezoneOffset(), + zs = z > 0 ? '-' : '+', + zh = (abs(z) / 60) | 0, + zm = abs(z) % 60; + return zs + d3_time_formatPad(zh, '0', 2) + d3_time_formatPad(zm, '0', 2); + } + function d3_time_parseLiteralPercent(date, string, i) { + d3_time_percentRe.lastIndex = 0; + var n = d3_time_percentRe.exec(string.slice(i, i + 1)); + return n ? i + n[0].length : -1; + } + function d3_time_formatMulti(formats) { + var n = formats.length, + i = -1; + while (++i < n) formats[i][0] = this(formats[i][0]); + return function(date) { + var i = 0, + f = formats[i]; + while (!f[1](date)) f = formats[++i]; + return f[0](date); + }; + } + d3.locale = function(locale) { + return { + numberFormat: d3_locale_numberFormat(locale), + timeFormat: d3_locale_timeFormat(locale) + }; + }; + var d3_locale_enUS = d3.locale({ + decimal: '.', + thousands: ',', + grouping: [3], + currency: ['$', ''], + dateTime: '%a %b %e %X %Y', + date: '%m/%d/%Y', + time: '%H:%M:%S', + periods: ['AM', 'PM'], + days: [ + 'Sunday', + 'Monday', + 'Tuesday', + 'Wednesday', + 'Thursday', + 'Friday', + 'Saturday' + ], + shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + months: [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December' + ], + shortMonths: [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sep', + 'Oct', + 'Nov', + 'Dec' + ] + }); + d3.format = d3_locale_enUS.numberFormat; + d3.geo = {}; + function d3_adder() {} + d3_adder.prototype = { + s: 0, + t: 0, + add: function(y) { + d3_adderSum(y, this.t, d3_adderTemp); + d3_adderSum(d3_adderTemp.s, this.s, this); + if (this.s) this.t += d3_adderTemp.t; + else this.s = d3_adderTemp.t; + }, + reset: function() { + this.s = this.t = 0; + }, + valueOf: function() { + return this.s; + } + }; + var d3_adderTemp = new d3_adder(); + function d3_adderSum(a, b, o) { + var x = (o.s = a + b), + bv = x - a, + av = x - bv; + o.t = a - av + (b - bv); + } + d3.geo.stream = function(object, listener) { + if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { + d3_geo_streamObjectType[object.type](object, listener); + } else { + d3_geo_streamGeometry(object, listener); + } + }; + function d3_geo_streamGeometry(geometry, listener) { + if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { + d3_geo_streamGeometryType[geometry.type](geometry, listener); + } + } + var d3_geo_streamObjectType = { + Feature: function(feature, listener) { + d3_geo_streamGeometry(feature.geometry, listener); + }, + FeatureCollection: function(object, listener) { + var features = object.features, + i = -1, + n = features.length; + while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); + } + }; + var d3_geo_streamGeometryType = { + Sphere: function(object, listener) { + listener.sphere(); + }, + Point: function(object, listener) { + object = object.coordinates; + listener.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, listener) { + var coordinates = object.coordinates, + i = -1, + n = coordinates.length; + while (++i < n) + (object = coordinates[i]), + listener.point(object[0], object[1], object[2]); + }, + LineString: function(object, listener) { + d3_geo_streamLine(object.coordinates, listener, 0); + }, + MultiLineString: function(object, listener) { + var coordinates = object.coordinates, + i = -1, + n = coordinates.length; + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); + }, + Polygon: function(object, listener) { + d3_geo_streamPolygon(object.coordinates, listener); + }, + MultiPolygon: function(object, listener) { + var coordinates = object.coordinates, + i = -1, + n = coordinates.length; + while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); + }, + GeometryCollection: function(object, listener) { + var geometries = object.geometries, + i = -1, + n = geometries.length; + while (++i < n) d3_geo_streamGeometry(geometries[i], listener); + } + }; + function d3_geo_streamLine(coordinates, listener, closed) { + var i = -1, + n = coordinates.length - closed, + coordinate; + listener.lineStart(); + while (++i < n) + (coordinate = coordinates[i]), + listener.point(coordinate[0], coordinate[1], coordinate[2]); + listener.lineEnd(); + } + function d3_geo_streamPolygon(coordinates, listener) { + var i = -1, + n = coordinates.length; + listener.polygonStart(); + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); + listener.polygonEnd(); + } + d3.geo.area = function(object) { + d3_geo_areaSum = 0; + d3.geo.stream(object, d3_geo_area); + return d3_geo_areaSum; + }; + var d3_geo_areaSum, + d3_geo_areaRingSum = new d3_adder(); + var d3_geo_area = { + sphere: function() { + d3_geo_areaSum += 4 * π; + }, + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_areaRingSum.reset(); + d3_geo_area.lineStart = d3_geo_areaRingStart; + }, + polygonEnd: function() { + var area = 2 * d3_geo_areaRingSum; + d3_geo_areaSum += area < 0 ? 4 * π + area : area; + d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop; + } + }; + function d3_geo_areaRingStart() { + var λ00, φ00, λ0, cosφ0, sinφ0; + d3_geo_area.point = function(λ, φ) { + d3_geo_area.point = nextPoint; + (λ0 = (λ00 = λ) * d3_radians), + (cosφ0 = Math.cos((φ = ((φ00 = φ) * d3_radians) / 2 + π / 4))), + (sinφ0 = Math.sin(φ)); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + φ = (φ * d3_radians) / 2 + π / 4; + var dλ = λ - λ0, + sdλ = dλ >= 0 ? 1 : -1, + adλ = sdλ * dλ, + cosφ = Math.cos(φ), + sinφ = Math.sin(φ), + k = sinφ0 * sinφ, + u = cosφ0 * cosφ + k * Math.cos(adλ), + v = k * sdλ * Math.sin(adλ); + d3_geo_areaRingSum.add(Math.atan2(v, u)); + (λ0 = λ), (cosφ0 = cosφ), (sinφ0 = sinφ); + } + d3_geo_area.lineEnd = function() { + nextPoint(λ00, φ00); + }; + } + function d3_geo_cartesian(spherical) { + var λ = spherical[0], + φ = spherical[1], + cosφ = Math.cos(φ); + return [cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ)]; + } + function d3_geo_cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + } + function d3_geo_cartesianCross(a, b) { + return [ + a[1] * b[2] - a[2] * b[1], + a[2] * b[0] - a[0] * b[2], + a[0] * b[1] - a[1] * b[0] + ]; + } + function d3_geo_cartesianAdd(a, b) { + a[0] += b[0]; + a[1] += b[1]; + a[2] += b[2]; + } + function d3_geo_cartesianScale(vector, k) { + return [vector[0] * k, vector[1] * k, vector[2] * k]; + } + function d3_geo_cartesianNormalize(d) { + var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l; + d[1] /= l; + d[2] /= l; + } + function d3_geo_spherical(cartesian) { + return [Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2])]; + } + function d3_geo_sphericalEqual(a, b) { + return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε; + } + d3.geo.bounds = (function() { + var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range; + var bound = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + bound.point = ringPoint; + bound.lineStart = ringStart; + bound.lineEnd = ringEnd; + dλSum = 0; + d3_geo_area.polygonStart(); + }, + polygonEnd: function() { + d3_geo_area.polygonEnd(); + bound.point = point; + bound.lineStart = lineStart; + bound.lineEnd = lineEnd; + if (d3_geo_areaRingSum < 0) (λ0 = -(λ1 = 180)), (φ0 = -(φ1 = 90)); + else if (dλSum > ε) φ1 = 90; + else if (dλSum < -ε) φ0 = -90; + (range[0] = λ0), (range[1] = λ1); + } + }; + function point(λ, φ) { + ranges.push((range = [(λ0 = λ), (λ1 = λ)])); + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + function linePoint(λ, φ) { + var p = d3_geo_cartesian([λ * d3_radians, φ * d3_radians]); + if (p0) { + var normal = d3_geo_cartesianCross(p0, p), + equatorial = [normal[1], -normal[0], 0], + inflection = d3_geo_cartesianCross(equatorial, normal); + d3_geo_cartesianNormalize(inflection); + inflection = d3_geo_spherical(inflection); + var dλ = λ - λ_, + s = dλ > 0 ? 1 : -1, + λi = inflection[0] * d3_degrees * s, + antimeridian = abs(dλ) > 180; + if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = inflection[1] * d3_degrees; + if (φi > φ1) φ1 = φi; + } else if ( + ((λi = ((λi + 360) % 360) - 180), + antimeridian ^ (s * λ_ < λi && λi < s * λ)) + ) { + var φi = -inflection[1] * d3_degrees; + if (φi < φ0) φ0 = φi; + } else { + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + if (antimeridian) { + if (λ < λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } else { + if (λ1 >= λ0) { + if (λ < λ0) λ0 = λ; + if (λ > λ1) λ1 = λ; + } else { + if (λ > λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } + } + } else { + point(λ, φ); + } + (p0 = p), (λ_ = λ); + } + function lineStart() { + bound.point = linePoint; + } + function lineEnd() { + (range[0] = λ0), (range[1] = λ1); + bound.point = point; + p0 = null; + } + function ringPoint(λ, φ) { + if (p0) { + var dλ = λ - λ_; + dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ; + } else (λ__ = λ), (φ__ = φ); + d3_geo_area.point(λ, φ); + linePoint(λ, φ); + } + function ringStart() { + d3_geo_area.lineStart(); + } + function ringEnd() { + ringPoint(λ__, φ__); + d3_geo_area.lineEnd(); + if (abs(dλSum) > ε) λ0 = -(λ1 = 180); + (range[0] = λ0), (range[1] = λ1); + p0 = null; + } + function angle(λ0, λ1) { + return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1; + } + function compareRanges(a, b) { + return a[0] - b[0]; + } + function withinRange(x, range) { + return range[0] <= range[1] + ? range[0] <= x && x <= range[1] + : x < range[0] || range[1] < x; + } + return function(feature) { + φ1 = λ1 = -(λ0 = φ0 = Infinity); + ranges = []; + d3.geo.stream(feature, bound); + var n = ranges.length; + if (n) { + ranges.sort(compareRanges); + for (var i = 1, a = ranges[0], b, merged = [a]; i < n; ++i) { + b = ranges[i]; + if (withinRange(b[0], a) || withinRange(b[1], a)) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push((a = b)); + } + } + var best = -Infinity, + dλ; + for ( + var n = merged.length - 1, i = 0, a = merged[n], b; + i <= n; + a = b, ++i + ) { + b = merged[i]; + if ((dλ = angle(a[1], b[0])) > best) + (best = dλ), (λ0 = b[0]), (λ1 = a[1]); + } + } + ranges = range = null; + return λ0 === Infinity || φ0 === Infinity + ? [[NaN, NaN], [NaN, NaN]] + : [[λ0, φ0], [λ1, φ1]]; + }; + })(); + d3.geo.centroid = function(object) { + d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, d3_geo_centroid); + var x = d3_geo_centroidX2, + y = d3_geo_centroidY2, + z = d3_geo_centroidZ2, + m = x * x + y * y + z * z; + if (m < ε2) { + (x = d3_geo_centroidX1), (y = d3_geo_centroidY1), (z = d3_geo_centroidZ1); + if (d3_geo_centroidW1 < ε) + (x = d3_geo_centroidX0), + (y = d3_geo_centroidY0), + (z = d3_geo_centroidZ0); + m = x * x + y * y + z * z; + if (m < ε2) return [NaN, NaN]; + } + return [ + Math.atan2(y, x) * d3_degrees, + d3_asin(z / Math.sqrt(m)) * d3_degrees + ]; + }; + var d3_geo_centroidW0, + d3_geo_centroidW1, + d3_geo_centroidX0, + d3_geo_centroidY0, + d3_geo_centroidZ0, + d3_geo_centroidX1, + d3_geo_centroidY1, + d3_geo_centroidZ1, + d3_geo_centroidX2, + d3_geo_centroidY2, + d3_geo_centroidZ2; + var d3_geo_centroid = { + sphere: d3_noop, + point: d3_geo_centroidPoint, + lineStart: d3_geo_centroidLineStart, + lineEnd: d3_geo_centroidLineEnd, + polygonStart: function() { + d3_geo_centroid.lineStart = d3_geo_centroidRingStart; + }, + polygonEnd: function() { + d3_geo_centroid.lineStart = d3_geo_centroidLineStart; + } + }; + function d3_geo_centroidPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos((φ *= d3_radians)); + d3_geo_centroidPointXYZ( + cosφ * Math.cos(λ), + cosφ * Math.sin(λ), + Math.sin(φ) + ); + } + function d3_geo_centroidPointXYZ(x, y, z) { + ++d3_geo_centroidW0; + d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0; + d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0; + d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0; + } + function d3_geo_centroidLineStart() { + var x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos((φ *= d3_radians)); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroid.point = nextPoint; + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos((φ *= d3_radians)), + x = cosφ * Math.cos(λ), + y = cosφ * Math.sin(λ), + z = Math.sin(φ), + w = Math.atan2( + Math.sqrt( + (w = y0 * z - z0 * y) * w + + (w = z0 * x - x0 * z) * w + + (w = x0 * y - y0 * x) * w + ), + x0 * x + y0 * y + z0 * z + ); + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } + } + function d3_geo_centroidLineEnd() { + d3_geo_centroid.point = d3_geo_centroidPoint; + } + function d3_geo_centroidRingStart() { + var λ00, φ00, x0, y0, z0; + d3_geo_centroid.point = function(λ, φ) { + (λ00 = λ), (φ00 = φ); + d3_geo_centroid.point = nextPoint; + λ *= d3_radians; + var cosφ = Math.cos((φ *= d3_radians)); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + d3_geo_centroid.lineEnd = function() { + nextPoint(λ00, φ00); + d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd; + d3_geo_centroid.point = d3_geo_centroidPoint; + }; + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos((φ *= d3_radians)), + x = cosφ * Math.cos(λ), + y = cosφ * Math.sin(λ), + z = Math.sin(φ), + cx = y0 * z - z0 * y, + cy = z0 * x - x0 * z, + cz = x0 * y - y0 * x, + m = Math.sqrt(cx * cx + cy * cy + cz * cz), + u = x0 * x + y0 * y + z0 * z, + v = m && -d3_acos(u) / m, + w = Math.atan2(m, u); + d3_geo_centroidX2 += v * cx; + d3_geo_centroidY2 += v * cy; + d3_geo_centroidZ2 += v * cz; + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } + } + function d3_geo_compose(a, b) { + function compose(x, y) { + return (x = a(x, y)), b(x[0], x[1]); + } + if (a.invert && b.invert) + compose.invert = function(x, y) { + return (x = b.invert(x, y)), x && a.invert(x[0], x[1]); + }; + return compose; + } + function d3_true() { + return true; + } + function d3_geo_clipPolygon( + segments, + compare, + clipStartInside, + interpolate, + listener + ) { + var subject = [], + clip = []; + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, + p0 = segment[0], + p1 = segment[n]; + if (d3_geo_sphericalEqual(p0, p1)) { + listener.lineStart(); + for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]); + listener.lineEnd(); + return; + } + var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), + b = new d3_geo_clipPolygonIntersection(p0, null, a, false); + a.o = b; + subject.push(a); + clip.push(b); + a = new d3_geo_clipPolygonIntersection(p1, segment, null, false); + b = new d3_geo_clipPolygonIntersection(p1, null, a, true); + a.o = b; + subject.push(a); + clip.push(b); + }); + clip.sort(compare); + d3_geo_clipPolygonLinkCircular(subject); + d3_geo_clipPolygonLinkCircular(clip); + if (!subject.length) return; + for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) { + clip[i].e = entry = !entry; + } + var start = subject[0], + points, + point; + while (1) { + var current = start, + isSubject = true; + while (current.v) if ((current = current.n) === start) return; + points = current.z; + listener.lineStart(); + do { + current.v = current.o.v = true; + if (current.e) { + if (isSubject) { + for (var i = 0, n = points.length; i < n; ++i) + listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.n.x, 1, listener); + } + current = current.n; + } else { + if (isSubject) { + points = current.p.z; + for (var i = points.length - 1; i >= 0; --i) + listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.p.x, -1, listener); + } + current = current.p; + } + current = current.o; + points = current.z; + isSubject = !isSubject; + } while (!current.v); + listener.lineEnd(); + } + } + function d3_geo_clipPolygonLinkCircular(array) { + if (!(n = array.length)) return; + var n, + i = 0, + a = array[0], + b; + while (++i < n) { + a.n = b = array[i]; + b.p = a; + a = b; + } + a.n = b = array[0]; + b.p = a; + } + function d3_geo_clipPolygonIntersection(point, points, other, entry) { + this.x = point; + this.z = points; + this.o = other; + this.e = entry; + this.v = false; + this.n = this.p = null; + } + function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) { + return function(rotate, listener) { + var line = clipLine(listener), + rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]); + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + segments = []; + polygon = []; + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + segments = d3.merge(segments); + var clipStartInside = d3_geo_pointInPolygon( + rotatedClipStart, + polygon + ); + if (segments.length) { + if (!polygonStarted) + listener.polygonStart(), (polygonStarted = true); + d3_geo_clipPolygon( + segments, + d3_geo_clipSort, + clipStartInside, + interpolate, + listener + ); + } else if (clipStartInside) { + if (!polygonStarted) + listener.polygonStart(), (polygonStarted = true); + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (polygonStarted) listener.polygonEnd(), (polygonStarted = false); + segments = polygon = null; + }, + sphere: function() { + listener.polygonStart(); + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + listener.polygonEnd(); + } + }; + function point(λ, φ) { + var point = rotate(λ, φ); + if (pointVisible((λ = point[0]), (φ = point[1]))) listener.point(λ, φ); + } + function pointLine(λ, φ) { + var point = rotate(λ, φ); + line.point(point[0], point[1]); + } + function lineStart() { + clip.point = pointLine; + line.lineStart(); + } + function lineEnd() { + clip.point = point; + line.lineEnd(); + } + var segments; + var buffer = d3_geo_clipBufferListener(), + ringListener = clipLine(buffer), + polygonStarted = false, + polygon, + ring; + function pointRing(λ, φ) { + ring.push([λ, φ]); + var point = rotate(λ, φ); + ringListener.point(point[0], point[1]); + } + function ringStart() { + ringListener.lineStart(); + ring = []; + } + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringListener.lineEnd(); + var clean = ringListener.clean(), + ringSegments = buffer.buffer(), + segment, + n = ringSegments.length; + ring.pop(); + polygon.push(ring); + ring = null; + if (!n) return; + if (clean & 1) { + segment = ringSegments[0]; + var n = segment.length - 1, + i = -1, + point; + if (n > 0) { + if (!polygonStarted) + listener.polygonStart(), (polygonStarted = true); + listener.lineStart(); + while (++i < n) listener.point((point = segment[i])[0], point[1]); + listener.lineEnd(); + } + return; + } + if (n > 1 && clean & 2) + ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + segments.push(ringSegments.filter(d3_geo_clipSegmentLength1)); + } + return clip; + }; + } + function d3_geo_clipSegmentLength1(segment) { + return segment.length > 1; + } + function d3_geo_clipBufferListener() { + var lines = [], + line; + return { + lineStart: function() { + lines.push((line = [])); + }, + point: function(λ, φ) { + line.push([λ, φ]); + }, + lineEnd: d3_noop, + buffer: function() { + var buffer = lines; + lines = []; + line = null; + return buffer; + }, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); + } + }; + } + function d3_geo_clipSort(a, b) { + return ( + ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - + ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]) + ); + } + var d3_geo_clipAntimeridian = d3_geo_clip( + d3_true, + d3_geo_clipAntimeridianLine, + d3_geo_clipAntimeridianInterpolate, + [-π, -π / 2] + ); + function d3_geo_clipAntimeridianLine(listener) { + var λ0 = NaN, + φ0 = NaN, + sλ0 = NaN, + clean; + return { + lineStart: function() { + listener.lineStart(); + clean = 1; + }, + point: function(λ1, φ1) { + var sλ1 = λ1 > 0 ? π : -π, + dλ = abs(λ1 - λ0); + if (abs(dλ - π) < ε) { + listener.point(λ0, (φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ)); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + listener.point(λ1, φ0); + clean = 0; + } else if (sλ0 !== sλ1 && dλ >= π) { + if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε; + if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε; + φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + clean = 0; + } + listener.point((λ0 = λ1), (φ0 = φ1)); + sλ0 = sλ1; + }, + lineEnd: function() { + listener.lineEnd(); + λ0 = φ0 = NaN; + }, + clean: function() { + return 2 - clean; + } + }; + } + function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) { + var cosφ0, + cosφ1, + sinλ0_λ1 = Math.sin(λ0 - λ1); + return abs(sinλ0_λ1) > ε + ? Math.atan( + (Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - + Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / + (cosφ0 * cosφ1 * sinλ0_λ1) + ) + : (φ0 + φ1) / 2; + } + function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) { + var φ; + if (from == null) { + φ = direction * halfπ; + listener.point(-π, φ); + listener.point(0, φ); + listener.point(π, φ); + listener.point(π, 0); + listener.point(π, -φ); + listener.point(0, -φ); + listener.point(-π, -φ); + listener.point(-π, 0); + listener.point(-π, φ); + } else if (abs(from[0] - to[0]) > ε) { + var s = from[0] < to[0] ? π : -π; + φ = (direction * s) / 2; + listener.point(-s, φ); + listener.point(0, φ); + listener.point(s, φ); + } else { + listener.point(to[0], to[1]); + } + } + function d3_geo_pointInPolygon(point, polygon) { + var meridian = point[0], + parallel = point[1], + meridianNormal = [Math.sin(meridian), -Math.cos(meridian), 0], + polarAngle = 0, + winding = 0; + d3_geo_areaRingSum.reset(); + for (var i = 0, n = polygon.length; i < n; ++i) { + var ring = polygon[i], + m = ring.length; + if (!m) continue; + var point0 = ring[0], + λ0 = point0[0], + φ0 = point0[1] / 2 + π / 4, + sinφ0 = Math.sin(φ0), + cosφ0 = Math.cos(φ0), + j = 1; + while (true) { + if (j === m) j = 0; + point = ring[j]; + var λ = point[0], + φ = point[1] / 2 + π / 4, + sinφ = Math.sin(φ), + cosφ = Math.cos(φ), + dλ = λ - λ0, + sdλ = dλ >= 0 ? 1 : -1, + adλ = sdλ * dλ, + antimeridian = adλ > π, + k = sinφ0 * sinφ; + d3_geo_areaRingSum.add( + Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)) + ); + polarAngle += antimeridian ? dλ + sdλ * τ : dλ; + if (antimeridian ^ (λ0 >= meridian) ^ (λ >= meridian)) { + var arc = d3_geo_cartesianCross( + d3_geo_cartesian(point0), + d3_geo_cartesian(point) + ); + d3_geo_cartesianNormalize(arc); + var intersection = d3_geo_cartesianCross(meridianNormal, arc); + d3_geo_cartesianNormalize(intersection); + var φarc = + (antimeridian ^ (dλ >= 0) ? -1 : 1) * d3_asin(intersection[2]); + if (parallel > φarc || (parallel === φarc && (arc[0] || arc[1]))) { + winding += antimeridian ^ (dλ >= 0) ? 1 : -1; + } + } + if (!j++) break; + (λ0 = λ), (sinφ0 = sinφ), (cosφ0 = cosφ), (point0 = point); + } + } + return ( + (polarAngle < -ε || (polarAngle < ε && d3_geo_areaRingSum < -ε)) ^ + (winding & 1) + ); + } + function d3_geo_clipCircle(radius) { + var cr = Math.cos(radius), + smallRadius = cr > 0, + notHemisphere = abs(cr) > ε, + interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); + return d3_geo_clip( + visible, + clipLine, + interpolate, + smallRadius ? [0, -radius] : [-π, radius - π] + ); + function visible(λ, φ) { + return Math.cos(λ) * Math.cos(φ) > cr; + } + function clipLine(listener) { + var point0, c0, v0, v00, clean; + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(λ, φ) { + var point1 = [λ, φ], + point2, + v = visible(λ, φ), + c = smallRadius + ? v + ? 0 + : code(λ, φ) + : v + ? code(λ + (λ < 0 ? π : -π), φ) + : 0; + if (!point0 && (v00 = v0 = v)) listener.lineStart(); + if (v !== v0) { + point2 = intersect(point0, point1); + if ( + d3_geo_sphericalEqual(point0, point2) || + d3_geo_sphericalEqual(point1, point2) + ) { + point1[0] += ε; + point1[1] += ε; + v = visible(point1[0], point1[1]); + } + } + if (v !== v0) { + clean = 0; + if (v) { + listener.lineStart(); + point2 = intersect(point1, point0); + listener.point(point2[0], point2[1]); + } else { + point2 = intersect(point0, point1); + listener.point(point2[0], point2[1]); + listener.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + } else { + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + } + } + } + if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) { + listener.point(point1[0], point1[1]); + } + (point0 = point1), (v0 = v), (c0 = c); + }, + lineEnd: function() { + if (v0) listener.lineEnd(); + point0 = null; + }, + clean: function() { + return clean | ((v00 && v0) << 1); + } + }; + } + function intersect(a, b, two) { + var pa = d3_geo_cartesian(a), + pb = d3_geo_cartesian(b); + var n1 = [1, 0, 0], + n2 = d3_geo_cartesianCross(pa, pb), + n2n2 = d3_geo_cartesianDot(n2, n2), + n1n2 = n2[0], + determinant = n2n2 - n1n2 * n1n2; + if (!determinant) return !two && a; + var c1 = (cr * n2n2) / determinant, + c2 = (-cr * n1n2) / determinant, + n1xn2 = d3_geo_cartesianCross(n1, n2), + A = d3_geo_cartesianScale(n1, c1), + B = d3_geo_cartesianScale(n2, c2); + d3_geo_cartesianAdd(A, B); + var u = n1xn2, + w = d3_geo_cartesianDot(A, u), + uu = d3_geo_cartesianDot(u, u), + t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1); + if (t2 < 0) return; + var t = Math.sqrt(t2), + q = d3_geo_cartesianScale(u, (-w - t) / uu); + d3_geo_cartesianAdd(q, A); + q = d3_geo_spherical(q); + if (!two) return q; + var λ0 = a[0], + λ1 = b[0], + φ0 = a[1], + φ1 = b[1], + z; + if (λ1 < λ0) (z = λ0), (λ0 = λ1), (λ1 = z); + var δλ = λ1 - λ0, + polar = abs(δλ - π) < ε, + meridian = polar || δλ < ε; + if (!polar && φ1 < φ0) (z = φ0), (φ0 = φ1), (φ1 = z); + if ( + meridian + ? polar + ? (φ0 + φ1 > 0) ^ (q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1)) + : φ0 <= q[1] && q[1] <= φ1 + : (δλ > π) ^ (λ0 <= q[0] && q[0] <= λ1) + ) { + var q1 = d3_geo_cartesianScale(u, (-w + t) / uu); + d3_geo_cartesianAdd(q1, A); + return [q, d3_geo_spherical(q1)]; + } + } + function code(λ, φ) { + var r = smallRadius ? radius : π - radius, + code = 0; + if (λ < -r) code |= 1; + else if (λ > r) code |= 2; + if (φ < -r) code |= 4; + else if (φ > r) code |= 8; + return code; + } + } + function d3_geom_clipLine(x0, y0, x1, y1) { + return function(line) { + var a = line.a, + b = line.b, + ax = a.x, + ay = a.y, + bx = b.x, + by = b.y, + t0 = 0, + t1 = 1, + dx = bx - ax, + dy = by - ay, + r; + r = x0 - ax; + if (!dx && r > 0) return; + r /= dx; + if (dx < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dx > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + r = x1 - ax; + if (!dx && r < 0) return; + r /= dx; + if (dx < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dx > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + r = y0 - ay; + if (!dy && r > 0) return; + r /= dy; + if (dy < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dy > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + r = y1 - ay; + if (!dy && r < 0) return; + r /= dy; + if (dy < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dy > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + if (t0 > 0) + line.a = { + x: ax + t0 * dx, + y: ay + t0 * dy + }; + if (t1 < 1) + line.b = { + x: ax + t1 * dx, + y: ay + t1 * dy + }; + return line; + }; + } + var d3_geo_clipExtentMAX = 1e9; + d3.geo.clipExtent = function() { + var x0, + y0, + x1, + y1, + stream, + clip, + clipExtent = { + stream: function(output) { + if (stream) stream.valid = false; + stream = clip(output); + stream.valid = true; + return stream; + }, + extent: function(_) { + if (!arguments.length) return [[x0, y0], [x1, y1]]; + clip = d3_geo_clipExtent( + (x0 = +_[0][0]), + (y0 = +_[0][1]), + (x1 = +_[1][0]), + (y1 = +_[1][1]) + ); + if (stream) (stream.valid = false), (stream = null); + return clipExtent; + } + }; + return clipExtent.extent([[0, 0], [960, 500]]); + }; + function d3_geo_clipExtent(x0, y0, x1, y1) { + return function(listener) { + var listener_ = listener, + bufferListener = d3_geo_clipBufferListener(), + clipLine = d3_geom_clipLine(x0, y0, x1, y1), + segments, + polygon, + ring; + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + listener = bufferListener; + segments = []; + polygon = []; + clean = true; + }, + polygonEnd: function() { + listener = listener_; + segments = d3.merge(segments); + var clipStartInside = insidePolygon([x0, y1]), + inside = clean && clipStartInside, + visible = segments.length; + if (inside || visible) { + listener.polygonStart(); + if (inside) { + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (visible) { + d3_geo_clipPolygon( + segments, + compare, + clipStartInside, + interpolate, + listener + ); + } + listener.polygonEnd(); + } + segments = polygon = ring = null; + } + }; + function insidePolygon(p) { + var wn = 0, + n = polygon.length, + y = p[1]; + for (var i = 0; i < n; ++i) { + for ( + var j = 1, v = polygon[i], m = v.length, a = v[0], b; + j < m; + ++j + ) { + b = v[j]; + if (a[1] <= y) { + if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn; + } else { + if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn; + } + a = b; + } + } + return wn !== 0; + } + function interpolate(from, to, direction, listener) { + var a = 0, + a1 = 0; + if ( + from == null || + (a = corner(from, direction)) !== (a1 = corner(to, direction)) || + (comparePoints(from, to) < 0) ^ (direction > 0) + ) { + do { + listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + } while ((a = (a + direction + 4) % 4) !== a1); + } else { + listener.point(to[0], to[1]); + } + } + function pointVisible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; + } + function point(x, y) { + if (pointVisible(x, y)) listener.point(x, y); + } + var x__, y__, v__, x_, y_, v_, first, clean; + function lineStart() { + clip.point = linePoint; + if (polygon) polygon.push((ring = [])); + first = true; + v_ = false; + x_ = y_ = NaN; + } + function lineEnd() { + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferListener.rejoin(); + segments.push(bufferListener.buffer()); + } + clip.point = point; + if (v_) listener.lineEnd(); + } + function linePoint(x, y) { + x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x)); + y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y)); + var v = pointVisible(x, y); + if (polygon) ring.push([x, y]); + if (first) { + (x__ = x), (y__ = y), (v__ = v); + first = false; + if (v) { + listener.lineStart(); + listener.point(x, y); + } + } else { + if (v && v_) listener.point(x, y); + else { + var l = { + a: { + x: x_, + y: y_ + }, + b: { + x: x, + y: y + } + }; + if (clipLine(l)) { + if (!v_) { + listener.lineStart(); + listener.point(l.a.x, l.a.y); + } + listener.point(l.b.x, l.b.y); + if (!v) listener.lineEnd(); + clean = false; + } else if (v) { + listener.lineStart(); + listener.point(x, y); + clean = false; + } + } + } + (x_ = x), (y_ = y), (v_ = v); + } + return clip; + }; + function corner(p, direction) { + return abs(p[0] - x0) < ε + ? direction > 0 + ? 0 + : 3 + : abs(p[0] - x1) < ε + ? direction > 0 + ? 2 + : 1 + : abs(p[1] - y0) < ε + ? direction > 0 + ? 1 + : 0 + : direction > 0 + ? 3 + : 2; + } + function compare(a, b) { + return comparePoints(a.x, b.x); + } + function comparePoints(a, b) { + var ca = corner(a, 1), + cb = corner(b, 1); + return ca !== cb + ? ca - cb + : ca === 0 + ? b[1] - a[1] + : ca === 1 + ? a[0] - b[0] + : ca === 2 + ? a[1] - b[1] + : b[0] - a[0]; + } + } + function d3_geo_conic(projectAt) { + var φ0 = 0, + φ1 = π / 3, + m = d3_geo_projectionMutator(projectAt), + p = m(φ0, φ1); + p.parallels = function(_) { + if (!arguments.length) return [(φ0 / π) * 180, (φ1 / π) * 180]; + return m((φ0 = (_[0] * π) / 180), (φ1 = (_[1] * π) / 180)); + }; + return p; + } + function d3_geo_conicEqualArea(φ0, φ1) { + var sinφ0 = Math.sin(φ0), + n = (sinφ0 + Math.sin(φ1)) / 2, + C = 1 + sinφ0 * (2 * n - sinφ0), + ρ0 = Math.sqrt(C) / n; + function forward(λ, φ) { + var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n; + return [ρ * Math.sin((λ *= n)), ρ0 - ρ * Math.cos(λ)]; + } + forward.invert = function(x, y) { + var ρ0_y = ρ0 - y; + return [ + Math.atan2(x, ρ0_y) / n, + d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) + ]; + }; + return forward; + } + (d3.geo.conicEqualArea = function() { + return d3_geo_conic(d3_geo_conicEqualArea); + }).raw = d3_geo_conicEqualArea; + d3.geo.albers = function() { + return d3.geo + .conicEqualArea() + .rotate([96, 0]) + .center([-0.6, 38.7]) + .parallels([29.5, 45.5]) + .scale(1070); + }; + d3.geo.albersUsa = function() { + var lower48 = d3.geo.albers(); + var alaska = d3.geo + .conicEqualArea() + .rotate([154, 0]) + .center([-2, 58.5]) + .parallels([55, 65]); + var hawaii = d3.geo + .conicEqualArea() + .rotate([157, 0]) + .center([-3, 19.9]) + .parallels([8, 18]); + var point, + pointStream = { + point: function(x, y) { + point = [x, y]; + } + }, + lower48Point, + alaskaPoint, + hawaiiPoint; + function albersUsa(coordinates) { + var x = coordinates[0], + y = coordinates[1]; + point = null; + (lower48Point(x, y), point) || + (alaskaPoint(x, y), point) || + hawaiiPoint(x, y); + return point; + } + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), + t = lower48.translate(), + x = (coordinates[0] - t[0]) / k, + y = (coordinates[1] - t[1]) / k; + return (y >= 0.12 && y < 0.234 && x >= -0.425 && x < -0.214 + ? alaska + : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 + ? hawaii + : lower48 + ).invert(coordinates); + }; + albersUsa.stream = function(stream) { + var lower48Stream = lower48.stream(stream), + alaskaStream = alaska.stream(stream), + hawaiiStream = hawaii.stream(stream); + return { + point: function(x, y) { + lower48Stream.point(x, y); + alaskaStream.point(x, y); + hawaiiStream.point(x, y); + }, + sphere: function() { + lower48Stream.sphere(); + alaskaStream.sphere(); + hawaiiStream.sphere(); + }, + lineStart: function() { + lower48Stream.lineStart(); + alaskaStream.lineStart(); + hawaiiStream.lineStart(); + }, + lineEnd: function() { + lower48Stream.lineEnd(); + alaskaStream.lineEnd(); + hawaiiStream.lineEnd(); + }, + polygonStart: function() { + lower48Stream.polygonStart(); + alaskaStream.polygonStart(); + hawaiiStream.polygonStart(); + }, + polygonEnd: function() { + lower48Stream.polygonEnd(); + alaskaStream.polygonEnd(); + hawaiiStream.polygonEnd(); + } + }; + }; + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_); + alaska.precision(_); + hawaii.precision(_); + return albersUsa; + }; + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_); + alaska.scale(_ * 0.35); + hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), + x = +_[0], + y = +_[1]; + lower48Point = lower48 + .translate(_) + .clipExtent([ + [x - 0.455 * k, y - 0.238 * k], + [x + 0.455 * k, y + 0.238 * k] + ]) + .stream(pointStream).point; + alaskaPoint = alaska + .translate([x - 0.307 * k, y + 0.201 * k]) + .clipExtent([ + [x - 0.425 * k + ε, y + 0.12 * k + ε], + [x - 0.214 * k - ε, y + 0.234 * k - ε] + ]) + .stream(pointStream).point; + hawaiiPoint = hawaii + .translate([x - 0.205 * k, y + 0.212 * k]) + .clipExtent([ + [x - 0.214 * k + ε, y + 0.166 * k + ε], + [x - 0.115 * k - ε, y + 0.234 * k - ε] + ]) + .stream(pointStream).point; + return albersUsa; + }; + return albersUsa.scale(1070); + }; + var d3_geo_pathAreaSum, + d3_geo_pathAreaPolygon, + d3_geo_pathArea = { + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: function() { + d3_geo_pathAreaPolygon = 0; + d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart; + }, + polygonEnd: function() { + d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop; + d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2); + } + }; + function d3_geo_pathAreaRingStart() { + var x00, y00, x0, y0; + d3_geo_pathArea.point = function(x, y) { + d3_geo_pathArea.point = nextPoint; + (x00 = x0 = x), (y00 = y0 = y); + }; + function nextPoint(x, y) { + d3_geo_pathAreaPolygon += y0 * x - x0 * y; + (x0 = x), (y0 = y); + } + d3_geo_pathArea.lineEnd = function() { + nextPoint(x00, y00); + }; + } + var d3_geo_pathBoundsX0, + d3_geo_pathBoundsY0, + d3_geo_pathBoundsX1, + d3_geo_pathBoundsY1; + var d3_geo_pathBounds = { + point: d3_geo_pathBoundsPoint, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_pathBoundsPoint(x, y) { + if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x; + if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x; + if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y; + if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y; + } + function d3_geo_pathBuffer() { + var pointCircle = d3_geo_pathBufferCircle(4.5), + buffer = []; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointCircle = d3_geo_pathBufferCircle(_); + return stream; + }, + result: function() { + if (buffer.length) { + var result = buffer.join(''); + buffer = []; + return result; + } + } + }; + function point(x, y) { + buffer.push('M', x, ',', y, pointCircle); + } + function pointLineStart(x, y) { + buffer.push('M', x, ',', y); + stream.point = pointLine; + } + function pointLine(x, y) { + buffer.push('L', x, ',', y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + buffer.push('Z'); + } + return stream; + } + function d3_geo_pathBufferCircle(radius) { + return ( + 'm0,' + + radius + + 'a' + + radius + + ',' + + radius + + ' 0 1,1 0,' + + -2 * radius + + 'a' + + radius + + ',' + + radius + + ' 0 1,1 0,' + + 2 * radius + + 'z' + ); + } + var d3_geo_pathCentroid = { + point: d3_geo_pathCentroidPoint, + lineStart: d3_geo_pathCentroidLineStart, + lineEnd: d3_geo_pathCentroidLineEnd, + polygonStart: function() { + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart; + }, + polygonEnd: function() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart; + d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd; + } + }; + function d3_geo_pathCentroidPoint(x, y) { + d3_geo_centroidX0 += x; + d3_geo_centroidY0 += y; + ++d3_geo_centroidZ0; + } + function d3_geo_pathCentroidLineStart() { + var x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint((x0 = x), (y0 = y)); + }; + function nextPoint(x, y) { + var dx = x - x0, + dy = y - y0, + z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += (z * (x0 + x)) / 2; + d3_geo_centroidY1 += (z * (y0 + y)) / 2; + d3_geo_centroidZ1 += z; + d3_geo_pathCentroidPoint((x0 = x), (y0 = y)); + } + } + function d3_geo_pathCentroidLineEnd() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + } + function d3_geo_pathCentroidRingStart() { + var x00, y00, x0, y0; + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint((x00 = x0 = x), (y00 = y0 = y)); + }; + function nextPoint(x, y) { + var dx = x - x0, + dy = y - y0, + z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += (z * (x0 + x)) / 2; + d3_geo_centroidY1 += (z * (y0 + y)) / 2; + d3_geo_centroidZ1 += z; + z = y0 * x - x0 * y; + d3_geo_centroidX2 += z * (x0 + x); + d3_geo_centroidY2 += z * (y0 + y); + d3_geo_centroidZ2 += z * 3; + d3_geo_pathCentroidPoint((x0 = x), (y0 = y)); + } + d3_geo_pathCentroid.lineEnd = function() { + nextPoint(x00, y00); + }; + } + function d3_geo_pathContext(context) { + var pointRadius = 4.5; + var stream = { + point: point, + lineStart: function() { + stream.point = pointLineStart; + }, + lineEnd: lineEnd, + polygonStart: function() { + stream.lineEnd = lineEndPolygon; + }, + polygonEnd: function() { + stream.lineEnd = lineEnd; + stream.point = point; + }, + pointRadius: function(_) { + pointRadius = _; + return stream; + }, + result: d3_noop + }; + function point(x, y) { + context.moveTo(x + pointRadius, y); + context.arc(x, y, pointRadius, 0, τ); + } + function pointLineStart(x, y) { + context.moveTo(x, y); + stream.point = pointLine; + } + function pointLine(x, y) { + context.lineTo(x, y); + } + function lineEnd() { + stream.point = point; + } + function lineEndPolygon() { + context.closePath(); + } + return stream; + } + function d3_geo_resample(project) { + var δ2 = 0.5, + cosMinDistance = Math.cos(30 * d3_radians), + maxDepth = 16; + function resample(stream) { + return (maxDepth ? resampleRecursive : resampleNone)(stream); + } + function resampleNone(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + }); + } + function resampleRecursive(stream) { + var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0; + var resample = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + stream.polygonStart(); + resample.lineStart = ringStart; + }, + polygonEnd: function() { + stream.polygonEnd(); + resample.lineStart = lineStart; + } + }; + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + function lineStart() { + x0 = NaN; + resample.point = linePoint; + stream.lineStart(); + } + function linePoint(λ, φ) { + var c = d3_geo_cartesian([λ, φ]), + p = project(λ, φ); + resampleLineTo( + x0, + y0, + λ0, + a0, + b0, + c0, + (x0 = p[0]), + (y0 = p[1]), + (λ0 = λ), + (a0 = c[0]), + (b0 = c[1]), + (c0 = c[2]), + maxDepth, + stream + ); + stream.point(x0, y0); + } + function lineEnd() { + resample.point = point; + stream.lineEnd(); + } + function ringStart() { + lineStart(); + resample.point = ringPoint; + resample.lineEnd = ringEnd; + } + function ringPoint(λ, φ) { + linePoint((λ00 = λ), (φ00 = φ)), + (x00 = x0), + (y00 = y0), + (a00 = a0), + (b00 = b0), + (c00 = c0); + resample.point = linePoint; + } + function ringEnd() { + resampleLineTo( + x0, + y0, + λ0, + a0, + b0, + c0, + x00, + y00, + λ00, + a00, + b00, + c00, + maxDepth, + stream + ); + resample.lineEnd = lineEnd; + lineEnd(); + } + return resample; + } + function resampleLineTo( + x0, + y0, + λ0, + a0, + b0, + c0, + x1, + y1, + λ1, + a1, + b1, + c1, + depth, + stream + ) { + var dx = x1 - x0, + dy = y1 - y0, + d2 = dx * dx + dy * dy; + if (d2 > 4 * δ2 && depth--) { + var a = a0 + a1, + b = b0 + b1, + c = c0 + c1, + m = Math.sqrt(a * a + b * b + c * c), + φ2 = Math.asin((c /= m)), + λ2 = + abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε + ? (λ0 + λ1) / 2 + : Math.atan2(b, a), + p = project(λ2, φ2), + x2 = p[0], + y2 = p[1], + dx2 = x2 - x0, + dy2 = y2 - y0, + dz = dy * dx2 - dx * dy2; + if ( + (dz * dz) / d2 > δ2 || + abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 || + a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance + ) { + resampleLineTo( + x0, + y0, + λ0, + a0, + b0, + c0, + x2, + y2, + λ2, + (a /= m), + (b /= m), + c, + depth, + stream + ); + stream.point(x2, y2); + resampleLineTo( + x2, + y2, + λ2, + a, + b, + c, + x1, + y1, + λ1, + a1, + b1, + c1, + depth, + stream + ); + } + } + } + resample.precision = function(_) { + if (!arguments.length) return Math.sqrt(δ2); + maxDepth = (δ2 = _ * _) > 0 && 16; + return resample; + }; + return resample; + } + d3.geo.path = function() { + var pointRadius = 4.5, + projection, + context, + projectStream, + contextStream, + cacheStream; + function path(object) { + if (object) { + if (typeof pointRadius === 'function') + contextStream.pointRadius(+pointRadius.apply(this, arguments)); + if (!cacheStream || !cacheStream.valid) + cacheStream = projectStream(contextStream); + d3.geo.stream(object, cacheStream); + } + return contextStream.result(); + } + path.area = function(object) { + d3_geo_pathAreaSum = 0; + d3.geo.stream(object, projectStream(d3_geo_pathArea)); + return d3_geo_pathAreaSum; + }; + path.centroid = function(object) { + d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, projectStream(d3_geo_pathCentroid)); + return d3_geo_centroidZ2 + ? [ + d3_geo_centroidX2 / d3_geo_centroidZ2, + d3_geo_centroidY2 / d3_geo_centroidZ2 + ] + : d3_geo_centroidZ1 + ? [ + d3_geo_centroidX1 / d3_geo_centroidZ1, + d3_geo_centroidY1 / d3_geo_centroidZ1 + ] + : d3_geo_centroidZ0 + ? [ + d3_geo_centroidX0 / d3_geo_centroidZ0, + d3_geo_centroidY0 / d3_geo_centroidZ0 + ] + : [NaN, NaN]; + }; + path.bounds = function(object) { + d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity); + d3.geo.stream(object, projectStream(d3_geo_pathBounds)); + return [ + [d3_geo_pathBoundsX0, d3_geo_pathBoundsY0], + [d3_geo_pathBoundsX1, d3_geo_pathBoundsY1] + ]; + }; + path.projection = function(_) { + if (!arguments.length) return projection; + projectStream = (projection = _) + ? _.stream || d3_geo_pathProjectStream(_) + : d3_identity; + return reset(); + }; + path.context = function(_) { + if (!arguments.length) return context; + contextStream = + (context = _) == null + ? new d3_geo_pathBuffer() + : new d3_geo_pathContext(_); + if (typeof pointRadius !== 'function') + contextStream.pointRadius(pointRadius); + return reset(); + }; + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = + typeof _ === 'function' ? _ : (contextStream.pointRadius(+_), +_); + return path; + }; + function reset() { + cacheStream = null; + return path; + } + return path.projection(d3.geo.albersUsa()).context(null); + }; + function d3_geo_pathProjectStream(project) { + var resample = d3_geo_resample(function(x, y) { + return project([x * d3_degrees, y * d3_degrees]); + }); + return function(stream) { + return d3_geo_projectionRadians(resample(stream)); + }; + } + d3.geo.transform = function(methods) { + return { + stream: function(stream) { + var transform = new d3_geo_transform(stream); + for (var k in methods) transform[k] = methods[k]; + return transform; + } + }; + }; + function d3_geo_transform(stream) { + this.stream = stream; + } + d3_geo_transform.prototype = { + point: function(x, y) { + this.stream.point(x, y); + }, + sphere: function() { + this.stream.sphere(); + }, + lineStart: function() { + this.stream.lineStart(); + }, + lineEnd: function() { + this.stream.lineEnd(); + }, + polygonStart: function() { + this.stream.polygonStart(); + }, + polygonEnd: function() { + this.stream.polygonEnd(); + } + }; + function d3_geo_transformPoint(stream, point) { + return { + point: point, + sphere: function() { + stream.sphere(); + }, + lineStart: function() { + stream.lineStart(); + }, + lineEnd: function() { + stream.lineEnd(); + }, + polygonStart: function() { + stream.polygonStart(); + }, + polygonEnd: function() { + stream.polygonEnd(); + } + }; + } + d3.geo.projection = d3_geo_projection; + d3.geo.projectionMutator = d3_geo_projectionMutator; + function d3_geo_projection(project) { + return d3_geo_projectionMutator(function() { + return project; + })(); + } + function d3_geo_projectionMutator(projectAt) { + var project, + rotate, + projectRotate, + projectResample = d3_geo_resample(function(x, y) { + x = project(x, y); + return [x[0] * k + δx, δy - x[1] * k]; + }), + k = 150, + x = 480, + y = 250, + λ = 0, + φ = 0, + δλ = 0, + δφ = 0, + δγ = 0, + δx, + δy, + preclip = d3_geo_clipAntimeridian, + postclip = d3_identity, + clipAngle = null, + clipExtent = null, + stream; + function projection(point) { + point = projectRotate(point[0] * d3_radians, point[1] * d3_radians); + return [point[0] * k + δx, δy - point[1] * k]; + } + function invert(point) { + point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k); + return point && [point[0] * d3_degrees, point[1] * d3_degrees]; + } + projection.stream = function(output) { + if (stream) stream.valid = false; + stream = d3_geo_projectionRadians( + preclip(rotate, projectResample(postclip(output))) + ); + stream.valid = true; + return stream; + }; + projection.clipAngle = function(_) { + if (!arguments.length) return clipAngle; + preclip = + _ == null + ? ((clipAngle = _), d3_geo_clipAntimeridian) + : d3_geo_clipCircle((clipAngle = +_) * d3_radians); + return invalidate(); + }; + projection.clipExtent = function(_) { + if (!arguments.length) return clipExtent; + clipExtent = _; + postclip = _ + ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) + : d3_identity; + return invalidate(); + }; + projection.scale = function(_) { + if (!arguments.length) return k; + k = +_; + return reset(); + }; + projection.translate = function(_) { + if (!arguments.length) return [x, y]; + x = +_[0]; + y = +_[1]; + return reset(); + }; + projection.center = function(_) { + if (!arguments.length) return [λ * d3_degrees, φ * d3_degrees]; + λ = (_[0] % 360) * d3_radians; + φ = (_[1] % 360) * d3_radians; + return reset(); + }; + projection.rotate = function(_) { + if (!arguments.length) + return [δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees]; + δλ = (_[0] % 360) * d3_radians; + δφ = (_[1] % 360) * d3_radians; + δγ = _.length > 2 ? (_[2] % 360) * d3_radians : 0; + return reset(); + }; + d3.rebind(projection, projectResample, 'precision'); + function reset() { + projectRotate = d3_geo_compose( + (rotate = d3_geo_rotation(δλ, δφ, δγ)), + project + ); + var center = project(λ, φ); + δx = x - center[0] * k; + δy = y + center[1] * k; + return invalidate(); + } + function invalidate() { + if (stream) (stream.valid = false), (stream = null); + return projection; + } + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return reset(); + }; + } + function d3_geo_projectionRadians(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + stream.point(x * d3_radians, y * d3_radians); + }); + } + function d3_geo_equirectangular(λ, φ) { + return [λ, φ]; + } + (d3.geo.equirectangular = function() { + return d3_geo_projection(d3_geo_equirectangular); + }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular; + d3.geo.rotation = function(rotate) { + rotate = d3_geo_rotation( + (rotate[0] % 360) * d3_radians, + rotate[1] * d3_radians, + rotate.length > 2 ? rotate[2] * d3_radians : 0 + ); + function forward(coordinates) { + coordinates = rotate( + coordinates[0] * d3_radians, + coordinates[1] * d3_radians + ); + return ( + (coordinates[0] *= d3_degrees), + (coordinates[1] *= d3_degrees), + coordinates + ); + } + forward.invert = function(coordinates) { + coordinates = rotate.invert( + coordinates[0] * d3_radians, + coordinates[1] * d3_radians + ); + return ( + (coordinates[0] *= d3_degrees), + (coordinates[1] *= d3_degrees), + coordinates + ); + }; + return forward; + }; + function d3_geo_identityRotation(λ, φ) { + return [λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ]; + } + d3_geo_identityRotation.invert = d3_geo_equirectangular; + function d3_geo_rotation(δλ, δφ, δγ) { + return δλ + ? δφ || δγ + ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) + : d3_geo_rotationλ(δλ) + : δφ || δγ + ? d3_geo_rotationφγ(δφ, δγ) + : d3_geo_identityRotation; + } + function d3_geo_forwardRotationλ(δλ) { + return function(λ, φ) { + return (λ += δλ), [λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ]; + }; + } + function d3_geo_rotationλ(δλ) { + var rotation = d3_geo_forwardRotationλ(δλ); + rotation.invert = d3_geo_forwardRotationλ(-δλ); + return rotation; + } + function d3_geo_rotationφγ(δφ, δγ) { + var cosδφ = Math.cos(δφ), + sinδφ = Math.sin(δφ), + cosδγ = Math.cos(δγ), + sinδγ = Math.sin(δγ); + function rotation(λ, φ) { + var cosφ = Math.cos(φ), + x = Math.cos(λ) * cosφ, + y = Math.sin(λ) * cosφ, + z = Math.sin(φ), + k = z * cosδφ + x * sinδφ; + return [ + Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), + d3_asin(k * cosδγ + y * sinδγ) + ]; + } + rotation.invert = function(λ, φ) { + var cosφ = Math.cos(φ), + x = Math.cos(λ) * cosφ, + y = Math.sin(λ) * cosφ, + z = Math.sin(φ), + k = z * cosδγ - y * sinδγ; + return [ + Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), + d3_asin(k * cosδφ - x * sinδφ) + ]; + }; + return rotation; + } + d3.geo.circle = function() { + var origin = [0, 0], + angle, + precision = 6, + interpolate; + function circle() { + var center = + typeof origin === 'function' ? origin.apply(this, arguments) : origin, + rotate = d3_geo_rotation( + -center[0] * d3_radians, + -center[1] * d3_radians, + 0 + ).invert, + ring = []; + interpolate(null, null, 1, { + point: function(x, y) { + ring.push((x = rotate(x, y))); + (x[0] *= d3_degrees), (x[1] *= d3_degrees); + } + }); + return { + type: 'Polygon', + coordinates: [ring] + }; + } + circle.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return circle; + }; + circle.angle = function(x) { + if (!arguments.length) return angle; + interpolate = d3_geo_circleInterpolate( + (angle = +x) * d3_radians, + precision * d3_radians + ); + return circle; + }; + circle.precision = function(_) { + if (!arguments.length) return precision; + interpolate = d3_geo_circleInterpolate( + angle * d3_radians, + (precision = +_) * d3_radians + ); + return circle; + }; + return circle.angle(90); + }; + function d3_geo_circleInterpolate(radius, precision) { + var cr = Math.cos(radius), + sr = Math.sin(radius); + return function(from, to, direction, listener) { + var step = direction * precision; + if (from != null) { + from = d3_geo_circleAngle(cr, from); + to = d3_geo_circleAngle(cr, to); + if (direction > 0 ? from < to : from > to) from += direction * τ; + } else { + from = radius + direction * τ; + to = radius - 0.5 * step; + } + for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) { + listener.point( + (point = d3_geo_spherical([ + cr, + -sr * Math.cos(t), + -sr * Math.sin(t) + ]))[0], + point[1] + ); + } + }; + } + function d3_geo_circleAngle(cr, point) { + var a = d3_geo_cartesian(point); + a[0] -= cr; + d3_geo_cartesianNormalize(a); + var angle = d3_acos(-a[1]); + return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI); + } + d3.geo.distance = function(a, b) { + var Δλ = (b[0] - a[0]) * d3_radians, + φ0 = a[1] * d3_radians, + φ1 = b[1] * d3_radians, + sinΔλ = Math.sin(Δλ), + cosΔλ = Math.cos(Δλ), + sinφ0 = Math.sin(φ0), + cosφ0 = Math.cos(φ0), + sinφ1 = Math.sin(φ1), + cosφ1 = Math.cos(φ1), + t; + return Math.atan2( + Math.sqrt( + (t = cosφ1 * sinΔλ) * t + + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t + ), + sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ + ); + }; + d3.geo.graticule = function() { + var x1, + x0, + X1, + X0, + y1, + y0, + Y1, + Y0, + dx = 10, + dy = dx, + DX = 90, + DY = 360, + x, + y, + X, + Y, + precision = 2.5; + function graticule() { + return { + type: 'MultiLineString', + coordinates: lines() + }; + } + function lines() { + return d3 + .range(Math.ceil(X0 / DX) * DX, X1, DX) + .map(X) + .concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)) + .concat( + d3 + .range(Math.ceil(x0 / dx) * dx, x1, dx) + .filter(function(x) { + return abs(x % DX) > ε; + }) + .map(x) + ) + .concat( + d3 + .range(Math.ceil(y0 / dy) * dy, y1, dy) + .filter(function(y) { + return abs(y % DY) > ε; + }) + .map(y) + ); + } + graticule.lines = function() { + return lines().map(function(coordinates) { + return { + type: 'LineString', + coordinates: coordinates + }; + }); + }; + graticule.outline = function() { + return { + type: 'Polygon', + coordinates: [ + X(X0).concat( + Y(Y1).slice(1), + X(X1) + .reverse() + .slice(1), + Y(Y0) + .reverse() + .slice(1) + ) + ] + }; + }; + graticule.extent = function(_) { + if (!arguments.length) return graticule.minorExtent(); + return graticule.majorExtent(_).minorExtent(_); + }; + graticule.majorExtent = function(_) { + if (!arguments.length) return [[X0, Y0], [X1, Y1]]; + (X0 = +_[0][0]), (X1 = +_[1][0]); + (Y0 = +_[0][1]), (Y1 = +_[1][1]); + if (X0 > X1) (_ = X0), (X0 = X1), (X1 = _); + if (Y0 > Y1) (_ = Y0), (Y0 = Y1), (Y1 = _); + return graticule.precision(precision); + }; + graticule.minorExtent = function(_) { + if (!arguments.length) return [[x0, y0], [x1, y1]]; + (x0 = +_[0][0]), (x1 = +_[1][0]); + (y0 = +_[0][1]), (y1 = +_[1][1]); + if (x0 > x1) (_ = x0), (x0 = x1), (x1 = _); + if (y0 > y1) (_ = y0), (y0 = y1), (y1 = _); + return graticule.precision(precision); + }; + graticule.step = function(_) { + if (!arguments.length) return graticule.minorStep(); + return graticule.majorStep(_).minorStep(_); + }; + graticule.majorStep = function(_) { + if (!arguments.length) return [DX, DY]; + (DX = +_[0]), (DY = +_[1]); + return graticule; + }; + graticule.minorStep = function(_) { + if (!arguments.length) return [dx, dy]; + (dx = +_[0]), (dy = +_[1]); + return graticule; + }; + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = d3_geo_graticuleX(y0, y1, 90); + y = d3_geo_graticuleY(x0, x1, precision); + X = d3_geo_graticuleX(Y0, Y1, 90); + Y = d3_geo_graticuleY(X0, X1, precision); + return graticule; + }; + return graticule + .majorExtent([[-180, -90 + ε], [180, 90 - ε]]) + .minorExtent([[-180, -80 - ε], [180, 80 + ε]]); + }; + function d3_geo_graticuleX(y0, y1, dy) { + var y = d3.range(y0, y1 - ε, dy).concat(y1); + return function(x) { + return y.map(function(y) { + return [x, y]; + }); + }; + } + function d3_geo_graticuleY(x0, x1, dx) { + var x = d3.range(x0, x1 - ε, dx).concat(x1); + return function(y) { + return x.map(function(x) { + return [x, y]; + }); + }; + } + function d3_source(d) { + return d.source; + } + function d3_target(d) { + return d.target; + } + d3.geo.greatArc = function() { + var source = d3_source, + source_, + target = d3_target, + target_; + function greatArc() { + return { + type: 'LineString', + coordinates: [ + source_ || source.apply(this, arguments), + target_ || target.apply(this, arguments) + ] + }; + } + greatArc.distance = function() { + return d3.geo.distance( + source_ || source.apply(this, arguments), + target_ || target.apply(this, arguments) + ); + }; + greatArc.source = function(_) { + if (!arguments.length) return source; + (source = _), (source_ = typeof _ === 'function' ? null : _); + return greatArc; + }; + greatArc.target = function(_) { + if (!arguments.length) return target; + (target = _), (target_ = typeof _ === 'function' ? null : _); + return greatArc; + }; + greatArc.precision = function() { + return arguments.length ? greatArc : 0; + }; + return greatArc; + }; + d3.geo.interpolate = function(source, target) { + return d3_geo_interpolate( + source[0] * d3_radians, + source[1] * d3_radians, + target[0] * d3_radians, + target[1] * d3_radians + ); + }; + function d3_geo_interpolate(x0, y0, x1, y1) { + var cy0 = Math.cos(y0), + sy0 = Math.sin(y0), + cy1 = Math.cos(y1), + sy1 = Math.sin(y1), + kx0 = cy0 * Math.cos(x0), + ky0 = cy0 * Math.sin(x0), + kx1 = cy1 * Math.cos(x1), + ky1 = cy1 * Math.sin(x1), + d = + 2 * + Math.asin( + Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0)) + ), + k = 1 / Math.sin(d); + var interpolate = d + ? function(t) { + var B = Math.sin((t *= d)) * k, + A = Math.sin(d - t) * k, + x = A * kx0 + B * kx1, + y = A * ky0 + B * ky1, + z = A * sy0 + B * sy1; + return [ + Math.atan2(y, x) * d3_degrees, + Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees + ]; + } + : function() { + return [x0 * d3_degrees, y0 * d3_degrees]; + }; + interpolate.distance = d; + return interpolate; + } + d3.geo.length = function(object) { + d3_geo_lengthSum = 0; + d3.geo.stream(object, d3_geo_length); + return d3_geo_lengthSum; + }; + var d3_geo_lengthSum; + var d3_geo_length = { + sphere: d3_noop, + point: d3_noop, + lineStart: d3_geo_lengthLineStart, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop + }; + function d3_geo_lengthLineStart() { + var λ0, sinφ0, cosφ0; + d3_geo_length.point = function(λ, φ) { + (λ0 = λ * d3_radians), + (sinφ0 = Math.sin((φ *= d3_radians))), + (cosφ0 = Math.cos(φ)); + d3_geo_length.point = nextPoint; + }; + d3_geo_length.lineEnd = function() { + d3_geo_length.point = d3_geo_length.lineEnd = d3_noop; + }; + function nextPoint(λ, φ) { + var sinφ = Math.sin((φ *= d3_radians)), + cosφ = Math.cos(φ), + t = abs((λ *= d3_radians) - λ0), + cosΔλ = Math.cos(t); + d3_geo_lengthSum += Math.atan2( + Math.sqrt( + (t = cosφ * Math.sin(t)) * t + + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t + ), + sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ + ); + (λ0 = λ), (sinφ0 = sinφ), (cosφ0 = cosφ); + } + } + function d3_geo_azimuthal(scale, angle) { + function azimuthal(λ, φ) { + var cosλ = Math.cos(λ), + cosφ = Math.cos(φ), + k = scale(cosλ * cosφ); + return [k * cosφ * Math.sin(λ), k * Math.sin(φ)]; + } + azimuthal.invert = function(x, y) { + var ρ = Math.sqrt(x * x + y * y), + c = angle(ρ), + sinc = Math.sin(c), + cosc = Math.cos(c); + return [Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && (y * sinc) / ρ)]; + }; + return azimuthal; + } + var d3_geo_azimuthalEqualArea = d3_geo_azimuthal( + function(cosλcosφ) { + return Math.sqrt(2 / (1 + cosλcosφ)); + }, + function(ρ) { + return 2 * Math.asin(ρ / 2); + } + ); + (d3.geo.azimuthalEqualArea = function() { + return d3_geo_projection(d3_geo_azimuthalEqualArea); + }).raw = d3_geo_azimuthalEqualArea; + var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) { + var c = Math.acos(cosλcosφ); + return c && c / Math.sin(c); + }, d3_identity); + (d3.geo.azimuthalEquidistant = function() { + return d3_geo_projection(d3_geo_azimuthalEquidistant); + }).raw = d3_geo_azimuthalEquidistant; + function d3_geo_conicConformal(φ0, φ1) { + var cosφ0 = Math.cos(φ0), + t = function(φ) { + return Math.tan(π / 4 + φ / 2); + }, + n = + φ0 === φ1 + ? Math.sin(φ0) + : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), + F = (cosφ0 * Math.pow(t(φ0), n)) / n; + if (!n) return d3_geo_mercator; + function forward(λ, φ) { + if (F > 0) { + if (φ < -halfπ + ε) φ = -halfπ + ε; + } else { + if (φ > halfπ - ε) φ = halfπ - ε; + } + var ρ = F / Math.pow(t(φ), n); + return [ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ)]; + } + forward.invert = function(x, y) { + var ρ0_y = F - y, + ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y); + return [ + Math.atan2(x, ρ0_y) / n, + 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ + ]; + }; + return forward; + } + (d3.geo.conicConformal = function() { + return d3_geo_conic(d3_geo_conicConformal); + }).raw = d3_geo_conicConformal; + function d3_geo_conicEquidistant(φ0, φ1) { + var cosφ0 = Math.cos(φ0), + n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), + G = cosφ0 / n + φ0; + if (abs(n) < ε) return d3_geo_equirectangular; + function forward(λ, φ) { + var ρ = G - φ; + return [ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ)]; + } + forward.invert = function(x, y) { + var ρ0_y = G - y; + return [ + Math.atan2(x, ρ0_y) / n, + G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) + ]; + }; + return forward; + } + (d3.geo.conicEquidistant = function() { + return d3_geo_conic(d3_geo_conicEquidistant); + }).raw = d3_geo_conicEquidistant; + var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) { + return 1 / cosλcosφ; + }, Math.atan); + (d3.geo.gnomonic = function() { + return d3_geo_projection(d3_geo_gnomonic); + }).raw = d3_geo_gnomonic; + function d3_geo_mercator(λ, φ) { + return [λ, Math.log(Math.tan(π / 4 + φ / 2))]; + } + d3_geo_mercator.invert = function(x, y) { + return [x, 2 * Math.atan(Math.exp(y)) - halfπ]; + }; + function d3_geo_mercatorProjection(project) { + var m = d3_geo_projection(project), + scale = m.scale, + translate = m.translate, + clipExtent = m.clipExtent, + clipAuto; + m.scale = function() { + var v = scale.apply(m, arguments); + return v === m ? (clipAuto ? m.clipExtent(null) : m) : v; + }; + m.translate = function() { + var v = translate.apply(m, arguments); + return v === m ? (clipAuto ? m.clipExtent(null) : m) : v; + }; + m.clipExtent = function(_) { + var v = clipExtent.apply(m, arguments); + if (v === m) { + if ((clipAuto = _ == null)) { + var k = π * scale(), + t = translate(); + clipExtent([[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]]); + } + } else if (clipAuto) { + v = null; + } + return v; + }; + return m.clipExtent(null); + } + (d3.geo.mercator = function() { + return d3_geo_mercatorProjection(d3_geo_mercator); + }).raw = d3_geo_mercator; + var d3_geo_orthographic = d3_geo_azimuthal(function() { + return 1; + }, Math.asin); + (d3.geo.orthographic = function() { + return d3_geo_projection(d3_geo_orthographic); + }).raw = d3_geo_orthographic; + var d3_geo_stereographic = d3_geo_azimuthal( + function(cosλcosφ) { + return 1 / (1 + cosλcosφ); + }, + function(ρ) { + return 2 * Math.atan(ρ); + } + ); + (d3.geo.stereographic = function() { + return d3_geo_projection(d3_geo_stereographic); + }).raw = d3_geo_stereographic; + function d3_geo_transverseMercator(λ, φ) { + return [Math.log(Math.tan(π / 4 + φ / 2)), -λ]; + } + d3_geo_transverseMercator.invert = function(x, y) { + return [-y, 2 * Math.atan(Math.exp(x)) - halfπ]; + }; + (d3.geo.transverseMercator = function() { + var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), + center = projection.center, + rotate = projection.rotate; + projection.center = function(_) { + return _ ? center([-_[1], _[0]]) : ((_ = center()), [_[1], -_[0]]); + }; + projection.rotate = function(_) { + return _ + ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) + : ((_ = rotate()), [_[0], _[1], _[2] - 90]); + }; + return rotate([0, 0, 90]); + }).raw = d3_geo_transverseMercator; + d3.geom = {}; + function d3_geom_pointX(d) { + return d[0]; + } + function d3_geom_pointY(d) { + return d[1]; + } + d3.geom.hull = function(vertices) { + var x = d3_geom_pointX, + y = d3_geom_pointY; + if (arguments.length) return hull(vertices); + function hull(data) { + if (data.length < 3) return []; + var fx = d3_functor(x), + fy = d3_functor(y), + i, + n = data.length, + points = [], + flippedPoints = []; + for (i = 0; i < n; i++) { + points.push([ + +fx.call(this, data[i], i), + +fy.call(this, data[i], i), + i + ]); + } + points.sort(d3_geom_hullOrder); + for (i = 0; i < n; i++) flippedPoints.push([points[i][0], -points[i][1]]); + var upper = d3_geom_hullUpper(points), + lower = d3_geom_hullUpper(flippedPoints); + var skipLeft = lower[0] === upper[0], + skipRight = lower[lower.length - 1] === upper[upper.length - 1], + polygon = []; + for (i = upper.length - 1; i >= 0; --i) + polygon.push(data[points[upper[i]][2]]); + for (i = +skipLeft; i < lower.length - skipRight; ++i) + polygon.push(data[points[lower[i]][2]]); + return polygon; + } + hull.x = function(_) { + return arguments.length ? ((x = _), hull) : x; + }; + hull.y = function(_) { + return arguments.length ? ((y = _), hull) : y; + }; + return hull; + }; + function d3_geom_hullUpper(points) { + var n = points.length, + hull = [0, 1], + hs = 2; + for (var i = 2; i < n; i++) { + while ( + hs > 1 && + d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0 + ) + --hs; + hull[hs++] = i; + } + return hull.slice(0, hs); + } + function d3_geom_hullOrder(a, b) { + return a[0] - b[0] || a[1] - b[1]; + } + d3.geom.polygon = function(coordinates) { + d3_subclass(coordinates, d3_geom_polygonPrototype); + return coordinates; + }; + var d3_geom_polygonPrototype = (d3.geom.polygon.prototype = []); + d3_geom_polygonPrototype.area = function() { + var i = -1, + n = this.length, + a, + b = this[n - 1], + area = 0; + while (++i < n) { + a = b; + b = this[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + return area * 0.5; + }; + d3_geom_polygonPrototype.centroid = function(k) { + var i = -1, + n = this.length, + x = 0, + y = 0, + a, + b = this[n - 1], + c; + if (!arguments.length) k = -1 / (6 * this.area()); + while (++i < n) { + a = b; + b = this[i]; + c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + return [x * k, y * k]; + }; + d3_geom_polygonPrototype.clip = function(subject) { + var input, + closed = d3_geom_polygonClosed(subject), + i = -1, + n = this.length - d3_geom_polygonClosed(this), + j, + m, + a = this[n - 1], + b, + c, + d; + while (++i < n) { + input = subject.slice(); + subject.length = 0; + b = this[i]; + c = input[(m = input.length - closed) - 1]; + j = -1; + while (++j < m) { + d = input[j]; + if (d3_geom_polygonInside(d, a, b)) { + if (!d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + subject.push(d); + } else if (d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + c = d; + } + if (closed) subject.push(subject[0]); + a = b; + } + return subject; + }; + function d3_geom_polygonInside(p, a, b) { + return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); + } + function d3_geom_polygonIntersect(c, d, a, b) { + var x1 = c[0], + x3 = a[0], + x21 = d[0] - x1, + x43 = b[0] - x3, + y1 = c[1], + y3 = a[1], + y21 = d[1] - y1, + y43 = b[1] - y3, + ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21); + return [x1 + ua * x21, y1 + ua * y21]; + } + function d3_geom_polygonClosed(coordinates) { + var a = coordinates[0], + b = coordinates[coordinates.length - 1]; + return !(a[0] - b[0] || a[1] - b[1]); + } + var d3_geom_voronoiEdges, + d3_geom_voronoiCells, + d3_geom_voronoiBeaches, + d3_geom_voronoiBeachPool = [], + d3_geom_voronoiFirstCircle, + d3_geom_voronoiCircles, + d3_geom_voronoiCirclePool = []; + function d3_geom_voronoiBeach() { + d3_geom_voronoiRedBlackNode(this); + this.edge = this.site = this.circle = null; + } + function d3_geom_voronoiCreateBeach(site) { + var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach(); + beach.site = site; + return beach; + } + function d3_geom_voronoiDetachBeach(beach) { + d3_geom_voronoiDetachCircle(beach); + d3_geom_voronoiBeaches.remove(beach); + d3_geom_voronoiBeachPool.push(beach); + d3_geom_voronoiRedBlackNode(beach); + } + function d3_geom_voronoiRemoveBeach(beach) { + var circle = beach.circle, + x = circle.x, + y = circle.cy, + vertex = { + x: x, + y: y + }, + previous = beach.P, + next = beach.N, + disappearing = [beach]; + d3_geom_voronoiDetachBeach(beach); + var lArc = previous; + while ( + lArc.circle && + abs(x - lArc.circle.x) < ε && + abs(y - lArc.circle.cy) < ε + ) { + previous = lArc.P; + disappearing.unshift(lArc); + d3_geom_voronoiDetachBeach(lArc); + lArc = previous; + } + disappearing.unshift(lArc); + d3_geom_voronoiDetachCircle(lArc); + var rArc = next; + while ( + rArc.circle && + abs(x - rArc.circle.x) < ε && + abs(y - rArc.circle.cy) < ε + ) { + next = rArc.N; + disappearing.push(rArc); + d3_geom_voronoiDetachBeach(rArc); + rArc = next; + } + disappearing.push(rArc); + d3_geom_voronoiDetachCircle(rArc); + var nArcs = disappearing.length, + iArc; + for (iArc = 1; iArc < nArcs; ++iArc) { + rArc = disappearing[iArc]; + lArc = disappearing[iArc - 1]; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex); + } + lArc = disappearing[0]; + rArc = disappearing[nArcs - 1]; + rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiAddBeach(site) { + var x = site.x, + directrix = site.y, + lArc, + rArc, + dxl, + dxr, + node = d3_geom_voronoiBeaches._; + while (node) { + dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x; + if (dxl > ε) node = node.L; + else { + dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix); + if (dxr > ε) { + if (!node.R) { + lArc = node; + break; + } + node = node.R; + } else { + if (dxl > -ε) { + lArc = node.P; + rArc = node; + } else if (dxr > -ε) { + lArc = node; + rArc = node.N; + } else { + lArc = rArc = node; + } + break; + } + } + } + var newArc = d3_geom_voronoiCreateBeach(site); + d3_geom_voronoiBeaches.insert(lArc, newArc); + if (!lArc && !rArc) return; + if (lArc === rArc) { + d3_geom_voronoiDetachCircle(lArc); + rArc = d3_geom_voronoiCreateBeach(lArc.site); + d3_geom_voronoiBeaches.insert(newArc, rArc); + newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge( + lArc.site, + newArc.site + ); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + return; + } + if (!rArc) { + newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + return; + } + d3_geom_voronoiDetachCircle(lArc); + d3_geom_voronoiDetachCircle(rArc); + var lSite = lArc.site, + ax = lSite.x, + ay = lSite.y, + bx = site.x - ax, + by = site.y - ay, + rSite = rArc.site, + cx = rSite.x - ax, + cy = rSite.y - ay, + d = 2 * (bx * cy - by * cx), + hb = bx * bx + by * by, + hc = cx * cx + cy * cy, + vertex = { + x: (cy * hb - by * hc) / d + ax, + y: (bx * hc - cx * hb) / d + ay + }; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex); + newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex); + rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + } + function d3_geom_voronoiLeftBreakPoint(arc, directrix) { + var site = arc.site, + rfocx = site.x, + rfocy = site.y, + pby2 = rfocy - directrix; + if (!pby2) return rfocx; + var lArc = arc.P; + if (!lArc) return -Infinity; + site = lArc.site; + var lfocx = site.x, + lfocy = site.y, + plby2 = lfocy - directrix; + if (!plby2) return lfocx; + var hl = lfocx - rfocx, + aby2 = 1 / pby2 - 1 / plby2, + b = hl / plby2; + if (aby2) + return ( + (-b + + Math.sqrt( + b * b - + 2 * + aby2 * + ((hl * hl) / (-2 * plby2) - + lfocy + + plby2 / 2 + + rfocy - + pby2 / 2) + )) / + aby2 + + rfocx + ); + return (rfocx + lfocx) / 2; + } + function d3_geom_voronoiRightBreakPoint(arc, directrix) { + var rArc = arc.N; + if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix); + var site = arc.site; + return site.y === directrix ? site.x : Infinity; + } + function d3_geom_voronoiCell(site) { + this.site = site; + this.edges = []; + } + d3_geom_voronoiCell.prototype.prepare = function() { + var halfEdges = this.edges, + iHalfEdge = halfEdges.length, + edge; + while (iHalfEdge--) { + edge = halfEdges[iHalfEdge].edge; + if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1); + } + halfEdges.sort(d3_geom_voronoiHalfEdgeOrder); + return halfEdges.length; + }; + function d3_geom_voronoiCloseCells(extent) { + var x0 = extent[0][0], + x1 = extent[1][0], + y0 = extent[0][1], + y1 = extent[1][1], + x2, + y2, + x3, + y3, + cells = d3_geom_voronoiCells, + iCell = cells.length, + cell, + iHalfEdge, + halfEdges, + nHalfEdges, + start, + end; + while (iCell--) { + cell = cells[iCell]; + if (!cell || !cell.prepare()) continue; + halfEdges = cell.edges; + nHalfEdges = halfEdges.length; + iHalfEdge = 0; + while (iHalfEdge < nHalfEdges) { + (end = halfEdges[iHalfEdge].end()), (x3 = end.x), (y3 = end.y); + (start = halfEdges[++iHalfEdge % nHalfEdges].start()), + (x2 = start.x), + (y2 = start.y); + if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) { + halfEdges.splice( + iHalfEdge, + 0, + new d3_geom_voronoiHalfEdge( + d3_geom_voronoiCreateBorderEdge( + cell.site, + end, + abs(x3 - x0) < ε && y1 - y3 > ε + ? { + x: x0, + y: abs(x2 - x0) < ε ? y2 : y1 + } + : abs(y3 - y1) < ε && x1 - x3 > ε + ? { + x: abs(y2 - y1) < ε ? x2 : x1, + y: y1 + } + : abs(x3 - x1) < ε && y3 - y0 > ε + ? { + x: x1, + y: abs(x2 - x1) < ε ? y2 : y0 + } + : abs(y3 - y0) < ε && x3 - x0 > ε + ? { + x: abs(y2 - y0) < ε ? x2 : x0, + y: y0 + } + : null + ), + cell.site, + null + ) + ); + ++nHalfEdges; + } + } + } + } + function d3_geom_voronoiHalfEdgeOrder(a, b) { + return b.angle - a.angle; + } + function d3_geom_voronoiCircle() { + d3_geom_voronoiRedBlackNode(this); + this.x = this.y = this.arc = this.site = this.cy = null; + } + function d3_geom_voronoiAttachCircle(arc) { + var lArc = arc.P, + rArc = arc.N; + if (!lArc || !rArc) return; + var lSite = lArc.site, + cSite = arc.site, + rSite = rArc.site; + if (lSite === rSite) return; + var bx = cSite.x, + by = cSite.y, + ax = lSite.x - bx, + ay = lSite.y - by, + cx = rSite.x - bx, + cy = rSite.y - by; + var d = 2 * (ax * cy - ay * cx); + if (d >= -ε2) return; + var ha = ax * ax + ay * ay, + hc = cx * cx + cy * cy, + x = (cy * ha - ay * hc) / d, + y = (ax * hc - cx * ha) / d, + cy = y + by; + var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle(); + circle.arc = arc; + circle.site = cSite; + circle.x = x + bx; + circle.y = cy + Math.sqrt(x * x + y * y); + circle.cy = cy; + arc.circle = circle; + var before = null, + node = d3_geom_voronoiCircles._; + while (node) { + if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) { + if (node.L) node = node.L; + else { + before = node.P; + break; + } + } else { + if (node.R) node = node.R; + else { + before = node; + break; + } + } + } + d3_geom_voronoiCircles.insert(before, circle); + if (!before) d3_geom_voronoiFirstCircle = circle; + } + function d3_geom_voronoiDetachCircle(arc) { + var circle = arc.circle; + if (circle) { + if (!circle.P) d3_geom_voronoiFirstCircle = circle.N; + d3_geom_voronoiCircles.remove(circle); + d3_geom_voronoiCirclePool.push(circle); + d3_geom_voronoiRedBlackNode(circle); + arc.circle = null; + } + } + function d3_geom_voronoiClipEdges(extent) { + var edges = d3_geom_voronoiEdges, + clip = d3_geom_clipLine( + extent[0][0], + extent[0][1], + extent[1][0], + extent[1][1] + ), + i = edges.length, + e; + while (i--) { + e = edges[i]; + if ( + !d3_geom_voronoiConnectEdge(e, extent) || + !clip(e) || + (abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) + ) { + e.a = e.b = null; + edges.splice(i, 1); + } + } + } + function d3_geom_voronoiConnectEdge(edge, extent) { + var vb = edge.b; + if (vb) return true; + var va = edge.a, + x0 = extent[0][0], + x1 = extent[1][0], + y0 = extent[0][1], + y1 = extent[1][1], + lSite = edge.l, + rSite = edge.r, + lx = lSite.x, + ly = lSite.y, + rx = rSite.x, + ry = rSite.y, + fx = (lx + rx) / 2, + fy = (ly + ry) / 2, + fm, + fb; + if (ry === ly) { + if (fx < x0 || fx >= x1) return; + if (lx > rx) { + if (!va) + va = { + x: fx, + y: y0 + }; + else if (va.y >= y1) return; + vb = { + x: fx, + y: y1 + }; + } else { + if (!va) + va = { + x: fx, + y: y1 + }; + else if (va.y < y0) return; + vb = { + x: fx, + y: y0 + }; + } + } else { + fm = (lx - rx) / (ry - ly); + fb = fy - fm * fx; + if (fm < -1 || fm > 1) { + if (lx > rx) { + if (!va) + va = { + x: (y0 - fb) / fm, + y: y0 + }; + else if (va.y >= y1) return; + vb = { + x: (y1 - fb) / fm, + y: y1 + }; + } else { + if (!va) + va = { + x: (y1 - fb) / fm, + y: y1 + }; + else if (va.y < y0) return; + vb = { + x: (y0 - fb) / fm, + y: y0 + }; + } + } else { + if (ly < ry) { + if (!va) + va = { + x: x0, + y: fm * x0 + fb + }; + else if (va.x >= x1) return; + vb = { + x: x1, + y: fm * x1 + fb + }; + } else { + if (!va) + va = { + x: x1, + y: fm * x1 + fb + }; + else if (va.x < x0) return; + vb = { + x: x0, + y: fm * x0 + fb + }; + } + } + } + edge.a = va; + edge.b = vb; + return true; + } + function d3_geom_voronoiEdge(lSite, rSite) { + this.l = lSite; + this.r = rSite; + this.a = this.b = null; + } + function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, rSite); + d3_geom_voronoiEdges.push(edge); + if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va); + if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb); + d3_geom_voronoiCells[lSite.i].edges.push( + new d3_geom_voronoiHalfEdge(edge, lSite, rSite) + ); + d3_geom_voronoiCells[rSite.i].edges.push( + new d3_geom_voronoiHalfEdge(edge, rSite, lSite) + ); + return edge; + } + function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, null); + edge.a = va; + edge.b = vb; + d3_geom_voronoiEdges.push(edge); + return edge; + } + function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) { + if (!edge.a && !edge.b) { + edge.a = vertex; + edge.l = lSite; + edge.r = rSite; + } else if (edge.l === rSite) { + edge.b = vertex; + } else { + edge.a = vertex; + } + } + function d3_geom_voronoiHalfEdge(edge, lSite, rSite) { + var va = edge.a, + vb = edge.b; + this.edge = edge; + this.site = lSite; + this.angle = rSite + ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) + : edge.l === lSite + ? Math.atan2(vb.x - va.x, va.y - vb.y) + : Math.atan2(va.x - vb.x, vb.y - va.y); + } + d3_geom_voronoiHalfEdge.prototype = { + start: function() { + return this.edge.l === this.site ? this.edge.a : this.edge.b; + }, + end: function() { + return this.edge.l === this.site ? this.edge.b : this.edge.a; + } + }; + function d3_geom_voronoiRedBlackTree() { + this._ = null; + } + function d3_geom_voronoiRedBlackNode(node) { + node.U = node.C = node.L = node.R = node.P = node.N = null; + } + d3_geom_voronoiRedBlackTree.prototype = { + insert: function(after, node) { + var parent, grandpa, uncle; + if (after) { + node.P = after; + node.N = after.N; + if (after.N) after.N.P = node; + after.N = node; + if (after.R) { + after = after.R; + while (after.L) after = after.L; + after.L = node; + } else { + after.R = node; + } + parent = after; + } else if (this._) { + after = d3_geom_voronoiRedBlackFirst(this._); + node.P = null; + node.N = after; + after.P = after.L = node; + parent = after; + } else { + node.P = node.N = null; + this._ = node; + parent = null; + } + node.L = node.R = null; + node.U = parent; + node.C = true; + after = node; + while (parent && parent.C) { + grandpa = parent.U; + if (parent === grandpa.L) { + uncle = grandpa.R; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.R) { + d3_geom_voronoiRedBlackRotateLeft(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateRight(this, grandpa); + } + } else { + uncle = grandpa.L; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.L) { + d3_geom_voronoiRedBlackRotateRight(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, grandpa); + } + } + parent = after.U; + } + this._.C = false; + }, + remove: function(node) { + if (node.N) node.N.P = node.P; + if (node.P) node.P.N = node.N; + node.N = node.P = null; + var parent = node.U, + sibling, + left = node.L, + right = node.R, + next, + red; + if (!left) next = right; + else if (!right) next = left; + else next = d3_geom_voronoiRedBlackFirst(right); + if (parent) { + if (parent.L === node) parent.L = next; + else parent.R = next; + } else { + this._ = next; + } + if (left && right) { + red = next.C; + next.C = node.C; + next.L = left; + left.U = next; + if (next !== right) { + parent = next.U; + next.U = node.U; + node = next.R; + parent.L = node; + next.R = right; + right.U = next; + } else { + next.U = parent; + parent = next; + node = next.R; + } + } else { + red = node.C; + node = next; + } + if (node) node.U = parent; + if (red) return; + if (node && node.C) { + node.C = false; + return; + } + do { + if (node === this._) break; + if (node === parent.L) { + sibling = parent.R; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + sibling = parent.R; + } + if ((sibling.L && sibling.L.C) || (sibling.R && sibling.R.C)) { + if (!sibling.R || !sibling.R.C) { + sibling.L.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateRight(this, sibling); + sibling = parent.R; + } + sibling.C = parent.C; + parent.C = sibling.R.C = false; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + node = this._; + break; + } + } else { + sibling = parent.L; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateRight(this, parent); + sibling = parent.L; + } + if ((sibling.L && sibling.L.C) || (sibling.R && sibling.R.C)) { + if (!sibling.L || !sibling.L.C) { + sibling.R.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, sibling); + sibling = parent.L; + } + sibling.C = parent.C; + parent.C = sibling.L.C = false; + d3_geom_voronoiRedBlackRotateRight(this, parent); + node = this._; + break; + } + } + sibling.C = true; + node = parent; + parent = parent.U; + } while (!node.C); + if (node) node.C = false; + } + }; + function d3_geom_voronoiRedBlackRotateLeft(tree, node) { + var p = node, + q = node.R, + parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; + else parent.R = q; + } else { + tree._ = q; + } + q.U = parent; + p.U = q; + p.R = q.L; + if (p.R) p.R.U = p; + q.L = p; + } + function d3_geom_voronoiRedBlackRotateRight(tree, node) { + var p = node, + q = node.L, + parent = p.U; + if (parent) { + if (parent.L === p) parent.L = q; + else parent.R = q; + } else { + tree._ = q; + } + q.U = parent; + p.U = q; + p.L = q.R; + if (p.L) p.L.U = p; + q.R = p; + } + function d3_geom_voronoiRedBlackFirst(node) { + while (node.L) node = node.L; + return node; + } + function d3_geom_voronoi(sites, bbox) { + var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), + x0, + y0, + circle; + d3_geom_voronoiEdges = []; + d3_geom_voronoiCells = new Array(sites.length); + d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree(); + d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree(); + while (true) { + circle = d3_geom_voronoiFirstCircle; + if ( + site && + (!circle || + site.y < circle.y || + (site.y === circle.y && site.x < circle.x)) + ) { + if (site.x !== x0 || site.y !== y0) { + d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site); + d3_geom_voronoiAddBeach(site); + (x0 = site.x), (y0 = site.y); + } + site = sites.pop(); + } else if (circle) { + d3_geom_voronoiRemoveBeach(circle.arc); + } else { + break; + } + } + if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox); + var diagram = { + cells: d3_geom_voronoiCells, + edges: d3_geom_voronoiEdges + }; + d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null; + return diagram; + } + function d3_geom_voronoiVertexOrder(a, b) { + return b.y - a.y || b.x - a.x; + } + d3.geom.voronoi = function(points) { + var x = d3_geom_pointX, + y = d3_geom_pointY, + fx = x, + fy = y, + clipExtent = d3_geom_voronoiClipExtent; + if (points) return voronoi(points); + function voronoi(data) { + var polygons = new Array(data.length), + x0 = clipExtent[0][0], + y0 = clipExtent[0][1], + x1 = clipExtent[1][0], + y1 = clipExtent[1][1]; + d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) { + var edges = cell.edges, + site = cell.site, + polygon = (polygons[i] = edges.length + ? edges.map(function(e) { + var s = e.start(); + return [s.x, s.y]; + }) + : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 + ? [[x0, y1], [x1, y1], [x1, y0], [x0, y0]] + : []); + polygon.point = data[i]; + }); + return polygons; + } + function sites(data) { + return data.map(function(d, i) { + return { + x: Math.round(fx(d, i) / ε) * ε, + y: Math.round(fy(d, i) / ε) * ε, + i: i + }; + }); + } + voronoi.links = function(data) { + return d3_geom_voronoi(sites(data)) + .edges.filter(function(edge) { + return edge.l && edge.r; + }) + .map(function(edge) { + return { + source: data[edge.l.i], + target: data[edge.r.i] + }; + }); + }; + voronoi.triangles = function(data) { + var triangles = []; + d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) { + var site = cell.site, + edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), + j = -1, + m = edges.length, + e0, + s0, + e1 = edges[m - 1].edge, + s1 = e1.l === site ? e1.r : e1.l; + while (++j < m) { + e0 = e1; + s0 = s1; + e1 = edges[j].edge; + s1 = e1.l === site ? e1.r : e1.l; + if ( + i < s0.i && + i < s1.i && + d3_geom_voronoiTriangleArea(site, s0, s1) < 0 + ) { + triangles.push([data[i], data[s0.i], data[s1.i]]); + } + } + }); + return triangles; + }; + voronoi.x = function(_) { + return arguments.length ? ((fx = d3_functor((x = _))), voronoi) : x; + }; + voronoi.y = function(_) { + return arguments.length ? ((fy = d3_functor((y = _))), voronoi) : y; + }; + voronoi.clipExtent = function(_) { + if (!arguments.length) + return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent; + clipExtent = _ == null ? d3_geom_voronoiClipExtent : _; + return voronoi; + }; + voronoi.size = function(_) { + if (!arguments.length) + return clipExtent === d3_geom_voronoiClipExtent + ? null + : clipExtent && clipExtent[1]; + return voronoi.clipExtent(_ && [[0, 0], _]); + }; + return voronoi; + }; + var d3_geom_voronoiClipExtent = [[-1e6, -1e6], [1e6, 1e6]]; + function d3_geom_voronoiTriangleArea(a, b, c) { + return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y); + } + d3.geom.delaunay = function(vertices) { + return d3.geom.voronoi().triangles(vertices); + }; + d3.geom.quadtree = function(points, x1, y1, x2, y2) { + var x = d3_geom_pointX, + y = d3_geom_pointY, + compat; + if ((compat = arguments.length)) { + x = d3_geom_quadtreeCompatX; + y = d3_geom_quadtreeCompatY; + if (compat === 3) { + y2 = y1; + x2 = x1; + y1 = x1 = 0; + } + return quadtree(points); + } + function quadtree(data) { + var d, + fx = d3_functor(x), + fy = d3_functor(y), + xs, + ys, + i, + n, + x1_, + y1_, + x2_, + y2_; + if (x1 != null) { + (x1_ = x1), (y1_ = y1), (x2_ = x2), (y2_ = y2); + } else { + x2_ = y2_ = -(x1_ = y1_ = Infinity); + (xs = []), (ys = []); + n = data.length; + if (compat) + for (i = 0; i < n; ++i) { + d = data[i]; + if (d.x < x1_) x1_ = d.x; + if (d.y < y1_) y1_ = d.y; + if (d.x > x2_) x2_ = d.x; + if (d.y > y2_) y2_ = d.y; + xs.push(d.x); + ys.push(d.y); + } + else + for (i = 0; i < n; ++i) { + var x_ = +fx((d = data[i]), i), + y_ = +fy(d, i); + if (x_ < x1_) x1_ = x_; + if (y_ < y1_) y1_ = y_; + if (x_ > x2_) x2_ = x_; + if (y_ > y2_) y2_ = y_; + xs.push(x_); + ys.push(y_); + } + } + var dx = x2_ - x1_, + dy = y2_ - y1_; + if (dx > dy) y2_ = y1_ + dx; + else x2_ = x1_ + dy; + function insert(n, d, x, y, x1, y1, x2, y2) { + if (isNaN(x) || isNaN(y)) return; + if (n.leaf) { + var nx = n.x, + ny = n.y; + if (nx != null) { + if (abs(nx - x) + abs(ny - y) < 0.01) { + insertChild(n, d, x, y, x1, y1, x2, y2); + } else { + var nPoint = n.point; + n.x = n.y = n.point = null; + insertChild(n, nPoint, nx, ny, x1, y1, x2, y2); + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } else { + (n.x = x), (n.y = y), (n.point = d); + } + } else { + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } + function insertChild(n, d, x, y, x1, y1, x2, y2) { + var xm = (x1 + x2) * 0.5, + ym = (y1 + y2) * 0.5, + right = x >= xm, + below = y >= ym, + i = (below << 1) | right; + n.leaf = false; + n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); + if (right) x1 = xm; + else x2 = xm; + if (below) y1 = ym; + else y2 = ym; + insert(n, d, x, y, x1, y1, x2, y2); + } + var root = d3_geom_quadtreeNode(); + root.add = function(d) { + insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_); + }; + root.visit = function(f) { + d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_); + }; + root.find = function(point) { + return d3_geom_quadtreeFind( + root, + point[0], + point[1], + x1_, + y1_, + x2_, + y2_ + ); + }; + i = -1; + if (x1 == null) { + while (++i < n) { + insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_); + } + --i; + } else data.forEach(root.add); + xs = ys = data = d = null; + return root; + } + quadtree.x = function(_) { + return arguments.length ? ((x = _), quadtree) : x; + }; + quadtree.y = function(_) { + return arguments.length ? ((y = _), quadtree) : y; + }; + quadtree.extent = function(_) { + if (!arguments.length) return x1 == null ? null : [[x1, y1], [x2, y2]]; + if (_ == null) x1 = y1 = x2 = y2 = null; + else (x1 = +_[0][0]), (y1 = +_[0][1]), (x2 = +_[1][0]), (y2 = +_[1][1]); + return quadtree; + }; + quadtree.size = function(_) { + if (!arguments.length) return x1 == null ? null : [x2 - x1, y2 - y1]; + if (_ == null) x1 = y1 = x2 = y2 = null; + else (x1 = y1 = 0), (x2 = +_[0]), (y2 = +_[1]); + return quadtree; + }; + return quadtree; + }; + function d3_geom_quadtreeCompatX(d) { + return d.x; + } + function d3_geom_quadtreeCompatY(d) { + return d.y; + } + function d3_geom_quadtreeNode() { + return { + leaf: true, + nodes: [], + point: null, + x: null, + y: null + }; + } + function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { + if (!f(node, x1, y1, x2, y2)) { + var sx = (x1 + x2) * 0.5, + sy = (y1 + y2) * 0.5, + children = node.nodes; + if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); + if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); + if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); + if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); + } + } + function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) { + var minDistance2 = Infinity, + closestPoint; + (function find(node, x1, y1, x2, y2) { + if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return; + if ((point = node.point)) { + var point, + dx = x - node.x, + dy = y - node.y, + distance2 = dx * dx + dy * dy; + if (distance2 < minDistance2) { + var distance = Math.sqrt((minDistance2 = distance2)); + (x0 = x - distance), (y0 = y - distance); + (x3 = x + distance), (y3 = y + distance); + closestPoint = point; + } + } + var children = node.nodes, + xm = (x1 + x2) * 0.5, + ym = (y1 + y2) * 0.5, + right = x >= xm, + below = y >= ym; + for (var i = (below << 1) | right, j = i + 4; i < j; ++i) { + if ((node = children[i & 3])) + switch (i & 3) { + case 0: + find(node, x1, y1, xm, ym); + break; + + case 1: + find(node, xm, y1, x2, ym); + break; + + case 2: + find(node, x1, ym, xm, y2); + break; + + case 3: + find(node, xm, ym, x2, y2); + break; + } + } + })(root, x0, y0, x3, y3); + return closestPoint; + } + d3.interpolateRgb = d3_interpolateRgb; + function d3_interpolateRgb(a, b) { + a = d3.rgb(a); + b = d3.rgb(b); + var ar = a.r, + ag = a.g, + ab = a.b, + br = b.r - ar, + bg = b.g - ag, + bb = b.b - ab; + return function(t) { + return ( + '#' + + d3_rgb_hex(Math.round(ar + br * t)) + + d3_rgb_hex(Math.round(ag + bg * t)) + + d3_rgb_hex(Math.round(ab + bb * t)) + ); + }; + } + d3.interpolateObject = d3_interpolateObject; + function d3_interpolateObject(a, b) { + var i = {}, + c = {}, + k; + for (k in a) { + if (k in b) { + i[k] = d3_interpolate(a[k], b[k]); + } else { + c[k] = a[k]; + } + } + for (k in b) { + if (!(k in a)) { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; + } + d3.interpolateNumber = d3_interpolateNumber; + function d3_interpolateNumber(a, b) { + (a = +a), (b = +b); + return function(t) { + return a * (1 - t) + b * t; + }; + } + d3.interpolateString = d3_interpolateString; + function d3_interpolateString(a, b) { + var bi = (d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0), + am, + bm, + bs, + i = -1, + s = [], + q = []; + (a = a + ''), (b = b + ''); + while ( + (am = d3_interpolate_numberA.exec(a)) && + (bm = d3_interpolate_numberB.exec(b)) + ) { + if ((bs = bm.index) > bi) { + bs = b.slice(bi, bs); + if (s[i]) s[i] += bs; + else s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) s[i] += bm; + else s[++i] = bm; + } else { + s[++i] = null; + q.push({ + i: i, + x: d3_interpolateNumber(am, bm) + }); + } + bi = d3_interpolate_numberB.lastIndex; + } + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) s[i] += bs; + else s[++i] = bs; + } + return s.length < 2 + ? q[0] + ? ((b = q[0].x), + function(t) { + return b(t) + ''; + }) + : function() { + return b; + } + : ((b = q.length), + function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(''); + }); + } + var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, + d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, 'g'); + d3.interpolate = d3_interpolate; + function d3_interpolate(a, b) { + var i = d3.interpolators.length, + f; + while (--i >= 0 && !(f = d3.interpolators[i](a, b))); + return f; + } + d3.interpolators = [ + function(a, b) { + var t = typeof b; + return (t === 'string' + ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(b) + ? d3_interpolateRgb + : d3_interpolateString + : b instanceof d3_color + ? d3_interpolateRgb + : Array.isArray(b) + ? d3_interpolateArray + : t === 'object' && isNaN(b) + ? d3_interpolateObject + : d3_interpolateNumber)(a, b); + } + ]; + d3.interpolateArray = d3_interpolateArray; + function d3_interpolateArray(a, b) { + var x = [], + c = [], + na = a.length, + nb = b.length, + n0 = Math.min(a.length, b.length), + i; + for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i])); + for (; i < na; ++i) c[i] = a[i]; + for (; i < nb; ++i) c[i] = b[i]; + return function(t) { + for (i = 0; i < n0; ++i) c[i] = x[i](t); + return c; + }; + } + var d3_ease_default = function() { + return d3_identity; + }; + var d3_ease = d3.map({ + linear: d3_ease_default, + poly: d3_ease_poly, + quad: function() { + return d3_ease_quad; + }, + cubic: function() { + return d3_ease_cubic; + }, + sin: function() { + return d3_ease_sin; + }, + exp: function() { + return d3_ease_exp; + }, + circle: function() { + return d3_ease_circle; + }, + elastic: d3_ease_elastic, + back: d3_ease_back, + bounce: function() { + return d3_ease_bounce; + } + }); + var d3_ease_mode = d3.map({ + in: d3_identity, + out: d3_ease_reverse, + 'in-out': d3_ease_reflect, + 'out-in': function(f) { + return d3_ease_reflect(d3_ease_reverse(f)); + } + }); + d3.ease = function(name) { + var i = name.indexOf('-'), + t = i >= 0 ? name.slice(0, i) : name, + m = i >= 0 ? name.slice(i + 1) : 'in'; + t = d3_ease.get(t) || d3_ease_default; + m = d3_ease_mode.get(m) || d3_identity; + return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1)))); + }; + function d3_ease_clamp(f) { + return function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : f(t); + }; + } + function d3_ease_reverse(f) { + return function(t) { + return 1 - f(1 - t); + }; + } + function d3_ease_reflect(f) { + return function(t) { + return 0.5 * (t < 0.5 ? f(2 * t) : 2 - f(2 - 2 * t)); + }; + } + function d3_ease_quad(t) { + return t * t; + } + function d3_ease_cubic(t) { + return t * t * t; + } + function d3_ease_cubicInOut(t) { + if (t <= 0) return 0; + if (t >= 1) return 1; + var t2 = t * t, + t3 = t2 * t; + return 4 * (t < 0.5 ? t3 : 3 * (t - t2) + t3 - 0.75); + } + function d3_ease_poly(e) { + return function(t) { + return Math.pow(t, e); + }; + } + function d3_ease_sin(t) { + return 1 - Math.cos(t * halfπ); + } + function d3_ease_exp(t) { + return Math.pow(2, 10 * (t - 1)); + } + function d3_ease_circle(t) { + return 1 - Math.sqrt(1 - t * t); + } + function d3_ease_elastic(a, p) { + var s; + if (arguments.length < 2) p = 0.45; + if (arguments.length) s = (p / τ) * Math.asin(1 / a); + else (a = 1), (s = p / 4); + return function(t) { + return 1 + a * Math.pow(2, -10 * t) * Math.sin(((t - s) * τ) / p); + }; + } + function d3_ease_back(s) { + if (!s) s = 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; + } + function d3_ease_bounce(t) { + return t < 1 / 2.75 + ? 7.5625 * t * t + : t < 2 / 2.75 + ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75 + : t < 2.5 / 2.75 + ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375 + : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375; + } + d3.interpolateHcl = d3_interpolateHcl; + function d3_interpolateHcl(a, b) { + a = d3.hcl(a); + b = d3.hcl(b); + var ah = a.h, + ac = a.c, + al = a.l, + bh = b.h - ah, + bc = b.c - ac, + bl = b.l - al; + if (isNaN(bc)) (bc = 0), (ac = isNaN(ac) ? b.c : ac); + if (isNaN(bh)) (bh = 0), (ah = isNaN(ah) ? b.h : ah); + else if (bh > 180) bh -= 360; + else if (bh < -180) bh += 360; + return function(t) { + return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + ''; + }; + } + d3.interpolateHsl = d3_interpolateHsl; + function d3_interpolateHsl(a, b) { + a = d3.hsl(a); + b = d3.hsl(b); + var ah = a.h, + as = a.s, + al = a.l, + bh = b.h - ah, + bs = b.s - as, + bl = b.l - al; + if (isNaN(bs)) (bs = 0), (as = isNaN(as) ? b.s : as); + if (isNaN(bh)) (bh = 0), (ah = isNaN(ah) ? b.h : ah); + else if (bh > 180) bh -= 360; + else if (bh < -180) bh += 360; + return function(t) { + return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + ''; + }; + } + d3.interpolateLab = d3_interpolateLab; + function d3_interpolateLab(a, b) { + a = d3.lab(a); + b = d3.lab(b); + var al = a.l, + aa = a.a, + ab = a.b, + bl = b.l - al, + ba = b.a - aa, + bb = b.b - ab; + return function(t) { + return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + ''; + }; + } + d3.interpolateRound = d3_interpolateRound; + function d3_interpolateRound(a, b) { + b -= a; + return function(t) { + return Math.round(a + b * t); + }; + } + d3.transform = function(string) { + var g = d3_document.createElementNS(d3.ns.prefix.svg, 'g'); + return (d3.transform = function(string) { + if (string != null) { + g.setAttribute('transform', string); + var t = g.transform.baseVal.consolidate(); + } + return new d3_transform(t ? t.matrix : d3_transformIdentity); + })(string); + }; + function d3_transform(m) { + var r0 = [m.a, m.b], + r1 = [m.c, m.d], + kx = d3_transformNormalize(r0), + kz = d3_transformDot(r0, r1), + ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0; + if (r0[0] * r1[1] < r1[0] * r0[1]) { + r0[0] *= -1; + r0[1] *= -1; + kx *= -1; + kz *= -1; + } + this.rotate = + (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees; + this.translate = [m.e, m.f]; + this.scale = [kx, ky]; + this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0; + } + d3_transform.prototype.toString = function() { + return ( + 'translate(' + + this.translate + + ')rotate(' + + this.rotate + + ')skewX(' + + this.skew + + ')scale(' + + this.scale + + ')' + ); + }; + function d3_transformDot(a, b) { + return a[0] * b[0] + a[1] * b[1]; + } + function d3_transformNormalize(a) { + var k = Math.sqrt(d3_transformDot(a, a)); + if (k) { + a[0] /= k; + a[1] /= k; + } + return k; + } + function d3_transformCombine(a, b, k) { + a[0] += k * b[0]; + a[1] += k * b[1]; + return a; + } + var d3_transformIdentity = { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }; + d3.interpolateTransform = d3_interpolateTransform; + function d3_interpolateTransformPop(s) { + return s.length ? s.pop() + ',' : ''; + } + function d3_interpolateTranslate(ta, tb, s, q) { + if (ta[0] !== tb[0] || ta[1] !== tb[1]) { + var i = s.push('translate(', null, ',', null, ')'); + q.push( + { + i: i - 4, + x: d3_interpolateNumber(ta[0], tb[0]) + }, + { + i: i - 2, + x: d3_interpolateNumber(ta[1], tb[1]) + } + ); + } else if (tb[0] || tb[1]) { + s.push('translate(' + tb + ')'); + } + } + function d3_interpolateRotate(ra, rb, s, q) { + if (ra !== rb) { + if (ra - rb > 180) rb += 360; + else if (rb - ra > 180) ra += 360; + q.push({ + i: s.push(d3_interpolateTransformPop(s) + 'rotate(', null, ')') - 2, + x: d3_interpolateNumber(ra, rb) + }); + } else if (rb) { + s.push(d3_interpolateTransformPop(s) + 'rotate(' + rb + ')'); + } + } + function d3_interpolateSkew(wa, wb, s, q) { + if (wa !== wb) { + q.push({ + i: s.push(d3_interpolateTransformPop(s) + 'skewX(', null, ')') - 2, + x: d3_interpolateNumber(wa, wb) + }); + } else if (wb) { + s.push(d3_interpolateTransformPop(s) + 'skewX(' + wb + ')'); + } + } + function d3_interpolateScale(ka, kb, s, q) { + if (ka[0] !== kb[0] || ka[1] !== kb[1]) { + var i = s.push( + d3_interpolateTransformPop(s) + 'scale(', + null, + ',', + null, + ')' + ); + q.push( + { + i: i - 4, + x: d3_interpolateNumber(ka[0], kb[0]) + }, + { + i: i - 2, + x: d3_interpolateNumber(ka[1], kb[1]) + } + ); + } else if (kb[0] !== 1 || kb[1] !== 1) { + s.push(d3_interpolateTransformPop(s) + 'scale(' + kb + ')'); + } + } + function d3_interpolateTransform(a, b) { + var s = [], + q = []; + (a = d3.transform(a)), (b = d3.transform(b)); + d3_interpolateTranslate(a.translate, b.translate, s, q); + d3_interpolateRotate(a.rotate, b.rotate, s, q); + d3_interpolateSkew(a.skew, b.skew, s, q); + d3_interpolateScale(a.scale, b.scale, s, q); + a = b = null; + return function(t) { + var i = -1, + n = q.length, + o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(''); + }; + } + function d3_uninterpolateNumber(a, b) { + b = (b -= a = +a) || 1 / b; + return function(x) { + return (x - a) / b; + }; + } + function d3_uninterpolateClamp(a, b) { + b = (b -= a = +a) || 1 / b; + return function(x) { + return Math.max(0, Math.min(1, (x - a) / b)); + }; + } + d3.layout = {}; + d3.layout.bundle = function() { + return function(links) { + var paths = [], + i = -1, + n = links.length; + while (++i < n) paths.push(d3_layout_bundlePath(links[i])); + return paths; + }; + }; + function d3_layout_bundlePath(link) { + var start = link.source, + end = link.target, + lca = d3_layout_bundleLeastCommonAncestor(start, end), + points = [start]; + while (start !== lca) { + start = start.parent; + points.push(start); + } + var k = points.length; + while (end !== lca) { + points.splice(k, 0, end); + end = end.parent; + } + return points; + } + function d3_layout_bundleAncestors(node) { + var ancestors = [], + parent = node.parent; + while (parent != null) { + ancestors.push(node); + node = parent; + parent = parent.parent; + } + ancestors.push(node); + return ancestors; + } + function d3_layout_bundleLeastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = d3_layout_bundleAncestors(a), + bNodes = d3_layout_bundleAncestors(b), + aNode = aNodes.pop(), + bNode = bNodes.pop(), + sharedNode = null; + while (aNode === bNode) { + sharedNode = aNode; + aNode = aNodes.pop(); + bNode = bNodes.pop(); + } + return sharedNode; + } + d3.layout.chord = function() { + var chord = {}, + chords, + groups, + matrix, + n, + padding = 0, + sortGroups, + sortSubgroups, + sortChords; + function relayout() { + var subgroups = {}, + groupSums = [], + groupIndex = d3.range(n), + subgroupIndex = [], + k, + x, + x0, + i, + j; + chords = []; + groups = []; + (k = 0), (i = -1); + while (++i < n) { + (x = 0), (j = -1); + while (++j < n) { + x += matrix[i][j]; + } + groupSums.push(x); + subgroupIndex.push(d3.range(n)); + k += x; + } + if (sortGroups) { + groupIndex.sort(function(a, b) { + return sortGroups(groupSums[a], groupSums[b]); + }); + } + if (sortSubgroups) { + subgroupIndex.forEach(function(d, i) { + d.sort(function(a, b) { + return sortSubgroups(matrix[i][a], matrix[i][b]); + }); + }); + } + k = (τ - padding * n) / k; + (x = 0), (i = -1); + while (++i < n) { + (x0 = x), (j = -1); + while (++j < n) { + var di = groupIndex[i], + dj = subgroupIndex[di][j], + v = matrix[di][dj], + a0 = x, + a1 = (x += v * k); + subgroups[di + '-' + dj] = { + index: di, + subindex: dj, + startAngle: a0, + endAngle: a1, + value: v + }; + } + groups[di] = { + index: di, + startAngle: x0, + endAngle: x, + value: groupSums[di] + }; + x += padding; + } + i = -1; + while (++i < n) { + j = i - 1; + while (++j < n) { + var source = subgroups[i + '-' + j], + target = subgroups[j + '-' + i]; + if (source.value || target.value) { + chords.push( + source.value < target.value + ? { + source: target, + target: source + } + : { + source: source, + target: target + } + ); + } + } + } + if (sortChords) resort(); + } + function resort() { + chords.sort(function(a, b) { + return sortChords( + (a.source.value + a.target.value) / 2, + (b.source.value + b.target.value) / 2 + ); + }); + } + chord.matrix = function(x) { + if (!arguments.length) return matrix; + n = (matrix = x) && matrix.length; + chords = groups = null; + return chord; + }; + chord.padding = function(x) { + if (!arguments.length) return padding; + padding = x; + chords = groups = null; + return chord; + }; + chord.sortGroups = function(x) { + if (!arguments.length) return sortGroups; + sortGroups = x; + chords = groups = null; + return chord; + }; + chord.sortSubgroups = function(x) { + if (!arguments.length) return sortSubgroups; + sortSubgroups = x; + chords = null; + return chord; + }; + chord.sortChords = function(x) { + if (!arguments.length) return sortChords; + sortChords = x; + if (chords) resort(); + return chord; + }; + chord.chords = function() { + if (!chords) relayout(); + return chords; + }; + chord.groups = function() { + if (!groups) relayout(); + return groups; + }; + return chord; + }; + d3.layout.force = function() { + var force = {}, + event = d3.dispatch('start', 'tick', 'end'), + timer, + size = [1, 1], + drag, + alpha, + friction = 0.9, + linkDistance = d3_layout_forceLinkDistance, + linkStrength = d3_layout_forceLinkStrength, + charge = -30, + chargeDistance2 = d3_layout_forceChargeDistance2, + gravity = 0.1, + theta2 = 0.64, + nodes = [], + links = [], + distances, + strengths, + charges; + function repulse(node) { + return function(quad, x1, _, x2) { + if (quad.point !== node) { + var dx = quad.cx - node.x, + dy = quad.cy - node.y, + dw = x2 - x1, + dn = dx * dx + dy * dy; + if ((dw * dw) / theta2 < dn) { + if (dn < chargeDistance2) { + var k = quad.charge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + return true; + } + if (quad.point && dn && dn < chargeDistance2) { + var k = quad.pointCharge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + } + return !quad.charge; + }; + } + force.tick = function() { + if ((alpha *= 0.99) < 0.005) { + timer = null; + event.end({ + type: 'end', + alpha: (alpha = 0) + }); + return true; + } + var n = nodes.length, + m = links.length, + q, + i, + o, + s, + t, + l, + k, + x, + y; + for (i = 0; i < m; ++i) { + o = links[i]; + s = o.source; + t = o.target; + x = t.x - s.x; + y = t.y - s.y; + if ((l = x * x + y * y)) { + l = (alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i])) / l; + x *= l; + y *= l; + t.x -= + x * + (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : 0.5); + t.y -= y * k; + s.x += x * (k = 1 - k); + s.y += y * k; + } + } + if ((k = alpha * gravity)) { + x = size[0] / 2; + y = size[1] / 2; + i = -1; + if (k) + while (++i < n) { + o = nodes[i]; + o.x += (x - o.x) * k; + o.y += (y - o.y) * k; + } + } + if (charge) { + d3_layout_forceAccumulate( + (q = d3.geom.quadtree(nodes)), + alpha, + charges + ); + i = -1; + while (++i < n) { + if (!(o = nodes[i]).fixed) { + q.visit(repulse(o)); + } + } + } + i = -1; + while (++i < n) { + o = nodes[i]; + if (o.fixed) { + o.x = o.px; + o.y = o.py; + } else { + o.x -= (o.px - (o.px = o.x)) * friction; + o.y -= (o.py - (o.py = o.y)) * friction; + } + } + event.tick({ + type: 'tick', + alpha: alpha + }); + }; + force.nodes = function(x) { + if (!arguments.length) return nodes; + nodes = x; + return force; + }; + force.links = function(x) { + if (!arguments.length) return links; + links = x; + return force; + }; + force.size = function(x) { + if (!arguments.length) return size; + size = x; + return force; + }; + force.linkDistance = function(x) { + if (!arguments.length) return linkDistance; + linkDistance = typeof x === 'function' ? x : +x; + return force; + }; + force.distance = force.linkDistance; + force.linkStrength = function(x) { + if (!arguments.length) return linkStrength; + linkStrength = typeof x === 'function' ? x : +x; + return force; + }; + force.friction = function(x) { + if (!arguments.length) return friction; + friction = +x; + return force; + }; + force.charge = function(x) { + if (!arguments.length) return charge; + charge = typeof x === 'function' ? x : +x; + return force; + }; + force.chargeDistance = function(x) { + if (!arguments.length) return Math.sqrt(chargeDistance2); + chargeDistance2 = x * x; + return force; + }; + force.gravity = function(x) { + if (!arguments.length) return gravity; + gravity = +x; + return force; + }; + force.theta = function(x) { + if (!arguments.length) return Math.sqrt(theta2); + theta2 = x * x; + return force; + }; + force.alpha = function(x) { + if (!arguments.length) return alpha; + x = +x; + if (alpha) { + if (x > 0) { + alpha = x; + } else { + (timer.c = null), (timer.t = NaN), (timer = null); + event.end({ + type: 'end', + alpha: (alpha = 0) + }); + } + } else if (x > 0) { + event.start({ + type: 'start', + alpha: (alpha = x) + }); + timer = d3_timer(force.tick); + } + return force; + }; + force.start = function() { + var i, + n = nodes.length, + m = links.length, + w = size[0], + h = size[1], + neighbors, + o; + for (i = 0; i < n; ++i) { + (o = nodes[i]).index = i; + o.weight = 0; + } + for (i = 0; i < m; ++i) { + o = links[i]; + if (typeof o.source == 'number') o.source = nodes[o.source]; + if (typeof o.target == 'number') o.target = nodes[o.target]; + ++o.source.weight; + ++o.target.weight; + } + for (i = 0; i < n; ++i) { + o = nodes[i]; + if (isNaN(o.x)) o.x = position('x', w); + if (isNaN(o.y)) o.y = position('y', h); + if (isNaN(o.px)) o.px = o.x; + if (isNaN(o.py)) o.py = o.y; + } + distances = []; + if (typeof linkDistance === 'function') + for (i = 0; i < m; ++i) + distances[i] = +linkDistance.call(this, links[i], i); + else for (i = 0; i < m; ++i) distances[i] = linkDistance; + strengths = []; + if (typeof linkStrength === 'function') + for (i = 0; i < m; ++i) + strengths[i] = +linkStrength.call(this, links[i], i); + else for (i = 0; i < m; ++i) strengths[i] = linkStrength; + charges = []; + if (typeof charge === 'function') + for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); + else for (i = 0; i < n; ++i) charges[i] = charge; + function position(dimension, size) { + if (!neighbors) { + neighbors = new Array(n); + for (j = 0; j < n; ++j) { + neighbors[j] = []; + } + for (j = 0; j < m; ++j) { + var o = links[j]; + neighbors[o.source.index].push(o.target); + neighbors[o.target.index].push(o.source); + } + } + var candidates = neighbors[i], + j = -1, + l = candidates.length, + x; + while (++j < l) if (!isNaN((x = candidates[j][dimension]))) return x; + return Math.random() * size; + } + return force.resume(); + }; + force.resume = function() { + return force.alpha(0.1); + }; + force.stop = function() { + return force.alpha(0); + }; + force.drag = function() { + if (!drag) + drag = d3.behavior + .drag() + .origin(d3_identity) + .on('dragstart.force', d3_layout_forceDragstart) + .on('drag.force', dragmove) + .on('dragend.force', d3_layout_forceDragend); + if (!arguments.length) return drag; + this.on('mouseover.force', d3_layout_forceMouseover) + .on('mouseout.force', d3_layout_forceMouseout) + .call(drag); + }; + function dragmove(d) { + (d.px = d3.event.x), (d.py = d3.event.y); + force.resume(); + } + return d3.rebind(force, event, 'on'); + }; + function d3_layout_forceDragstart(d) { + d.fixed |= 2; + } + function d3_layout_forceDragend(d) { + d.fixed &= ~6; + } + function d3_layout_forceMouseover(d) { + d.fixed |= 4; + (d.px = d.x), (d.py = d.y); + } + function d3_layout_forceMouseout(d) { + d.fixed &= ~4; + } + function d3_layout_forceAccumulate(quad, alpha, charges) { + var cx = 0, + cy = 0; + quad.charge = 0; + if (!quad.leaf) { + var nodes = quad.nodes, + n = nodes.length, + i = -1, + c; + while (++i < n) { + c = nodes[i]; + if (c == null) continue; + d3_layout_forceAccumulate(c, alpha, charges); + quad.charge += c.charge; + cx += c.charge * c.cx; + cy += c.charge * c.cy; + } + } + if (quad.point) { + if (!quad.leaf) { + quad.point.x += Math.random() - 0.5; + quad.point.y += Math.random() - 0.5; + } + var k = alpha * charges[quad.point.index]; + quad.charge += quad.pointCharge = k; + cx += k * quad.point.x; + cy += k * quad.point.y; + } + quad.cx = cx / quad.charge; + quad.cy = cy / quad.charge; + } + var d3_layout_forceLinkDistance = 20, + d3_layout_forceLinkStrength = 1, + d3_layout_forceChargeDistance2 = Infinity; + d3.layout.hierarchy = function() { + var sort = d3_layout_hierarchySort, + children = d3_layout_hierarchyChildren, + value = d3_layout_hierarchyValue; + function hierarchy(root) { + var stack = [root], + nodes = [], + node; + root.depth = 0; + while ((node = stack.pop()) != null) { + nodes.push(node); + if ( + (childs = children.call(hierarchy, node, node.depth)) && + (n = childs.length) + ) { + var n, childs, child; + while (--n >= 0) { + stack.push((child = childs[n])); + child.parent = node; + child.depth = node.depth + 1; + } + if (value) node.value = 0; + node.children = childs; + } else { + if (value) node.value = +value.call(hierarchy, node, node.depth) || 0; + delete node.children; + } + } + d3_layout_hierarchyVisitAfter(root, function(node) { + var childs, parent; + if (sort && (childs = node.children)) childs.sort(sort); + if (value && (parent = node.parent)) parent.value += node.value; + }); + return nodes; + } + hierarchy.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return hierarchy; + }; + hierarchy.children = function(x) { + if (!arguments.length) return children; + children = x; + return hierarchy; + }; + hierarchy.value = function(x) { + if (!arguments.length) return value; + value = x; + return hierarchy; + }; + hierarchy.revalue = function(root) { + if (value) { + d3_layout_hierarchyVisitBefore(root, function(node) { + if (node.children) node.value = 0; + }); + d3_layout_hierarchyVisitAfter(root, function(node) { + var parent; + if (!node.children) + node.value = +value.call(hierarchy, node, node.depth) || 0; + if ((parent = node.parent)) parent.value += node.value; + }); + } + return root; + }; + return hierarchy; + }; + function d3_layout_hierarchyRebind(object, hierarchy) { + d3.rebind(object, hierarchy, 'sort', 'children', 'value'); + object.nodes = object; + object.links = d3_layout_hierarchyLinks; + return object; + } + function d3_layout_hierarchyVisitBefore(node, callback) { + var nodes = [node]; + while ((node = nodes.pop()) != null) { + callback(node); + if ((children = node.children) && (n = children.length)) { + var n, children; + while (--n >= 0) nodes.push(children[n]); + } + } + } + function d3_layout_hierarchyVisitAfter(node, callback) { + var nodes = [node], + nodes2 = []; + while ((node = nodes.pop()) != null) { + nodes2.push(node); + if ((children = node.children) && (n = children.length)) { + var i = -1, + n, + children; + while (++i < n) nodes.push(children[i]); + } + } + while ((node = nodes2.pop()) != null) { + callback(node); + } + } + function d3_layout_hierarchyChildren(d) { + return d.children; + } + function d3_layout_hierarchyValue(d) { + return d.value; + } + function d3_layout_hierarchySort(a, b) { + return b.value - a.value; + } + function d3_layout_hierarchyLinks(nodes) { + return d3.merge( + nodes.map(function(parent) { + return (parent.children || []).map(function(child) { + return { + source: parent, + target: child + }; + }); + }) + ); + } + d3.layout.partition = function() { + var hierarchy = d3.layout.hierarchy(), + size = [1, 1]; + function position(node, x, dx, dy) { + var children = node.children; + node.x = x; + node.y = node.depth * dy; + node.dx = dx; + node.dy = dy; + if (children && (n = children.length)) { + var i = -1, + n, + c, + d; + dx = node.value ? dx / node.value : 0; + while (++i < n) { + position((c = children[i]), x, (d = c.value * dx), dy); + x += d; + } + } + } + function depth(node) { + var children = node.children, + d = 0; + if (children && (n = children.length)) { + var i = -1, + n; + while (++i < n) d = Math.max(d, depth(children[i])); + } + return 1 + d; + } + function partition(d, i) { + var nodes = hierarchy.call(this, d, i); + position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); + return nodes; + } + partition.size = function(x) { + if (!arguments.length) return size; + size = x; + return partition; + }; + return d3_layout_hierarchyRebind(partition, hierarchy); + }; + d3.layout.pie = function() { + var value = Number, + sort = d3_layout_pieSortByValue, + startAngle = 0, + endAngle = τ, + padAngle = 0; + function pie(data) { + var n = data.length, + values = data.map(function(d, i) { + return +value.call(pie, d, i); + }), + a = +(typeof startAngle === 'function' + ? startAngle.apply(this, arguments) + : startAngle), + da = + (typeof endAngle === 'function' + ? endAngle.apply(this, arguments) + : endAngle) - a, + p = Math.min( + Math.abs(da) / n, + +(typeof padAngle === 'function' + ? padAngle.apply(this, arguments) + : padAngle) + ), + pa = p * (da < 0 ? -1 : 1), + sum = d3.sum(values), + k = sum ? (da - n * pa) / sum : 0, + index = d3.range(n), + arcs = [], + v; + if (sort != null) + index.sort( + sort === d3_layout_pieSortByValue + ? function(i, j) { + return values[j] - values[i]; + } + : function(i, j) { + return sort(data[i], data[j]); + } + ); + index.forEach(function(i) { + arcs[i] = { + data: data[i], + value: (v = values[i]), + startAngle: a, + endAngle: (a += v * k + pa), + padAngle: p + }; + }); + return arcs; + } + pie.value = function(_) { + if (!arguments.length) return value; + value = _; + return pie; + }; + pie.sort = function(_) { + if (!arguments.length) return sort; + sort = _; + return pie; + }; + pie.startAngle = function(_) { + if (!arguments.length) return startAngle; + startAngle = _; + return pie; + }; + pie.endAngle = function(_) { + if (!arguments.length) return endAngle; + endAngle = _; + return pie; + }; + pie.padAngle = function(_) { + if (!arguments.length) return padAngle; + padAngle = _; + return pie; + }; + return pie; + }; + var d3_layout_pieSortByValue = {}; + d3.layout.stack = function() { + var values = d3_identity, + order = d3_layout_stackOrderDefault, + offset = d3_layout_stackOffsetZero, + out = d3_layout_stackOut, + x = d3_layout_stackX, + y = d3_layout_stackY; + function stack(data, index) { + if (!(n = data.length)) return data; + var series = data.map(function(d, i) { + return values.call(stack, d, i); + }); + var points = series.map(function(d) { + return d.map(function(v, i) { + return [x.call(stack, v, i), y.call(stack, v, i)]; + }); + }); + var orders = order.call(stack, points, index); + series = d3.permute(series, orders); + points = d3.permute(points, orders); + var offsets = offset.call(stack, points, index); + var m = series[0].length, + n, + i, + j, + o; + for (j = 0; j < m; ++j) { + out.call(stack, series[0][j], (o = offsets[j]), points[0][j][1]); + for (i = 1; i < n; ++i) { + out.call( + stack, + series[i][j], + (o += points[i - 1][j][1]), + points[i][j][1] + ); + } + } + return data; + } + stack.values = function(x) { + if (!arguments.length) return values; + values = x; + return stack; + }; + stack.order = function(x) { + if (!arguments.length) return order; + order = + typeof x === 'function' + ? x + : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault; + return stack; + }; + stack.offset = function(x) { + if (!arguments.length) return offset; + offset = + typeof x === 'function' + ? x + : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero; + return stack; + }; + stack.x = function(z) { + if (!arguments.length) return x; + x = z; + return stack; + }; + stack.y = function(z) { + if (!arguments.length) return y; + y = z; + return stack; + }; + stack.out = function(z) { + if (!arguments.length) return out; + out = z; + return stack; + }; + return stack; + }; + function d3_layout_stackX(d) { + return d.x; + } + function d3_layout_stackY(d) { + return d.y; + } + function d3_layout_stackOut(d, y0, y) { + d.y0 = y0; + d.y = y; + } + var d3_layout_stackOrders = d3.map({ + 'inside-out': function(data) { + var n = data.length, + i, + j, + max = data.map(d3_layout_stackMaxIndex), + sums = data.map(d3_layout_stackReduceSum), + index = d3.range(n).sort(function(a, b) { + return max[a] - max[b]; + }), + top = 0, + bottom = 0, + tops = [], + bottoms = []; + for (i = 0; i < n; ++i) { + j = index[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + return bottoms.reverse().concat(tops); + }, + reverse: function(data) { + return d3.range(data.length).reverse(); + }, + default: d3_layout_stackOrderDefault + }); + var d3_layout_stackOffsets = d3.map({ + silhouette: function(data) { + var n = data.length, + m = data[0].length, + sums = [], + max = 0, + i, + j, + o, + y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o > max) max = o; + sums.push(o); + } + for (j = 0; j < m; ++j) { + y0[j] = (max - sums[j]) / 2; + } + return y0; + }, + wiggle: function(data) { + var n = data.length, + x = data[0], + m = x.length, + i, + j, + k, + s1, + s2, + s3, + dx, + o, + o0, + y0 = []; + y0[0] = o = o0 = 0; + for (j = 1; j < m; ++j) { + for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; + for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { + for ( + k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); + k < i; + ++k + ) { + s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; + } + s2 += s3 * data[i][j][1]; + } + y0[j] = o -= s1 ? (s2 / s1) * dx : 0; + if (o < o0) o0 = o; + } + for (j = 0; j < m; ++j) y0[j] -= o0; + return y0; + }, + expand: function(data) { + var n = data.length, + m = data[0].length, + k = 1 / n, + i, + j, + o, + y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; + else for (i = 0; i < n; i++) data[i][j][1] = k; + } + for (j = 0; j < m; ++j) y0[j] = 0; + return y0; + }, + zero: d3_layout_stackOffsetZero + }); + function d3_layout_stackOrderDefault(data) { + return d3.range(data.length); + } + function d3_layout_stackOffsetZero(data) { + var j = -1, + m = data[0].length, + y0 = []; + while (++j < m) y0[j] = 0; + return y0; + } + function d3_layout_stackMaxIndex(array) { + var i = 1, + j = 0, + v = array[0][1], + k, + n = array.length; + for (; i < n; ++i) { + if ((k = array[i][1]) > v) { + j = i; + v = k; + } + } + return j; + } + function d3_layout_stackReduceSum(d) { + return d.reduce(d3_layout_stackSum, 0); + } + function d3_layout_stackSum(p, d) { + return p + d[1]; + } + d3.layout.histogram = function() { + var frequency = true, + valuer = Number, + ranger = d3_layout_histogramRange, + binner = d3_layout_histogramBinSturges; + function histogram(data, i) { + var bins = [], + values = data.map(valuer, this), + range = ranger.call(this, values, i), + thresholds = binner.call(this, range, values, i), + bin, + i = -1, + n = values.length, + m = thresholds.length - 1, + k = frequency ? 1 : 1 / n, + x; + while (++i < m) { + bin = bins[i] = []; + bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); + bin.y = 0; + } + if (m > 0) { + i = -1; + while (++i < n) { + x = values[i]; + if (x >= range[0] && x <= range[1]) { + bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; + bin.y += k; + bin.push(data[i]); + } + } + } + return bins; + } + histogram.value = function(x) { + if (!arguments.length) return valuer; + valuer = x; + return histogram; + }; + histogram.range = function(x) { + if (!arguments.length) return ranger; + ranger = d3_functor(x); + return histogram; + }; + histogram.bins = function(x) { + if (!arguments.length) return binner; + binner = + typeof x === 'number' + ? function(range) { + return d3_layout_histogramBinFixed(range, x); + } + : d3_functor(x); + return histogram; + }; + histogram.frequency = function(x) { + if (!arguments.length) return frequency; + frequency = !!x; + return histogram; + }; + return histogram; + }; + function d3_layout_histogramBinSturges(range, values) { + return d3_layout_histogramBinFixed( + range, + Math.ceil(Math.log(values.length) / Math.LN2 + 1) + ); + } + function d3_layout_histogramBinFixed(range, n) { + var x = -1, + b = +range[0], + m = (range[1] - b) / n, + f = []; + while (++x <= n) f[x] = m * x + b; + return f; + } + function d3_layout_histogramRange(values) { + return [d3.min(values), d3.max(values)]; + } + d3.layout.pack = function() { + var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), + padding = 0, + size = [1, 1], + radius; + function pack(d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0], + w = size[0], + h = size[1], + r = + radius == null + ? Math.sqrt + : typeof radius === 'function' + ? radius + : function() { + return radius; + }; + root.x = root.y = 0; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r = +r(d.value); + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + if (padding) { + var dr = + (padding * + (radius ? 1 : Math.max((2 * root.r) / w, (2 * root.r) / h))) / + 2; + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r += dr; + }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + d3_layout_hierarchyVisitAfter(root, function(d) { + d.r -= dr; + }); + } + d3_layout_packTransform( + root, + w / 2, + h / 2, + radius ? 1 : 1 / Math.max((2 * root.r) / w, (2 * root.r) / h) + ); + return nodes; + } + pack.size = function(_) { + if (!arguments.length) return size; + size = _; + return pack; + }; + pack.radius = function(_) { + if (!arguments.length) return radius; + radius = _ == null || typeof _ === 'function' ? _ : +_; + return pack; + }; + pack.padding = function(_) { + if (!arguments.length) return padding; + padding = +_; + return pack; + }; + return d3_layout_hierarchyRebind(pack, hierarchy); + }; + function d3_layout_packSort(a, b) { + return a.value - b.value; + } + function d3_layout_packInsert(a, b) { + var c = a._pack_next; + a._pack_next = b; + b._pack_prev = a; + b._pack_next = c; + c._pack_prev = b; + } + function d3_layout_packSplice(a, b) { + a._pack_next = b; + b._pack_prev = a; + } + function d3_layout_packIntersects(a, b) { + var dx = b.x - a.x, + dy = b.y - a.y, + dr = a.r + b.r; + return 0.999 * dr * dr > dx * dx + dy * dy; + } + function d3_layout_packSiblings(node) { + if (!(nodes = node.children) || !(n = nodes.length)) return; + var nodes, + xMin = Infinity, + xMax = -Infinity, + yMin = Infinity, + yMax = -Infinity, + a, + b, + c, + i, + j, + k, + n; + function bound(node) { + xMin = Math.min(node.x - node.r, xMin); + xMax = Math.max(node.x + node.r, xMax); + yMin = Math.min(node.y - node.r, yMin); + yMax = Math.max(node.y + node.r, yMax); + } + nodes.forEach(d3_layout_packLink); + a = nodes[0]; + a.x = -a.r; + a.y = 0; + bound(a); + if (n > 1) { + b = nodes[1]; + b.x = b.r; + b.y = 0; + bound(b); + if (n > 2) { + c = nodes[2]; + d3_layout_packPlace(a, b, c); + bound(c); + d3_layout_packInsert(a, c); + a._pack_prev = c; + d3_layout_packInsert(c, b); + b = a._pack_next; + for (i = 3; i < n; i++) { + d3_layout_packPlace(a, b, (c = nodes[i])); + var isect = 0, + s1 = 1, + s2 = 1; + for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { + if (d3_layout_packIntersects(j, c)) { + isect = 1; + break; + } + } + if (isect == 1) { + for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { + if (d3_layout_packIntersects(k, c)) { + break; + } + } + } + if (isect) { + if (s1 < s2 || (s1 == s2 && b.r < a.r)) + d3_layout_packSplice(a, (b = j)); + else d3_layout_packSplice((a = k), b); + i--; + } else { + d3_layout_packInsert(a, c); + b = c; + bound(c); + } + } + } + } + var cx = (xMin + xMax) / 2, + cy = (yMin + yMax) / 2, + cr = 0; + for (i = 0; i < n; i++) { + c = nodes[i]; + c.x -= cx; + c.y -= cy; + cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y)); + } + node.r = cr; + nodes.forEach(d3_layout_packUnlink); + } + function d3_layout_packLink(node) { + node._pack_next = node._pack_prev = node; + } + function d3_layout_packUnlink(node) { + delete node._pack_next; + delete node._pack_prev; + } + function d3_layout_packTransform(node, x, y, k) { + var children = node.children; + node.x = x += k * node.x; + node.y = y += k * node.y; + node.r *= k; + if (children) { + var i = -1, + n = children.length; + while (++i < n) d3_layout_packTransform(children[i], x, y, k); + } + } + function d3_layout_packPlace(a, b, c) { + var db = a.r + c.r, + dx = b.x - a.x, + dy = b.y - a.y; + if (db && (dx || dy)) { + var da = b.r + c.r, + dc = dx * dx + dy * dy; + da *= da; + db *= db; + var x = 0.5 + (db - da) / (2 * dc), + y = + Math.sqrt( + Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da) + ) / + (2 * dc); + c.x = a.x + x * dx + y * dy; + c.y = a.y + x * dy - y * dx; + } else { + c.x = a.x + db; + c.y = a.y; + } + } + d3.layout.tree = function() { + var hierarchy = d3.layout + .hierarchy() + .sort(null) + .value(null), + separation = d3_layout_treeSeparation, + size = [1, 1], + nodeSize = null; + function tree(d, i) { + var nodes = hierarchy.call(this, d, i), + root0 = nodes[0], + root1 = wrapTree(root0); + d3_layout_hierarchyVisitAfter(root1, firstWalk), + (root1.parent.m = -root1.z); + d3_layout_hierarchyVisitBefore(root1, secondWalk); + if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); + else { + var left = root0, + right = root0, + bottom = root0; + d3_layout_hierarchyVisitBefore(root0, function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var tx = separation(left, right) / 2 - left.x, + kx = size[0] / (right.x + separation(right, left) / 2 + tx), + ky = size[1] / (bottom.depth || 1); + d3_layout_hierarchyVisitBefore(root0, function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + return nodes; + } + function wrapTree(root0) { + var root1 = { + A: null, + children: [root0] + }, + queue = [root1], + node1; + while ((node1 = queue.pop()) != null) { + for ( + var children = node1.children, child, i = 0, n = children.length; + i < n; + ++i + ) { + queue.push( + ((children[i] = child = { + _: children[i], + parent: node1, + children: ((child = children[i].children) && child.slice()) || [], + A: null, + a: null, + z: 0, + m: 0, + c: 0, + s: 0, + t: null, + i: i + }).a = child) + ); + } + } + return root1.children[0]; + } + function firstWalk(v) { + var children = v.children, + siblings = v.parent.children, + w = v.i ? siblings[v.i - 1] : null; + if (children.length) { + d3_layout_treeShift(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + } + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; + } + function apportion(v, w, ancestor) { + if (w) { + var vip = v, + vop = v, + vim = w, + vom = vip.parent.children[0], + sip = vip.m, + sop = vop.m, + sim = vim.m, + som = vom.m, + shift; + while ( + ((vim = d3_layout_treeRight(vim)), + (vip = d3_layout_treeLeft(vip)), + vim && vip) + ) { + vom = d3_layout_treeLeft(vom); + vop = d3_layout_treeRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + d3_layout_treeMove( + d3_layout_treeAncestor(vim, v, ancestor), + v, + shift + ); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !d3_layout_treeRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !d3_layout_treeLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; + } + function sizeNode(node) { + node.x *= size[0]; + node.y = node.depth * size[1]; + } + tree.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return tree; + }; + tree.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null ? sizeNode : null; + return tree; + }; + tree.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) == null ? null : sizeNode; + return tree; + }; + return d3_layout_hierarchyRebind(tree, hierarchy); + }; + function d3_layout_treeSeparation(a, b) { + return a.parent == b.parent ? 1 : 2; + } + function d3_layout_treeLeft(v) { + var children = v.children; + return children.length ? children[0] : v.t; + } + function d3_layout_treeRight(v) { + var children = v.children, + n; + return (n = children.length) ? children[n - 1] : v.t; + } + function d3_layout_treeMove(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; + } + function d3_layout_treeShift(v) { + var shift = 0, + change = 0, + children = v.children, + i = children.length, + w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } + } + function d3_layout_treeAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; + } + d3.layout.cluster = function() { + var hierarchy = d3.layout + .hierarchy() + .sort(null) + .value(null), + separation = d3_layout_treeSeparation, + size = [1, 1], + nodeSize = false; + function cluster(d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0], + previousNode, + x = 0; + d3_layout_hierarchyVisitAfter(root, function(node) { + var children = node.children; + if (children && children.length) { + node.x = d3_layout_clusterX(children); + node.y = d3_layout_clusterY(children); + } else { + node.x = previousNode ? (x += separation(node, previousNode)) : 0; + node.y = 0; + previousNode = node; + } + }); + var left = d3_layout_clusterLeft(root), + right = d3_layout_clusterRight(root), + x0 = left.x - separation(left, right) / 2, + x1 = right.x + separation(right, left) / 2; + d3_layout_hierarchyVisitAfter( + root, + nodeSize + ? function(node) { + node.x = (node.x - root.x) * size[0]; + node.y = (root.y - node.y) * size[1]; + } + : function(node) { + node.x = ((node.x - x0) / (x1 - x0)) * size[0]; + node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1]; + } + ); + return nodes; + } + cluster.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return cluster; + }; + cluster.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null; + return cluster; + }; + cluster.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) != null; + return cluster; + }; + return d3_layout_hierarchyRebind(cluster, hierarchy); + }; + function d3_layout_clusterY(children) { + return ( + 1 + + d3.max(children, function(child) { + return child.y; + }) + ); + } + function d3_layout_clusterX(children) { + return ( + children.reduce(function(x, child) { + return x + child.x; + }, 0) / children.length + ); + } + function d3_layout_clusterLeft(node) { + var children = node.children; + return children && children.length + ? d3_layout_clusterLeft(children[0]) + : node; + } + function d3_layout_clusterRight(node) { + var children = node.children, + n; + return children && (n = children.length) + ? d3_layout_clusterRight(children[n - 1]) + : node; + } + d3.layout.treemap = function() { + var hierarchy = d3.layout.hierarchy(), + round = Math.round, + size = [1, 1], + padding = null, + pad = d3_layout_treemapPadNull, + sticky = false, + stickies, + mode = 'squarify', + ratio = 0.5 * (1 + Math.sqrt(5)); + function scale(children, k) { + var i = -1, + n = children.length, + child, + area; + while (++i < n) { + area = (child = children[i]).value * (k < 0 ? 0 : k); + child.area = isNaN(area) || area <= 0 ? 0 : area; + } + } + function squarify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), + row = [], + remaining = children.slice(), + child, + best = Infinity, + score, + u = + mode === 'slice' + ? rect.dx + : mode === 'dice' + ? rect.dy + : mode === 'slice-dice' + ? node.depth & 1 + ? rect.dy + : rect.dx + : Math.min(rect.dx, rect.dy), + n; + scale(remaining, (rect.dx * rect.dy) / node.value); + row.area = 0; + while ((n = remaining.length) > 0) { + row.push((child = remaining[n - 1])); + row.area += child.area; + if (mode !== 'squarify' || (score = worst(row, u)) <= best) { + remaining.pop(); + best = score; + } else { + row.area -= row.pop().area; + position(row, u, rect, false); + u = Math.min(rect.dx, rect.dy); + row.length = row.area = 0; + best = Infinity; + } + } + if (row.length) { + position(row, u, rect, true); + row.length = row.area = 0; + } + children.forEach(squarify); + } + } + function stickify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), + remaining = children.slice(), + child, + row = []; + scale(remaining, (rect.dx * rect.dy) / node.value); + row.area = 0; + while ((child = remaining.pop())) { + row.push(child); + row.area += child.area; + if (child.z != null) { + position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); + row.length = row.area = 0; + } + } + children.forEach(stickify); + } + } + function worst(row, u) { + var s = row.area, + r, + rmax = 0, + rmin = Infinity, + i = -1, + n = row.length; + while (++i < n) { + if (!(r = row[i].area)) continue; + if (r < rmin) rmin = r; + if (r > rmax) rmax = r; + } + s *= s; + u *= u; + return s + ? Math.max((u * rmax * ratio) / s, s / (u * rmin * ratio)) + : Infinity; + } + function position(row, u, rect, flush) { + var i = -1, + n = row.length, + x = rect.x, + y = rect.y, + v = u ? round(row.area / u) : 0, + o; + if (u == rect.dx) { + if (flush || v > rect.dy) v = rect.dy; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dy = v; + x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0); + } + o.z = true; + o.dx += rect.x + rect.dx - x; + rect.y += v; + rect.dy -= v; + } else { + if (flush || v > rect.dx) v = rect.dx; + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dx = v; + y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0); + } + o.z = false; + o.dy += rect.y + rect.dy - y; + rect.x += v; + rect.dx -= v; + } + } + function treemap(d) { + var nodes = stickies || hierarchy(d), + root = nodes[0]; + root.x = root.y = 0; + if (root.value) (root.dx = size[0]), (root.dy = size[1]); + else root.dx = root.dy = 0; + if (stickies) hierarchy.revalue(root); + scale([root], (root.dx * root.dy) / root.value); + (stickies ? stickify : squarify)(root); + if (sticky) stickies = nodes; + return nodes; + } + treemap.size = function(x) { + if (!arguments.length) return size; + size = x; + return treemap; + }; + treemap.padding = function(x) { + if (!arguments.length) return padding; + function padFunction(node) { + var p = x.call(treemap, node, node.depth); + return p == null + ? d3_layout_treemapPadNull(node) + : d3_layout_treemapPad( + node, + typeof p === 'number' ? [p, p, p, p] : p + ); + } + function padConstant(node) { + return d3_layout_treemapPad(node, x); + } + var type; + pad = + (padding = x) == null + ? d3_layout_treemapPadNull + : (type = typeof x) === 'function' + ? padFunction + : type === 'number' + ? ((x = [x, x, x, x]), padConstant) + : padConstant; + return treemap; + }; + treemap.round = function(x) { + if (!arguments.length) return round != Number; + round = x ? Math.round : Number; + return treemap; + }; + treemap.sticky = function(x) { + if (!arguments.length) return sticky; + sticky = x; + stickies = null; + return treemap; + }; + treemap.ratio = function(x) { + if (!arguments.length) return ratio; + ratio = x; + return treemap; + }; + treemap.mode = function(x) { + if (!arguments.length) return mode; + mode = x + ''; + return treemap; + }; + return d3_layout_hierarchyRebind(treemap, hierarchy); + }; + function d3_layout_treemapPadNull(node) { + return { + x: node.x, + y: node.y, + dx: node.dx, + dy: node.dy + }; + } + function d3_layout_treemapPad(node, padding) { + var x = node.x + padding[3], + y = node.y + padding[0], + dx = node.dx - padding[1] - padding[3], + dy = node.dy - padding[0] - padding[2]; + if (dx < 0) { + x += dx / 2; + dx = 0; + } + if (dy < 0) { + y += dy / 2; + dy = 0; + } + return { + x: x, + y: y, + dx: dx, + dy: dy + }; + } + d3.random = { + normal: function(µ, σ) { + var n = arguments.length; + if (n < 2) σ = 1; + if (n < 1) µ = 0; + return function() { + var x, y, r; + do { + x = Math.random() * 2 - 1; + y = Math.random() * 2 - 1; + r = x * x + y * y; + } while (!r || r > 1); + return µ + σ * x * Math.sqrt((-2 * Math.log(r)) / r); + }; + }, + logNormal: function() { + var random = d3.random.normal.apply(d3, arguments); + return function() { + return Math.exp(random()); + }; + }, + bates: function(m) { + var random = d3.random.irwinHall(m); + return function() { + return random() / m; + }; + }, + irwinHall: function(m) { + return function() { + for (var s = 0, j = 0; j < m; j++) s += Math.random(); + return s; + }; + } + }; + d3.scale = {}; + function d3_scaleExtent(domain) { + var start = domain[0], + stop = domain[domain.length - 1]; + return start < stop ? [start, stop] : [stop, start]; + } + function d3_scaleRange(scale) { + return scale.rangeExtent + ? scale.rangeExtent() + : d3_scaleExtent(scale.range()); + } + function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { + var u = uninterpolate(domain[0], domain[1]), + i = interpolate(range[0], range[1]); + return function(x) { + return i(u(x)); + }; + } + function d3_scale_nice(domain, nice) { + var i0 = 0, + i1 = domain.length - 1, + x0 = domain[i0], + x1 = domain[i1], + dx; + if (x1 < x0) { + (dx = i0), (i0 = i1), (i1 = dx); + (dx = x0), (x0 = x1), (x1 = dx); + } + domain[i0] = nice.floor(x0); + domain[i1] = nice.ceil(x1); + return domain; + } + function d3_scale_niceStep(step) { + return step + ? { + floor: function(x) { + return Math.floor(x / step) * step; + }, + ceil: function(x) { + return Math.ceil(x / step) * step; + } + } + : d3_scale_niceIdentity; + } + var d3_scale_niceIdentity = { + floor: d3_identity, + ceil: d3_identity + }; + function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { + var u = [], + i = [], + j = 0, + k = Math.min(domain.length, range.length) - 1; + if (domain[k] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + while (++j <= k) { + u.push(uninterpolate(domain[j - 1], domain[j])); + i.push(interpolate(range[j - 1], range[j])); + } + return function(x) { + var j = d3.bisect(domain, x, 1, k) - 1; + return i[j](u[j](x)); + }; + } + d3.scale.linear = function() { + return d3_scale_linear([0, 1], [0, 1], d3_interpolate, false); + }; + function d3_scale_linear(domain, range, interpolate, clamp) { + var output, input; + function rescale() { + var linear = + Math.min(domain.length, range.length) > 2 + ? d3_scale_polylinear + : d3_scale_bilinear, + uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; + output = linear(domain, range, uninterpolate, interpolate); + input = linear(range, domain, uninterpolate, d3_interpolate); + return scale; + } + function scale(x) { + return output(x); + } + scale.invert = function(y) { + return input(y); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(Number); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.rangeRound = function(x) { + return scale.range(x).interpolate(d3_interpolateRound); + }; + scale.clamp = function(x) { + if (!arguments.length) return clamp; + clamp = x; + return rescale(); + }; + scale.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x; + return rescale(); + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + d3_scale_linearNice(domain, m); + return rescale(); + }; + scale.copy = function() { + return d3_scale_linear(domain, range, interpolate, clamp); + }; + return rescale(); + } + function d3_scale_linearRebind(scale, linear) { + return d3.rebind( + scale, + linear, + 'range', + 'rangeRound', + 'interpolate', + 'clamp' + ); + } + function d3_scale_linearNice(domain, m) { + d3_scale_nice( + domain, + d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]) + ); + d3_scale_nice( + domain, + d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]) + ); + return domain; + } + function d3_scale_linearTickRange(domain, m) { + if (m == null) m = 10; + var extent = d3_scaleExtent(domain), + span = extent[1] - extent[0], + step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), + err = (m / span) * step; + if (err <= 0.15) step *= 10; + else if (err <= 0.35) step *= 5; + else if (err <= 0.75) step *= 2; + extent[0] = Math.ceil(extent[0] / step) * step; + extent[1] = Math.floor(extent[1] / step) * step + step * 0.5; + extent[2] = step; + return extent; + } + function d3_scale_linearTicks(domain, m) { + return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); + } + function d3_scale_linearTickFormat(domain, m, format) { + var range = d3_scale_linearTickRange(domain, m); + if (format) { + var match = d3_format_re.exec(format); + match.shift(); + if (match[8] === 's') { + var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1]))); + if (!match[7]) + match[7] = '.' + d3_scale_linearPrecision(prefix.scale(range[2])); + match[8] = 'f'; + format = d3.format(match.join('')); + return function(d) { + return format(prefix.scale(d)) + prefix.symbol; + }; + } + if (!match[7]) + match[7] = '.' + d3_scale_linearFormatPrecision(match[8], range); + format = match.join(''); + } else { + format = ',.' + d3_scale_linearPrecision(range[2]) + 'f'; + } + return d3.format(format); + } + var d3_scale_linearFormatSignificant = { + s: 1, + g: 1, + p: 1, + r: 1, + e: 1 + }; + function d3_scale_linearPrecision(value) { + return -Math.floor(Math.log(value) / Math.LN10 + 0.01); + } + function d3_scale_linearFormatPrecision(type, range) { + var p = d3_scale_linearPrecision(range[2]); + return type in d3_scale_linearFormatSignificant + ? Math.abs( + p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1]))) + ) + +(type !== 'e') + : p - (type === '%') * 2; + } + d3.scale.log = function() { + return d3_scale_log(d3.scale.linear().domain([0, 1]), 10, true, [1, 10]); + }; + function d3_scale_log(linear, base, positive, domain) { + function log(x) { + return ( + (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / + Math.log(base) + ); + } + function pow(x) { + return positive ? Math.pow(base, x) : -Math.pow(base, -x); + } + function scale(x) { + return linear(log(x)); + } + scale.invert = function(x) { + return pow(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + positive = x[0] >= 0; + linear.domain((domain = x.map(Number)).map(log)); + return scale; + }; + scale.base = function(_) { + if (!arguments.length) return base; + base = +_; + linear.domain(domain.map(log)); + return scale; + }; + scale.nice = function() { + var niced = d3_scale_nice( + domain.map(log), + positive ? Math : d3_scale_logNiceNegative + ); + linear.domain(niced); + domain = niced.map(pow); + return scale; + }; + scale.ticks = function() { + var extent = d3_scaleExtent(domain), + ticks = [], + u = extent[0], + v = extent[1], + i = Math.floor(log(u)), + j = Math.ceil(log(v)), + n = base % 1 ? 2 : base; + if (isFinite(j - i)) { + if (positive) { + for (; i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k); + ticks.push(pow(i)); + } else { + ticks.push(pow(i)); + for (; i++ < j; ) + for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k); + } + for (i = 0; ticks[i] < u; i++) {} + for (j = ticks.length; ticks[j - 1] > v; j--) {} + ticks = ticks.slice(i, j); + } + return ticks; + }; + scale.tickFormat = function(n, format) { + if (!arguments.length) return d3_scale_logFormat; + if (arguments.length < 2) format = d3_scale_logFormat; + else if (typeof format !== 'function') format = d3.format(format); + var k = Math.max(1, (base * n) / scale.ticks().length); + return function(d) { + var i = d / pow(Math.round(log(d))); + if (i * base < base - 0.5) i *= base; + return i <= k ? format(d) : ''; + }; + }; + scale.copy = function() { + return d3_scale_log(linear.copy(), base, positive, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + var d3_scale_logFormat = d3.format('.0e'), + d3_scale_logNiceNegative = { + floor: function(x) { + return -Math.ceil(-x); + }, + ceil: function(x) { + return -Math.floor(-x); + } + }; + d3.scale.pow = function() { + return d3_scale_pow(d3.scale.linear(), 1, [0, 1]); + }; + function d3_scale_pow(linear, exponent, domain) { + var powp = d3_scale_powPow(exponent), + powb = d3_scale_powPow(1 / exponent); + function scale(x) { + return linear(powp(x)); + } + scale.invert = function(x) { + return powb(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return domain; + linear.domain((domain = x.map(Number)).map(powp)); + return scale; + }; + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + scale.nice = function(m) { + return scale.domain(d3_scale_linearNice(domain, m)); + }; + scale.exponent = function(x) { + if (!arguments.length) return exponent; + powp = d3_scale_powPow((exponent = x)); + powb = d3_scale_powPow(1 / exponent); + linear.domain(domain.map(powp)); + return scale; + }; + scale.copy = function() { + return d3_scale_pow(linear.copy(), exponent, domain); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_scale_powPow(e) { + return function(x) { + return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); + }; + } + d3.scale.sqrt = function() { + return d3.scale.pow().exponent(0.5); + }; + d3.scale.ordinal = function() { + return d3_scale_ordinal([], { + t: 'range', + a: [[]] + }); + }; + function d3_scale_ordinal(domain, ranger) { + var index, range, rangeBand; + function scale(x) { + return range[ + ((index.get(x) || + (ranger.t === 'range' ? index.set(x, domain.push(x)) : NaN)) - + 1) % + range.length + ]; + } + function steps(start, step) { + return d3.range(domain.length).map(function(i) { + return start + step * i; + }); + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = []; + index = new d3_Map(); + var i = -1, + n = x.length, + xi; + while (++i < n) + if (!index.has((xi = x[i]))) index.set(xi, domain.push(xi)); + return scale[ranger.t].apply(scale, ranger.a); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + rangeBand = 0; + ranger = { + t: 'range', + a: arguments + }; + return scale; + }; + scale.rangePoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], + stop = x[1], + step = + domain.length < 2 + ? ((start = (start + stop) / 2), 0) + : (stop - start) / (domain.length - 1 + padding); + range = steps(start + (step * padding) / 2, step); + rangeBand = 0; + ranger = { + t: 'rangePoints', + a: arguments + }; + return scale; + }; + scale.rangeRoundPoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], + stop = x[1], + step = + domain.length < 2 + ? ((start = stop = Math.round((start + stop) / 2)), 0) + : ((stop - start) / (domain.length - 1 + padding)) | 0; + range = steps( + start + + Math.round( + (step * padding) / 2 + + (stop - start - (domain.length - 1 + padding) * step) / 2 + ), + step + ); + rangeBand = 0; + ranger = { + t: 'rangeRoundPoints', + a: arguments + }; + return scale; + }; + scale.rangeBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], + start = x[reverse - 0], + stop = x[1 - reverse], + step = (stop - start) / (domain.length - padding + 2 * outerPadding); + range = steps(start + step * outerPadding, step); + if (reverse) range.reverse(); + rangeBand = step * (1 - padding); + ranger = { + t: 'rangeBands', + a: arguments + }; + return scale; + }; + scale.rangeRoundBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], + start = x[reverse - 0], + stop = x[1 - reverse], + step = Math.floor( + (stop - start) / (domain.length - padding + 2 * outerPadding) + ); + range = steps( + start + + Math.round((stop - start - (domain.length - padding) * step) / 2), + step + ); + if (reverse) range.reverse(); + rangeBand = Math.round(step * (1 - padding)); + ranger = { + t: 'rangeRoundBands', + a: arguments + }; + return scale; + }; + scale.rangeBand = function() { + return rangeBand; + }; + scale.rangeExtent = function() { + return d3_scaleExtent(ranger.a[0]); + }; + scale.copy = function() { + return d3_scale_ordinal(domain, ranger); + }; + return scale.domain(domain); + } + d3.scale.category10 = function() { + return d3.scale.ordinal().range(d3_category10); + }; + d3.scale.category20 = function() { + return d3.scale.ordinal().range(d3_category20); + }; + d3.scale.category20b = function() { + return d3.scale.ordinal().range(d3_category20b); + }; + d3.scale.category20c = function() { + return d3.scale.ordinal().range(d3_category20c); + }; + var d3_category10 = [ + 2062260, + 16744206, + 2924588, + 14034728, + 9725885, + 9197131, + 14907330, + 8355711, + 12369186, + 1556175 + ].map(d3_rgbString); + var d3_category20 = [ + 2062260, + 11454440, + 16744206, + 16759672, + 2924588, + 10018698, + 14034728, + 16750742, + 9725885, + 12955861, + 9197131, + 12885140, + 14907330, + 16234194, + 8355711, + 13092807, + 12369186, + 14408589, + 1556175, + 10410725 + ].map(d3_rgbString); + var d3_category20b = [ + 3750777, + 5395619, + 7040719, + 10264286, + 6519097, + 9216594, + 11915115, + 13556636, + 9202993, + 12426809, + 15186514, + 15190932, + 8666169, + 11356490, + 14049643, + 15177372, + 8077683, + 10834324, + 13528509, + 14589654 + ].map(d3_rgbString); + var d3_category20c = [ + 3244733, + 7057110, + 10406625, + 13032431, + 15095053, + 16616764, + 16625259, + 16634018, + 3253076, + 7652470, + 10607003, + 13101504, + 7695281, + 10394312, + 12369372, + 14342891, + 6513507, + 9868950, + 12434877, + 14277081 + ].map(d3_rgbString); + d3.scale.quantile = function() { + return d3_scale_quantile([], []); + }; + function d3_scale_quantile(domain, range) { + var thresholds; + function rescale() { + var k = 0, + q = range.length; + thresholds = []; + while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); + return scale; + } + function scale(x) { + if (!isNaN((x = +x))) return range[d3.bisect(thresholds, x)]; + } + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x + .map(d3_number) + .filter(d3_numeric) + .sort(d3_ascending); + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.quantiles = function() { + return thresholds; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return y < 0 + ? [NaN, NaN] + : [ + y > 0 ? thresholds[y - 1] : domain[0], + y < thresholds.length ? thresholds[y] : domain[domain.length - 1] + ]; + }; + scale.copy = function() { + return d3_scale_quantile(domain, range); + }; + return rescale(); + } + d3.scale.quantize = function() { + return d3_scale_quantize(0, 1, [0, 1]); + }; + function d3_scale_quantize(x0, x1, range) { + var kx, i; + function scale(x) { + return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; + } + function rescale() { + kx = range.length / (x1 - x0); + i = range.length - 1; + return scale; + } + scale.domain = function(x) { + if (!arguments.length) return [x0, x1]; + x0 = +x[0]; + x1 = +x[x.length - 1]; + return rescale(); + }; + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + y = y < 0 ? NaN : y / kx + x0; + return [y, y + 1 / kx]; + }; + scale.copy = function() { + return d3_scale_quantize(x0, x1, range); + }; + return rescale(); + } + d3.scale.threshold = function() { + return d3_scale_threshold([0.5], [0, 1]); + }; + function d3_scale_threshold(domain, range) { + function scale(x) { + if (x <= x) return range[d3.bisect(domain, x)]; + } + scale.domain = function(_) { + if (!arguments.length) return domain; + domain = _; + return scale; + }; + scale.range = function(_) { + if (!arguments.length) return range; + range = _; + return scale; + }; + scale.invertExtent = function(y) { + y = range.indexOf(y); + return [domain[y - 1], domain[y]]; + }; + scale.copy = function() { + return d3_scale_threshold(domain, range); + }; + return scale; + } + d3.scale.identity = function() { + return d3_scale_identity([0, 1]); + }; + function d3_scale_identity(domain) { + function identity(x) { + return +x; + } + identity.invert = identity; + identity.domain = identity.range = function(x) { + if (!arguments.length) return domain; + domain = x.map(identity); + return identity; + }; + identity.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + identity.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + identity.copy = function() { + return d3_scale_identity(domain); + }; + return identity; + } + d3.svg = {}; + function d3_zero() { + return 0; + } + d3.svg.arc = function() { + var innerRadius = d3_svg_arcInnerRadius, + outerRadius = d3_svg_arcOuterRadius, + cornerRadius = d3_zero, + padRadius = d3_svg_arcAuto, + startAngle = d3_svg_arcStartAngle, + endAngle = d3_svg_arcEndAngle, + padAngle = d3_svg_arcPadAngle; + function arc() { + var r0 = Math.max(0, +innerRadius.apply(this, arguments)), + r1 = Math.max(0, +outerRadius.apply(this, arguments)), + a0 = startAngle.apply(this, arguments) - halfπ, + a1 = endAngle.apply(this, arguments) - halfπ, + da = Math.abs(a1 - a0), + cw = a0 > a1 ? 0 : 1; + if (r1 < r0) (rc = r1), (r1 = r0), (r0 = rc); + if (da >= τε) + return ( + circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : '') + 'Z' + ); + var rc, + cr, + rp, + ap, + p0 = 0, + p1 = 0, + x0, + y0, + x1, + y1, + x2, + y2, + x3, + y3, + path = []; + if ((ap = (+padAngle.apply(this, arguments) || 0) / 2)) { + rp = + padRadius === d3_svg_arcAuto + ? Math.sqrt(r0 * r0 + r1 * r1) + : +padRadius.apply(this, arguments); + if (!cw) p1 *= -1; + if (r1) p1 = d3_asin((rp / r1) * Math.sin(ap)); + if (r0) p0 = d3_asin((rp / r0) * Math.sin(ap)); + } + if (r1) { + x0 = r1 * Math.cos(a0 + p1); + y0 = r1 * Math.sin(a0 + p1); + x1 = r1 * Math.cos(a1 - p1); + y1 = r1 * Math.sin(a1 - p1); + var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1; + if (p1 && (d3_svg_arcSweep(x0, y0, x1, y1) === cw) ^ l1) { + var h1 = (a0 + a1) / 2; + x0 = r1 * Math.cos(h1); + y0 = r1 * Math.sin(h1); + x1 = y1 = null; + } + } else { + x0 = y0 = 0; + } + if (r0) { + x2 = r0 * Math.cos(a1 - p0); + y2 = r0 * Math.sin(a1 - p0); + x3 = r0 * Math.cos(a0 + p0); + y3 = r0 * Math.sin(a0 + p0); + var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1; + if (p0 && (d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw) ^ l0) { + var h0 = (a0 + a1) / 2; + x2 = r0 * Math.cos(h0); + y2 = r0 * Math.sin(h0); + x3 = y3 = null; + } + } else { + x2 = y2 = 0; + } + if ( + da > ε && + (rc = Math.min( + Math.abs(r1 - r0) / 2, + +cornerRadius.apply(this, arguments) + )) > 0.001 + ) { + cr = (r0 < r1) ^ cw ? 0 : 1; + var rc1 = rc, + rc0 = rc; + if (da < π) { + var oc = + x3 == null + ? [x2, y2] + : x1 == null + ? [x0, y0] + : d3_geom_polygonIntersect( + [x0, y0], + [x3, y3], + [x1, y1], + [x2, y2] + ), + ax = x0 - oc[0], + ay = y0 - oc[1], + bx = x1 - oc[0], + by = y1 - oc[1], + kc = + 1 / + Math.sin( + Math.acos( + (ax * bx + ay * by) / + (Math.sqrt(ax * ax + ay * ay) * + Math.sqrt(bx * bx + by * by)) + ) / 2 + ), + lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = Math.min(rc, (r0 - lc) / (kc - 1)); + rc1 = Math.min(rc, (r1 - lc) / (kc + 1)); + } + if (x1 != null) { + var t30 = d3_svg_arcCornerTangents( + x3 == null ? [x2, y2] : [x3, y3], + [x0, y0], + r1, + rc1, + cw + ), + t12 = d3_svg_arcCornerTangents([x1, y1], [x2, y2], r1, rc1, cw); + if (rc === rc1) { + path.push( + 'M', + t30[0], + 'A', + rc1, + ',', + rc1, + ' 0 0,', + cr, + ' ', + t30[1], + 'A', + r1, + ',', + r1, + ' 0 ', + (1 - cw) ^ + d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), + ',', + cw, + ' ', + t12[1], + 'A', + rc1, + ',', + rc1, + ' 0 0,', + cr, + ' ', + t12[0] + ); + } else { + path.push( + 'M', + t30[0], + 'A', + rc1, + ',', + rc1, + ' 0 1,', + cr, + ' ', + t12[0] + ); + } + } else { + path.push('M', x0, ',', y0); + } + if (x3 != null) { + var t03 = d3_svg_arcCornerTangents([x0, y0], [x3, y3], r0, -rc0, cw), + t21 = d3_svg_arcCornerTangents( + [x2, y2], + x1 == null ? [x0, y0] : [x1, y1], + r0, + -rc0, + cw + ); + if (rc === rc0) { + path.push( + 'L', + t21[0], + 'A', + rc0, + ',', + rc0, + ' 0 0,', + cr, + ' ', + t21[1], + 'A', + r0, + ',', + r0, + ' 0 ', + cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), + ',', + 1 - cw, + ' ', + t03[1], + 'A', + rc0, + ',', + rc0, + ' 0 0,', + cr, + ' ', + t03[0] + ); + } else { + path.push( + 'L', + t21[0], + 'A', + rc0, + ',', + rc0, + ' 0 0,', + cr, + ' ', + t03[0] + ); + } + } else { + path.push('L', x2, ',', y2); + } + } else { + path.push('M', x0, ',', y0); + if (x1 != null) + path.push('A', r1, ',', r1, ' 0 ', l1, ',', cw, ' ', x1, ',', y1); + path.push('L', x2, ',', y2); + if (x3 != null) + path.push('A', r0, ',', r0, ' 0 ', l0, ',', 1 - cw, ' ', x3, ',', y3); + } + path.push('Z'); + return path.join(''); + } + function circleSegment(r1, cw) { + return ( + 'M0,' + + r1 + + 'A' + + r1 + + ',' + + r1 + + ' 0 1,' + + cw + + ' 0,' + + -r1 + + 'A' + + r1 + + ',' + + r1 + + ' 0 1,' + + cw + + ' 0,' + + r1 + ); + } + arc.innerRadius = function(v) { + if (!arguments.length) return innerRadius; + innerRadius = d3_functor(v); + return arc; + }; + arc.outerRadius = function(v) { + if (!arguments.length) return outerRadius; + outerRadius = d3_functor(v); + return arc; + }; + arc.cornerRadius = function(v) { + if (!arguments.length) return cornerRadius; + cornerRadius = d3_functor(v); + return arc; + }; + arc.padRadius = function(v) { + if (!arguments.length) return padRadius; + padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v); + return arc; + }; + arc.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return arc; + }; + arc.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return arc; + }; + arc.padAngle = function(v) { + if (!arguments.length) return padAngle; + padAngle = d3_functor(v); + return arc; + }; + arc.centroid = function() { + var r = + (+innerRadius.apply(this, arguments) + + +outerRadius.apply(this, arguments)) / + 2, + a = + (+startAngle.apply(this, arguments) + + +endAngle.apply(this, arguments)) / + 2 - + halfπ; + return [Math.cos(a) * r, Math.sin(a) * r]; + }; + return arc; + }; + var d3_svg_arcAuto = 'auto'; + function d3_svg_arcInnerRadius(d) { + return d.innerRadius; + } + function d3_svg_arcOuterRadius(d) { + return d.outerRadius; + } + function d3_svg_arcStartAngle(d) { + return d.startAngle; + } + function d3_svg_arcEndAngle(d) { + return d.endAngle; + } + function d3_svg_arcPadAngle(d) { + return d && d.padAngle; + } + function d3_svg_arcSweep(x0, y0, x1, y1) { + return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1; + } + function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) { + var x01 = p0[0] - p1[0], + y01 = p0[1] - p1[1], + lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), + ox = lo * y01, + oy = -lo * x01, + x1 = p0[0] + ox, + y1 = p0[1] + oy, + x2 = p1[0] + ox, + y2 = p1[1] + oy, + x3 = (x1 + x2) / 2, + y3 = (y1 + y2) / 2, + dx = x2 - x1, + dy = y2 - y1, + d2 = dx * dx + dy * dy, + r = r1 - rc, + D = x1 * y2 - x2 * y1, + d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), + cx0 = (D * dy - dx * d) / d2, + cy0 = (-D * dx - dy * d) / d2, + cx1 = (D * dy + dx * d) / d2, + cy1 = (-D * dx + dy * d) / d2, + dx0 = cx0 - x3, + dy0 = cy0 - y3, + dx1 = cx1 - x3, + dy1 = cy1 - y3; + if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) (cx0 = cx1), (cy0 = cy1); + return [[cx0 - ox, cy0 - oy], [(cx0 * r1) / r, (cy0 * r1) / r]]; + } + function d3_svg_line(projection) { + var x = d3_geom_pointX, + y = d3_geom_pointY, + defined = d3_true, + interpolate = d3_svg_lineLinear, + interpolateKey = interpolate.key, + tension = 0.7; + function line(data) { + var segments = [], + points = [], + i = -1, + n = data.length, + d, + fx = d3_functor(x), + fy = d3_functor(y); + function segment() { + segments.push('M', interpolate(projection(points), tension)); + } + while (++i < n) { + if (defined.call(this, (d = data[i]), i)) { + points.push([+fx.call(this, d, i), +fy.call(this, d, i)]); + } else if (points.length) { + segment(); + points = []; + } + } + if (points.length) segment(); + return segments.length ? segments.join('') : null; + } + line.x = function(_) { + if (!arguments.length) return x; + x = _; + return line; + }; + line.y = function(_) { + if (!arguments.length) return y; + y = _; + return line; + }; + line.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return line; + }; + line.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === 'function') interpolateKey = interpolate = _; + else + interpolateKey = (interpolate = + d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + return line; + }; + line.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return line; + }; + return line; + } + d3.svg.line = function() { + return d3_svg_line(d3_identity); + }; + var d3_svg_lineInterpolators = d3.map({ + linear: d3_svg_lineLinear, + 'linear-closed': d3_svg_lineLinearClosed, + step: d3_svg_lineStep, + 'step-before': d3_svg_lineStepBefore, + 'step-after': d3_svg_lineStepAfter, + basis: d3_svg_lineBasis, + 'basis-open': d3_svg_lineBasisOpen, + 'basis-closed': d3_svg_lineBasisClosed, + bundle: d3_svg_lineBundle, + cardinal: d3_svg_lineCardinal, + 'cardinal-open': d3_svg_lineCardinalOpen, + 'cardinal-closed': d3_svg_lineCardinalClosed, + monotone: d3_svg_lineMonotone + }); + d3_svg_lineInterpolators.forEach(function(key, value) { + value.key = key; + value.closed = /-closed$/.test(key); + }); + function d3_svg_lineLinear(points) { + return points.length > 1 ? points.join('L') : points + 'Z'; + } + function d3_svg_lineLinearClosed(points) { + return points.join('L') + 'Z'; + } + function d3_svg_lineStep(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ',', p[1]]; + while (++i < n) path.push('H', (p[0] + (p = points[i])[0]) / 2, 'V', p[1]); + if (n > 1) path.push('H', p[0]); + return path.join(''); + } + function d3_svg_lineStepBefore(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ',', p[1]]; + while (++i < n) path.push('V', (p = points[i])[1], 'H', p[0]); + return path.join(''); + } + function d3_svg_lineStepAfter(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ',', p[1]]; + while (++i < n) path.push('H', (p = points[i])[0], 'V', p[1]); + return path.join(''); + } + function d3_svg_lineCardinalOpen(points, tension) { + return points.length < 4 + ? d3_svg_lineLinear(points) + : points[1] + + d3_svg_lineHermite( + points.slice(1, -1), + d3_svg_lineCardinalTangents(points, tension) + ); + } + function d3_svg_lineCardinalClosed(points, tension) { + return points.length < 3 + ? d3_svg_lineLinearClosed(points) + : points[0] + + d3_svg_lineHermite( + (points.push(points[0]), points), + d3_svg_lineCardinalTangents( + [points[points.length - 2]].concat(points, [points[1]]), + tension + ) + ); + } + function d3_svg_lineCardinal(points, tension) { + return points.length < 3 + ? d3_svg_lineLinear(points) + : points[0] + + d3_svg_lineHermite( + points, + d3_svg_lineCardinalTangents(points, tension) + ); + } + function d3_svg_lineHermite(points, tangents) { + if ( + tangents.length < 1 || + (points.length != tangents.length && points.length != tangents.length + 2) + ) { + return d3_svg_lineLinear(points); + } + var quad = points.length != tangents.length, + path = '', + p0 = points[0], + p = points[1], + t0 = tangents[0], + t = t0, + pi = 1; + if (quad) { + path += + 'Q' + + (p[0] - (t0[0] * 2) / 3) + + ',' + + (p[1] - (t0[1] * 2) / 3) + + ',' + + p[0] + + ',' + + p[1]; + p0 = points[1]; + pi = 2; + } + if (tangents.length > 1) { + t = tangents[1]; + p = points[pi]; + pi++; + path += + 'C' + + (p0[0] + t0[0]) + + ',' + + (p0[1] + t0[1]) + + ',' + + (p[0] - t[0]) + + ',' + + (p[1] - t[1]) + + ',' + + p[0] + + ',' + + p[1]; + for (var i = 2; i < tangents.length; i++, pi++) { + p = points[pi]; + t = tangents[i]; + path += + 'S' + (p[0] - t[0]) + ',' + (p[1] - t[1]) + ',' + p[0] + ',' + p[1]; + } + } + if (quad) { + var lp = points[pi]; + path += + 'Q' + + (p[0] + (t[0] * 2) / 3) + + ',' + + (p[1] + (t[1] * 2) / 3) + + ',' + + lp[0] + + ',' + + lp[1]; + } + return path; + } + function d3_svg_lineCardinalTangents(points, tension) { + var tangents = [], + a = (1 - tension) / 2, + p0, + p1 = points[0], + p2 = points[1], + i = 1, + n = points.length; + while (++i < n) { + p0 = p1; + p1 = p2; + p2 = points[i]; + tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]); + } + return tangents; + } + function d3_svg_lineBasis(points) { + if (points.length < 3) return d3_svg_lineLinear(points); + var i = 1, + n = points.length, + pi = points[0], + x0 = pi[0], + y0 = pi[1], + px = [x0, x0, x0, (pi = points[1])[0]], + py = [y0, y0, y0, pi[1]], + path = [ + x0, + ',', + y0, + 'L', + d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), + ',', + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) + ]; + points.push(points[n - 1]); + while (++i <= n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + points.pop(); + path.push('L', pi); + return path.join(''); + } + function d3_svg_lineBasisOpen(points) { + if (points.length < 4) return d3_svg_lineLinear(points); + var path = [], + i = -1, + n = points.length, + pi, + px = [0], + py = [0]; + while (++i < 3) { + pi = points[i]; + px.push(pi[0]); + py.push(pi[1]); + } + path.push( + d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + + ',' + + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) + ); + --i; + while (++i < n) { + pi = points[i]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(''); + } + function d3_svg_lineBasisClosed(points) { + var path, + i = -1, + n = points.length, + m = n + 4, + pi, + px = [], + py = []; + while (++i < 4) { + pi = points[i % n]; + px.push(pi[0]); + py.push(pi[1]); + } + path = [ + d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), + ',', + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) + ]; + --i; + while (++i < m) { + pi = points[i % n]; + px.shift(); + px.push(pi[0]); + py.shift(); + py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(''); + } + function d3_svg_lineBundle(points, tension) { + var n = points.length - 1; + if (n) { + var x0 = points[0][0], + y0 = points[0][1], + dx = points[n][0] - x0, + dy = points[n][1] - y0, + i = -1, + p, + t; + while (++i <= n) { + p = points[i]; + t = i / n; + p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); + p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); + } + } + return d3_svg_lineBasis(points); + } + function d3_svg_lineDot4(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; + } + var d3_svg_lineBasisBezier1 = [0, 2 / 3, 1 / 3, 0], + d3_svg_lineBasisBezier2 = [0, 1 / 3, 2 / 3, 0], + d3_svg_lineBasisBezier3 = [0, 1 / 6, 2 / 3, 1 / 6]; + function d3_svg_lineBasisBezier(path, x, y) { + path.push( + 'C', + d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), + ',', + d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), + ',', + d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), + ',', + d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), + ',', + d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), + ',', + d3_svg_lineDot4(d3_svg_lineBasisBezier3, y) + ); + } + function d3_svg_lineSlope(p0, p1) { + return (p1[1] - p0[1]) / (p1[0] - p0[0]); + } + function d3_svg_lineFiniteDifferences(points) { + var i = 0, + j = points.length - 1, + m = [], + p0 = points[0], + p1 = points[1], + d = (m[0] = d3_svg_lineSlope(p0, p1)); + while (++i < j) { + m[i] = (d + (d = d3_svg_lineSlope((p0 = p1), (p1 = points[i + 1])))) / 2; + } + m[i] = d; + return m; + } + function d3_svg_lineMonotoneTangents(points) { + var tangents = [], + d, + a, + b, + s, + m = d3_svg_lineFiniteDifferences(points), + i = -1, + j = points.length - 1; + while (++i < j) { + d = d3_svg_lineSlope(points[i], points[i + 1]); + if (abs(d) < ε) { + m[i] = m[i + 1] = 0; + } else { + a = m[i] / d; + b = m[i + 1] / d; + s = a * a + b * b; + if (s > 9) { + s = (d * 3) / Math.sqrt(s); + m[i] = s * a; + m[i + 1] = s * b; + } + } + } + i = -1; + while (++i <= j) { + s = + (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / + (6 * (1 + m[i] * m[i])); + tangents.push([s || 0, m[i] * s || 0]); + } + return tangents; + } + function d3_svg_lineMonotone(points) { + return points.length < 3 + ? d3_svg_lineLinear(points) + : points[0] + + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); + } + d3.svg.line.radial = function() { + var line = d3_svg_line(d3_svg_lineRadial); + (line.radius = line.x), delete line.x; + (line.angle = line.y), delete line.y; + return line; + }; + function d3_svg_lineRadial(points) { + var point, + i = -1, + n = points.length, + r, + a; + while (++i < n) { + point = points[i]; + r = point[0]; + a = point[1] - halfπ; + point[0] = r * Math.cos(a); + point[1] = r * Math.sin(a); + } + return points; + } + function d3_svg_area(projection) { + var x0 = d3_geom_pointX, + x1 = d3_geom_pointX, + y0 = 0, + y1 = d3_geom_pointY, + defined = d3_true, + interpolate = d3_svg_lineLinear, + interpolateKey = interpolate.key, + interpolateReverse = interpolate, + L = 'L', + tension = 0.7; + function area(data) { + var segments = [], + points0 = [], + points1 = [], + i = -1, + n = data.length, + d, + fx0 = d3_functor(x0), + fy0 = d3_functor(y0), + fx1 = + x0 === x1 + ? function() { + return x; + } + : d3_functor(x1), + fy1 = + y0 === y1 + ? function() { + return y; + } + : d3_functor(y1), + x, + y; + function segment() { + segments.push( + 'M', + interpolate(projection(points1), tension), + L, + interpolateReverse(projection(points0.reverse()), tension), + 'Z' + ); + } + while (++i < n) { + if (defined.call(this, (d = data[i]), i)) { + points0.push([ + (x = +fx0.call(this, d, i)), + (y = +fy0.call(this, d, i)) + ]); + points1.push([+fx1.call(this, d, i), +fy1.call(this, d, i)]); + } else if (points0.length) { + segment(); + points0 = []; + points1 = []; + } + } + if (points0.length) segment(); + return segments.length ? segments.join('') : null; + } + area.x = function(_) { + if (!arguments.length) return x1; + x0 = x1 = _; + return area; + }; + area.x0 = function(_) { + if (!arguments.length) return x0; + x0 = _; + return area; + }; + area.x1 = function(_) { + if (!arguments.length) return x1; + x1 = _; + return area; + }; + area.y = function(_) { + if (!arguments.length) return y1; + y0 = y1 = _; + return area; + }; + area.y0 = function(_) { + if (!arguments.length) return y0; + y0 = _; + return area; + }; + area.y1 = function(_) { + if (!arguments.length) return y1; + y1 = _; + return area; + }; + area.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return area; + }; + area.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === 'function') interpolateKey = interpolate = _; + else + interpolateKey = (interpolate = + d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + interpolateReverse = interpolate.reverse || interpolate; + L = interpolate.closed ? 'M' : 'L'; + return area; + }; + area.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return area; + }; + return area; + } + d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter; + d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore; + d3.svg.area = function() { + return d3_svg_area(d3_identity); + }; + d3.svg.area.radial = function() { + var area = d3_svg_area(d3_svg_lineRadial); + (area.radius = area.x), delete area.x; + (area.innerRadius = area.x0), delete area.x0; + (area.outerRadius = area.x1), delete area.x1; + (area.angle = area.y), delete area.y; + (area.startAngle = area.y0), delete area.y0; + (area.endAngle = area.y1), delete area.y1; + return area; + }; + d3.svg.chord = function() { + var source = d3_source, + target = d3_target, + radius = d3_svg_chordRadius, + startAngle = d3_svg_arcStartAngle, + endAngle = d3_svg_arcEndAngle; + function chord(d, i) { + var s = subgroup(this, source, d, i), + t = subgroup(this, target, d, i); + return ( + 'M' + + s.p0 + + arc(s.r, s.p1, s.a1 - s.a0) + + (equals(s, t) + ? curve(s.r, s.p1, s.r, s.p0) + : curve(s.r, s.p1, t.r, t.p0) + + arc(t.r, t.p1, t.a1 - t.a0) + + curve(t.r, t.p1, s.r, s.p0)) + + 'Z' + ); + } + function subgroup(self, f, d, i) { + var subgroup = f.call(self, d, i), + r = radius.call(self, subgroup, i), + a0 = startAngle.call(self, subgroup, i) - halfπ, + a1 = endAngle.call(self, subgroup, i) - halfπ; + return { + r: r, + a0: a0, + a1: a1, + p0: [r * Math.cos(a0), r * Math.sin(a0)], + p1: [r * Math.cos(a1), r * Math.sin(a1)] + }; + } + function equals(a, b) { + return a.a0 == b.a0 && a.a1 == b.a1; + } + function arc(r, p, a) { + return 'A' + r + ',' + r + ' 0 ' + +(a > π) + ',1 ' + p; + } + function curve(r0, p0, r1, p1) { + return 'Q 0,0 ' + p1; + } + chord.radius = function(v) { + if (!arguments.length) return radius; + radius = d3_functor(v); + return chord; + }; + chord.source = function(v) { + if (!arguments.length) return source; + source = d3_functor(v); + return chord; + }; + chord.target = function(v) { + if (!arguments.length) return target; + target = d3_functor(v); + return chord; + }; + chord.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return chord; + }; + chord.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return chord; + }; + return chord; + }; + function d3_svg_chordRadius(d) { + return d.radius; + } + d3.svg.diagonal = function() { + var source = d3_source, + target = d3_target, + projection = d3_svg_diagonalProjection; + function diagonal(d, i) { + var p0 = source.call(this, d, i), + p3 = target.call(this, d, i), + m = (p0.y + p3.y) / 2, + p = [ + p0, + { + x: p0.x, + y: m + }, + { + x: p3.x, + y: m + }, + p3 + ]; + p = p.map(projection); + return 'M' + p[0] + 'C' + p[1] + ' ' + p[2] + ' ' + p[3]; + } + diagonal.source = function(x) { + if (!arguments.length) return source; + source = d3_functor(x); + return diagonal; + }; + diagonal.target = function(x) { + if (!arguments.length) return target; + target = d3_functor(x); + return diagonal; + }; + diagonal.projection = function(x) { + if (!arguments.length) return projection; + projection = x; + return diagonal; + }; + return diagonal; + }; + function d3_svg_diagonalProjection(d) { + return [d.x, d.y]; + } + d3.svg.diagonal.radial = function() { + var diagonal = d3.svg.diagonal(), + projection = d3_svg_diagonalProjection, + projection_ = diagonal.projection; + diagonal.projection = function(x) { + return arguments.length + ? projection_(d3_svg_diagonalRadialProjection((projection = x))) + : projection; + }; + return diagonal; + }; + function d3_svg_diagonalRadialProjection(projection) { + return function() { + var d = projection.apply(this, arguments), + r = d[0], + a = d[1] - halfπ; + return [r * Math.cos(a), r * Math.sin(a)]; + }; + } + d3.svg.symbol = function() { + var type = d3_svg_symbolType, + size = d3_svg_symbolSize; + function symbol(d, i) { + return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)( + size.call(this, d, i) + ); + } + symbol.type = function(x) { + if (!arguments.length) return type; + type = d3_functor(x); + return symbol; + }; + symbol.size = function(x) { + if (!arguments.length) return size; + size = d3_functor(x); + return symbol; + }; + return symbol; + }; + function d3_svg_symbolSize() { + return 64; + } + function d3_svg_symbolType() { + return 'circle'; + } + function d3_svg_symbolCircle(size) { + var r = Math.sqrt(size / π); + return ( + 'M0,' + + r + + 'A' + + r + + ',' + + r + + ' 0 1,1 0,' + + -r + + 'A' + + r + + ',' + + r + + ' 0 1,1 0,' + + r + + 'Z' + ); + } + var d3_svg_symbols = d3.map({ + circle: d3_svg_symbolCircle, + cross: function(size) { + var r = Math.sqrt(size / 5) / 2; + return ( + 'M' + + -3 * r + + ',' + + -r + + 'H' + + -r + + 'V' + + -3 * r + + 'H' + + r + + 'V' + + -r + + 'H' + + 3 * r + + 'V' + + r + + 'H' + + r + + 'V' + + 3 * r + + 'H' + + -r + + 'V' + + r + + 'H' + + -3 * r + + 'Z' + ); + }, + diamond: function(size) { + var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), + rx = ry * d3_svg_symbolTan30; + return ( + 'M0,' + -ry + 'L' + rx + ',0' + ' 0,' + ry + ' ' + -rx + ',0' + 'Z' + ); + }, + square: function(size) { + var r = Math.sqrt(size) / 2; + return ( + 'M' + + -r + + ',' + + -r + + 'L' + + r + + ',' + + -r + + ' ' + + r + + ',' + + r + + ' ' + + -r + + ',' + + r + + 'Z' + ); + }, + 'triangle-down': function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), + ry = (rx * d3_svg_symbolSqrt3) / 2; + return 'M0,' + ry + 'L' + rx + ',' + -ry + ' ' + -rx + ',' + -ry + 'Z'; + }, + 'triangle-up': function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), + ry = (rx * d3_svg_symbolSqrt3) / 2; + return 'M0,' + -ry + 'L' + rx + ',' + ry + ' ' + -rx + ',' + ry + 'Z'; + } + }); + d3.svg.symbolTypes = d3_svg_symbols.keys(); + var d3_svg_symbolSqrt3 = Math.sqrt(3), + d3_svg_symbolTan30 = Math.tan(30 * d3_radians); + d3_selectionPrototype.transition = function(name) { + var id = d3_transitionInheritId || ++d3_transitionId, + ns = d3_transitionNamespace(name), + subgroups = [], + subgroup, + node, + transition = d3_transitionInherit || { + time: Date.now(), + ease: d3_ease_cubicInOut, + delay: 0, + duration: 250 + }; + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push((subgroup = [])); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if ((node = group[i])) d3_transitionNode(node, i, ns, id, transition); + subgroup.push(node); + } + } + return d3_transition(subgroups, ns, id); + }; + d3_selectionPrototype.interrupt = function(name) { + return this.each( + name == null + ? d3_selection_interrupt + : d3_selection_interruptNS(d3_transitionNamespace(name)) + ); + }; + var d3_selection_interrupt = d3_selection_interruptNS( + d3_transitionNamespace() + ); + function d3_selection_interruptNS(ns) { + return function() { + var lock, activeId, active; + if ((lock = this[ns]) && (active = lock[(activeId = lock.active)])) { + active.timer.c = null; + active.timer.t = NaN; + if (--lock.count) delete lock[activeId]; + else delete this[ns]; + lock.active += 0.5; + active.event && + active.event.interrupt.call(this, this.__data__, active.index); + } + }; + } + function d3_transition(groups, ns, id) { + d3_subclass(groups, d3_transitionPrototype); + groups.namespace = ns; + groups.id = id; + return groups; + } + var d3_transitionPrototype = [], + d3_transitionId = 0, + d3_transitionInheritId, + d3_transitionInherit; + d3_transitionPrototype.call = d3_selectionPrototype.call; + d3_transitionPrototype.empty = d3_selectionPrototype.empty; + d3_transitionPrototype.node = d3_selectionPrototype.node; + d3_transitionPrototype.size = d3_selectionPrototype.size; + d3.transition = function(selection, name) { + return selection && selection.transition + ? d3_transitionInheritId + ? selection.transition(name) + : selection + : d3.selection().transition(selection); + }; + d3.transition.prototype = d3_transitionPrototype; + d3_transitionPrototype.select = function(selector) { + var id = this.id, + ns = this.namespace, + subgroups = [], + subgroup, + subnode, + node; + selector = d3_selection_selector(selector); + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push((subgroup = [])); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if ( + (node = group[i]) && + (subnode = selector.call(node, node.__data__, i, j)) + ) { + if ('__data__' in node) subnode.__data__ = node.__data__; + d3_transitionNode(subnode, i, ns, id, node[ns][id]); + subgroup.push(subnode); + } else { + subgroup.push(null); + } + } + } + return d3_transition(subgroups, ns, id); + }; + d3_transitionPrototype.selectAll = function(selector) { + var id = this.id, + ns = this.namespace, + subgroups = [], + subgroup, + subnodes, + node, + subnode, + transition; + selector = d3_selection_selectorAll(selector); + for (var j = -1, m = this.length; ++j < m; ) { + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if ((node = group[i])) { + transition = node[ns][id]; + subnodes = selector.call(node, node.__data__, i, j); + subgroups.push((subgroup = [])); + for (var k = -1, o = subnodes.length; ++k < o; ) { + if ((subnode = subnodes[k])) + d3_transitionNode(subnode, k, ns, id, transition); + subgroup.push(subnode); + } + } + } + } + return d3_transition(subgroups, ns, id); + }; + d3_transitionPrototype.filter = function(filter) { + var subgroups = [], + subgroup, + group, + node; + if (typeof filter !== 'function') filter = d3_selection_filter(filter); + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push((subgroup = [])); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + return d3_transition(subgroups, this.namespace, this.id); + }; + d3_transitionPrototype.tween = function(name, tween) { + var id = this.id, + ns = this.namespace; + if (arguments.length < 2) return this.node()[ns][id].tween.get(name); + return d3_selection_each( + this, + tween == null + ? function(node) { + node[ns][id].tween.remove(name); + } + : function(node) { + node[ns][id].tween.set(name, tween); + } + ); + }; + function d3_transition_tween(groups, name, value, tween) { + var id = groups.id, + ns = groups.namespace; + return d3_selection_each( + groups, + typeof value === 'function' + ? function(node, i, j) { + node[ns][id].tween.set( + name, + tween(value.call(node, node.__data__, i, j)) + ); + } + : ((value = tween(value)), + function(node) { + node[ns][id].tween.set(name, value); + }) + ); + } + d3_transitionPrototype.attr = function(nameNS, value) { + if (arguments.length < 2) { + for (value in nameNS) this.attr(value, nameNS[value]); + return this; + } + var interpolate = + nameNS == 'transform' ? d3_interpolateTransform : d3_interpolate, + name = d3.ns.qualify(nameNS); + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + function attrTween(b) { + return b == null + ? attrNull + : ((b += ''), + function() { + var a = this.getAttribute(name), + i; + return ( + a !== b && + ((i = interpolate(a, b)), + function(t) { + this.setAttribute(name, i(t)); + }) + ); + }); + } + function attrTweenNS(b) { + return b == null + ? attrNullNS + : ((b += ''), + function() { + var a = this.getAttributeNS(name.space, name.local), + i; + return ( + a !== b && + ((i = interpolate(a, b)), + function(t) { + this.setAttributeNS(name.space, name.local, i(t)); + }) + ); + }); + } + return d3_transition_tween( + this, + 'attr.' + nameNS, + value, + name.local ? attrTweenNS : attrTween + ); + }; + d3_transitionPrototype.attrTween = function(nameNS, tween) { + var name = d3.ns.qualify(nameNS); + function attrTween(d, i) { + var f = tween.call(this, d, i, this.getAttribute(name)); + return ( + f && + function(t) { + this.setAttribute(name, f(t)); + } + ); + } + function attrTweenNS(d, i) { + var f = tween.call( + this, + d, + i, + this.getAttributeNS(name.space, name.local) + ); + return ( + f && + function(t) { + this.setAttributeNS(name.space, name.local, f(t)); + } + ); + } + return this.tween('attr.' + nameNS, name.local ? attrTweenNS : attrTween); + }; + d3_transitionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + if (typeof name !== 'string') { + if (n < 2) value = ''; + for (priority in name) this.style(priority, name[priority], value); + return this; + } + priority = ''; + } + function styleNull() { + this.style.removeProperty(name); + } + function styleString(b) { + return b == null + ? styleNull + : ((b += ''), + function() { + var a = d3_window(this) + .getComputedStyle(this, null) + .getPropertyValue(name), + i; + return ( + a !== b && + ((i = d3_interpolate(a, b)), + function(t) { + this.style.setProperty(name, i(t), priority); + }) + ); + }); + } + return d3_transition_tween(this, 'style.' + name, value, styleString); + }; + d3_transitionPrototype.styleTween = function(name, tween, priority) { + if (arguments.length < 3) priority = ''; + function styleTween(d, i) { + var f = tween.call( + this, + d, + i, + d3_window(this) + .getComputedStyle(this, null) + .getPropertyValue(name) + ); + return ( + f && + function(t) { + this.style.setProperty(name, f(t), priority); + } + ); + } + return this.tween('style.' + name, styleTween); + }; + d3_transitionPrototype.text = function(value) { + return d3_transition_tween(this, 'text', value, d3_transition_text); + }; + function d3_transition_text(b) { + if (b == null) b = ''; + return function() { + this.textContent = b; + }; + } + d3_transitionPrototype.remove = function() { + var ns = this.namespace; + return this.each('end.transition', function() { + var p; + if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this); + }); + }; + d3_transitionPrototype.ease = function(value) { + var id = this.id, + ns = this.namespace; + if (arguments.length < 1) return this.node()[ns][id].ease; + if (typeof value !== 'function') value = d3.ease.apply(d3, arguments); + return d3_selection_each(this, function(node) { + node[ns][id].ease = value; + }); + }; + d3_transitionPrototype.delay = function(value) { + var id = this.id, + ns = this.namespace; + if (arguments.length < 1) return this.node()[ns][id].delay; + return d3_selection_each( + this, + typeof value === 'function' + ? function(node, i, j) { + node[ns][id].delay = +value.call(node, node.__data__, i, j); + } + : ((value = +value), + function(node) { + node[ns][id].delay = value; + }) + ); + }; + d3_transitionPrototype.duration = function(value) { + var id = this.id, + ns = this.namespace; + if (arguments.length < 1) return this.node()[ns][id].duration; + return d3_selection_each( + this, + typeof value === 'function' + ? function(node, i, j) { + node[ns][id].duration = Math.max( + 1, + value.call(node, node.__data__, i, j) + ); + } + : ((value = Math.max(1, value)), + function(node) { + node[ns][id].duration = value; + }) + ); + }; + d3_transitionPrototype.each = function(type, listener) { + var id = this.id, + ns = this.namespace; + if (arguments.length < 2) { + var inherit = d3_transitionInherit, + inheritId = d3_transitionInheritId; + try { + d3_transitionInheritId = id; + d3_selection_each(this, function(node, i, j) { + d3_transitionInherit = node[ns][id]; + type.call(node, node.__data__, i, j); + }); + } finally { + d3_transitionInherit = inherit; + d3_transitionInheritId = inheritId; + } + } else { + d3_selection_each(this, function(node) { + var transition = node[ns][id]; + ( + transition.event || + (transition.event = d3.dispatch('start', 'end', 'interrupt')) + ).on(type, listener); + }); + } + return this; + }; + d3_transitionPrototype.transition = function() { + var id0 = this.id, + id1 = ++d3_transitionId, + ns = this.namespace, + subgroups = [], + subgroup, + group, + node, + transition; + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push((subgroup = [])); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if ((node = group[i])) { + transition = node[ns][id0]; + d3_transitionNode(node, i, ns, id1, { + time: transition.time, + ease: transition.ease, + delay: transition.delay + transition.duration, + duration: transition.duration + }); + } + subgroup.push(node); + } + } + return d3_transition(subgroups, ns, id1); + }; + function d3_transitionNamespace(name) { + return name == null ? '__transition__' : '__transition_' + name + '__'; + } + function d3_transitionNode(node, i, ns, id, inherit) { + var lock = + node[ns] || + (node[ns] = { + active: 0, + count: 0 + }), + transition = lock[id], + time, + timer, + duration, + ease, + tweens; + function schedule(elapsed) { + var delay = transition.delay; + timer.t = delay + time; + if (delay <= elapsed) return start(elapsed - delay); + timer.c = start; + } + function start(elapsed) { + var activeId = lock.active, + active = lock[activeId]; + if (active) { + active.timer.c = null; + active.timer.t = NaN; + --lock.count; + delete lock[activeId]; + active.event && + active.event.interrupt.call(node, node.__data__, active.index); + } + for (var cancelId in lock) { + if (+cancelId < id) { + var cancel = lock[cancelId]; + cancel.timer.c = null; + cancel.timer.t = NaN; + --lock.count; + delete lock[cancelId]; + } + } + timer.c = tick; + d3_timer( + function() { + if (timer.c && tick(elapsed || 1)) { + timer.c = null; + timer.t = NaN; + } + return 1; + }, + 0, + time + ); + lock.active = id; + transition.event && transition.event.start.call(node, node.__data__, i); + tweens = []; + transition.tween.forEach(function(key, value) { + if ((value = value.call(node, node.__data__, i))) { + tweens.push(value); + } + }); + ease = transition.ease; + duration = transition.duration; + } + function tick(elapsed) { + var t = elapsed / duration, + e = ease(t), + n = tweens.length; + while (n > 0) { + tweens[--n].call(node, e); + } + if (t >= 1) { + transition.event && transition.event.end.call(node, node.__data__, i); + if (--lock.count) delete lock[id]; + else delete node[ns]; + return 1; + } + } + if (!transition) { + time = inherit.time; + timer = d3_timer(schedule, 0, time); + transition = lock[id] = { + tween: new d3_Map(), + time: time, + timer: timer, + delay: inherit.delay, + duration: inherit.duration, + ease: inherit.ease, + index: i + }; + inherit = null; + ++lock.count; + } + } + d3.svg.axis = function() { + var scale = d3.scale.linear(), + orient = d3_svg_axisDefaultOrient, + innerTickSize = 6, + outerTickSize = 6, + tickPadding = 3, + tickArguments_ = [10], + tickValues = null, + tickFormat_; + function axis(g) { + g.each(function() { + var g = d3.select(this); + var scale0 = this.__chart__ || scale, + scale1 = (this.__chart__ = scale.copy()); + var ticks = + tickValues == null + ? scale1.ticks + ? scale1.ticks.apply(scale1, tickArguments_) + : scale1.domain() + : tickValues, + tickFormat = + tickFormat_ == null + ? scale1.tickFormat + ? scale1.tickFormat.apply(scale1, tickArguments_) + : d3_identity + : tickFormat_, + tick = g.selectAll('.tick').data(ticks, scale1), + tickEnter = tick + .enter() + .insert('g', '.domain') + .attr('class', 'tick') + .style('opacity', ε), + tickExit = d3 + .transition(tick.exit()) + .style('opacity', ε) + .remove(), + tickUpdate = d3.transition(tick.order()).style('opacity', 1), + tickSpacing = Math.max(innerTickSize, 0) + tickPadding, + tickTransform; + var range = d3_scaleRange(scale1), + path = g.selectAll('.domain').data([0]), + pathUpdate = (path + .enter() + .append('path') + .attr('class', 'domain'), + d3.transition(path)); + tickEnter.append('line'); + tickEnter.append('text'); + var lineEnter = tickEnter.select('line'), + lineUpdate = tickUpdate.select('line'), + text = tick.select('text').text(tickFormat), + textEnter = tickEnter.select('text'), + textUpdate = tickUpdate.select('text'), + sign = orient === 'top' || orient === 'left' ? -1 : 1, + x1, + x2, + y1, + y2; + if (orient === 'bottom' || orient === 'top') { + (tickTransform = d3_svg_axisX), + (x1 = 'x'), + (y1 = 'y'), + (x2 = 'x2'), + (y2 = 'y2'); + text + .attr('dy', sign < 0 ? '0em' : '.71em') + .style('text-anchor', 'middle'); + pathUpdate.attr( + 'd', + 'M' + + range[0] + + ',' + + sign * outerTickSize + + 'V0H' + + range[1] + + 'V' + + sign * outerTickSize + ); + } else { + (tickTransform = d3_svg_axisY), + (x1 = 'y'), + (y1 = 'x'), + (x2 = 'y2'), + (y2 = 'x2'); + text + .attr('dy', '.32em') + .style('text-anchor', sign < 0 ? 'end' : 'start'); + pathUpdate.attr( + 'd', + 'M' + + sign * outerTickSize + + ',' + + range[0] + + 'H0V' + + range[1] + + 'H' + + sign * outerTickSize + ); + } + lineEnter.attr(y2, sign * innerTickSize); + textEnter.attr(y1, sign * tickSpacing); + lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize); + textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing); + if (scale1.rangeBand) { + var x = scale1, + dx = x.rangeBand() / 2; + scale0 = scale1 = function(d) { + return x(d) + dx; + }; + } else if (scale0.rangeBand) { + scale0 = scale1; + } else { + tickExit.call(tickTransform, scale1, scale0); + } + tickEnter.call(tickTransform, scale0, scale1); + tickUpdate.call(tickTransform, scale1, scale1); + }); + } + axis.scale = function(x) { + if (!arguments.length) return scale; + scale = x; + return axis; + }; + axis.orient = function(x) { + if (!arguments.length) return orient; + orient = x in d3_svg_axisOrients ? x + '' : d3_svg_axisDefaultOrient; + return axis; + }; + axis.ticks = function() { + if (!arguments.length) return tickArguments_; + tickArguments_ = d3_array(arguments); + return axis; + }; + axis.tickValues = function(x) { + if (!arguments.length) return tickValues; + tickValues = x; + return axis; + }; + axis.tickFormat = function(x) { + if (!arguments.length) return tickFormat_; + tickFormat_ = x; + return axis; + }; + axis.tickSize = function(x) { + var n = arguments.length; + if (!n) return innerTickSize; + innerTickSize = +x; + outerTickSize = +arguments[n - 1]; + return axis; + }; + axis.innerTickSize = function(x) { + if (!arguments.length) return innerTickSize; + innerTickSize = +x; + return axis; + }; + axis.outerTickSize = function(x) { + if (!arguments.length) return outerTickSize; + outerTickSize = +x; + return axis; + }; + axis.tickPadding = function(x) { + if (!arguments.length) return tickPadding; + tickPadding = +x; + return axis; + }; + axis.tickSubdivide = function() { + return arguments.length && axis; + }; + return axis; + }; + var d3_svg_axisDefaultOrient = 'bottom', + d3_svg_axisOrients = { + top: 1, + right: 1, + bottom: 1, + left: 1 + }; + function d3_svg_axisX(selection, x0, x1) { + selection.attr('transform', function(d) { + var v0 = x0(d); + return 'translate(' + (isFinite(v0) ? v0 : x1(d)) + ',0)'; + }); + } + function d3_svg_axisY(selection, y0, y1) { + selection.attr('transform', function(d) { + var v0 = y0(d); + return 'translate(0,' + (isFinite(v0) ? v0 : y1(d)) + ')'; + }); + } + d3.svg.brush = function() { + var event = d3_eventDispatch(brush, 'brushstart', 'brush', 'brushend'), + x = null, + y = null, + xExtent = [0, 0], + yExtent = [0, 0], + xExtentDomain, + yExtentDomain, + xClamp = true, + yClamp = true, + resizes = d3_svg_brushResizes[0]; + function brush(g) { + g.each(function() { + var g = d3 + .select(this) + .style('pointer-events', 'all') + .style('-webkit-tap-highlight-color', 'rgba(0,0,0,0)') + .on('mousedown.brush', brushstart) + .on('touchstart.brush', brushstart); + var background = g.selectAll('.background').data([0]); + background + .enter() + .append('rect') + .attr('class', 'background') + .style('visibility', 'hidden') + .style('cursor', 'crosshair'); + g.selectAll('.extent') + .data([0]) + .enter() + .append('rect') + .attr('class', 'extent') + .style('cursor', 'move'); + var resize = g.selectAll('.resize').data(resizes, d3_identity); + resize.exit().remove(); + resize + .enter() + .append('g') + .attr('class', function(d) { + return 'resize ' + d; + }) + .style('cursor', function(d) { + return d3_svg_brushCursor[d]; + }) + .append('rect') + .attr('x', function(d) { + return /[ew]$/.test(d) ? -3 : null; + }) + .attr('y', function(d) { + return /^[ns]/.test(d) ? -3 : null; + }) + .attr('width', 6) + .attr('height', 6) + .style('visibility', 'hidden'); + resize.style('display', brush.empty() ? 'none' : null); + var gUpdate = d3.transition(g), + backgroundUpdate = d3.transition(background), + range; + if (x) { + range = d3_scaleRange(x); + backgroundUpdate + .attr('x', range[0]) + .attr('width', range[1] - range[0]); + redrawX(gUpdate); + } + if (y) { + range = d3_scaleRange(y); + backgroundUpdate + .attr('y', range[0]) + .attr('height', range[1] - range[0]); + redrawY(gUpdate); + } + redraw(gUpdate); + }); + } + brush.event = function(g) { + g.each(function() { + var event_ = event.of(this, arguments), + extent1 = { + x: xExtent, + y: yExtent, + i: xExtentDomain, + j: yExtentDomain + }, + extent0 = this.__chart__ || extent1; + this.__chart__ = extent1; + if (d3_transitionInheritId) { + d3.select(this) + .transition() + .each('start.brush', function() { + xExtentDomain = extent0.i; + yExtentDomain = extent0.j; + xExtent = extent0.x; + yExtent = extent0.y; + event_({ + type: 'brushstart' + }); + }) + .tween('brush:brush', function() { + var xi = d3_interpolateArray(xExtent, extent1.x), + yi = d3_interpolateArray(yExtent, extent1.y); + xExtentDomain = yExtentDomain = null; + return function(t) { + xExtent = extent1.x = xi(t); + yExtent = extent1.y = yi(t); + event_({ + type: 'brush', + mode: 'resize' + }); + }; + }) + .each('end.brush', function() { + xExtentDomain = extent1.i; + yExtentDomain = extent1.j; + event_({ + type: 'brush', + mode: 'resize' + }); + event_({ + type: 'brushend' + }); + }); + } else { + event_({ + type: 'brushstart' + }); + event_({ + type: 'brush', + mode: 'resize' + }); + event_({ + type: 'brushend' + }); + } + }); + }; + function redraw(g) { + g.selectAll('.resize').attr('transform', function(d) { + return ( + 'translate(' + + xExtent[+/e$/.test(d)] + + ',' + + yExtent[+/^s/.test(d)] + + ')' + ); + }); + } + function redrawX(g) { + g.select('.extent').attr('x', xExtent[0]); + g.selectAll('.extent,.n>rect,.s>rect').attr( + 'width', + xExtent[1] - xExtent[0] + ); + } + function redrawY(g) { + g.select('.extent').attr('y', yExtent[0]); + g.selectAll('.extent,.e>rect,.w>rect').attr( + 'height', + yExtent[1] - yExtent[0] + ); + } + function brushstart() { + var target = this, + eventTarget = d3.select(d3.event.target), + event_ = event.of(target, arguments), + g = d3.select(target), + resizing = eventTarget.datum(), + resizingX = !/^(n|s)$/.test(resizing) && x, + resizingY = !/^(e|w)$/.test(resizing) && y, + dragging = eventTarget.classed('extent'), + dragRestore = d3_event_dragSuppress(target), + center, + origin = d3.mouse(target), + offset; + var w = d3 + .select(d3_window(target)) + .on('keydown.brush', keydown) + .on('keyup.brush', keyup); + if (d3.event.changedTouches) { + w.on('touchmove.brush', brushmove).on('touchend.brush', brushend); + } else { + w.on('mousemove.brush', brushmove).on('mouseup.brush', brushend); + } + g.interrupt() + .selectAll('*') + .interrupt(); + if (dragging) { + origin[0] = xExtent[0] - origin[0]; + origin[1] = yExtent[0] - origin[1]; + } else if (resizing) { + var ex = +/w$/.test(resizing), + ey = +/^n/.test(resizing); + offset = [xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1]]; + origin[0] = xExtent[ex]; + origin[1] = yExtent[ey]; + } else if (d3.event.altKey) center = origin.slice(); + g.style('pointer-events', 'none') + .selectAll('.resize') + .style('display', null); + d3.select('body').style('cursor', eventTarget.style('cursor')); + event_({ + type: 'brushstart' + }); + brushmove(); + function keydown() { + if (d3.event.keyCode == 32) { + if (!dragging) { + center = null; + origin[0] -= xExtent[1]; + origin[1] -= yExtent[1]; + dragging = 2; + } + d3_eventPreventDefault(); + } + } + function keyup() { + if (d3.event.keyCode == 32 && dragging == 2) { + origin[0] += xExtent[1]; + origin[1] += yExtent[1]; + dragging = 0; + d3_eventPreventDefault(); + } + } + function brushmove() { + var point = d3.mouse(target), + moved = false; + if (offset) { + point[0] += offset[0]; + point[1] += offset[1]; + } + if (!dragging) { + if (d3.event.altKey) { + if (!center) + center = [ + (xExtent[0] + xExtent[1]) / 2, + (yExtent[0] + yExtent[1]) / 2 + ]; + origin[0] = xExtent[+(point[0] < center[0])]; + origin[1] = yExtent[+(point[1] < center[1])]; + } else center = null; + } + if (resizingX && move1(point, x, 0)) { + redrawX(g); + moved = true; + } + if (resizingY && move1(point, y, 1)) { + redrawY(g); + moved = true; + } + if (moved) { + redraw(g); + event_({ + type: 'brush', + mode: dragging ? 'move' : 'resize' + }); + } + } + function move1(point, scale, i) { + var range = d3_scaleRange(scale), + r0 = range[0], + r1 = range[1], + position = origin[i], + extent = i ? yExtent : xExtent, + size = extent[1] - extent[0], + min, + max; + if (dragging) { + r0 -= position; + r1 -= size + position; + } + min = (i + ? yClamp + : xClamp) + ? Math.max(r0, Math.min(r1, point[i])) + : point[i]; + if (dragging) { + max = (min += position) + size; + } else { + if (center) + position = Math.max(r0, Math.min(r1, 2 * center[i] - min)); + if (position < min) { + max = min; + min = position; + } else { + max = position; + } + } + if (extent[0] != min || extent[1] != max) { + if (i) yExtentDomain = null; + else xExtentDomain = null; + extent[0] = min; + extent[1] = max; + return true; + } + } + function brushend() { + brushmove(); + g.style('pointer-events', 'all') + .selectAll('.resize') + .style('display', brush.empty() ? 'none' : null); + d3.select('body').style('cursor', null); + w.on('mousemove.brush', null) + .on('mouseup.brush', null) + .on('touchmove.brush', null) + .on('touchend.brush', null) + .on('keydown.brush', null) + .on('keyup.brush', null); + dragRestore(); + event_({ + type: 'brushend' + }); + } + } + brush.x = function(z) { + if (!arguments.length) return x; + x = z; + resizes = d3_svg_brushResizes[(!x << 1) | !y]; + return brush; + }; + brush.y = function(z) { + if (!arguments.length) return y; + y = z; + resizes = d3_svg_brushResizes[(!x << 1) | !y]; + return brush; + }; + brush.clamp = function(z) { + if (!arguments.length) + return x && y ? [xClamp, yClamp] : x ? xClamp : y ? yClamp : null; + if (x && y) (xClamp = !!z[0]), (yClamp = !!z[1]); + else if (x) xClamp = !!z; + else if (y) yClamp = !!z; + return brush; + }; + brush.extent = function(z) { + var x0, x1, y0, y1, t; + if (!arguments.length) { + if (x) { + if (xExtentDomain) { + (x0 = xExtentDomain[0]), (x1 = xExtentDomain[1]); + } else { + (x0 = xExtent[0]), (x1 = xExtent[1]); + if (x.invert) (x0 = x.invert(x0)), (x1 = x.invert(x1)); + if (x1 < x0) (t = x0), (x0 = x1), (x1 = t); + } + } + if (y) { + if (yExtentDomain) { + (y0 = yExtentDomain[0]), (y1 = yExtentDomain[1]); + } else { + (y0 = yExtent[0]), (y1 = yExtent[1]); + if (y.invert) (y0 = y.invert(y0)), (y1 = y.invert(y1)); + if (y1 < y0) (t = y0), (y0 = y1), (y1 = t); + } + } + return x && y ? [[x0, y0], [x1, y1]] : x ? [x0, x1] : y && [y0, y1]; + } + if (x) { + (x0 = z[0]), (x1 = z[1]); + if (y) (x0 = x0[0]), (x1 = x1[0]); + xExtentDomain = [x0, x1]; + if (x.invert) (x0 = x(x0)), (x1 = x(x1)); + if (x1 < x0) (t = x0), (x0 = x1), (x1 = t); + if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [x0, x1]; + } + if (y) { + (y0 = z[0]), (y1 = z[1]); + if (x) (y0 = y0[1]), (y1 = y1[1]); + yExtentDomain = [y0, y1]; + if (y.invert) (y0 = y(y0)), (y1 = y(y1)); + if (y1 < y0) (t = y0), (y0 = y1), (y1 = t); + if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [y0, y1]; + } + return brush; + }; + brush.clear = function() { + if (!brush.empty()) { + (xExtent = [0, 0]), (yExtent = [0, 0]); + xExtentDomain = yExtentDomain = null; + } + return brush; + }; + brush.empty = function() { + return ( + (!!x && xExtent[0] == xExtent[1]) || (!!y && yExtent[0] == yExtent[1]) + ); + }; + return d3.rebind(brush, event, 'on'); + }; + var d3_svg_brushCursor = { + n: 'ns-resize', + e: 'ew-resize', + s: 'ns-resize', + w: 'ew-resize', + nw: 'nwse-resize', + ne: 'nesw-resize', + se: 'nwse-resize', + sw: 'nesw-resize' + }; + var d3_svg_brushResizes = [ + ['n', 'e', 's', 'w', 'nw', 'ne', 'se', 'sw'], + ['e', 'w'], + ['n', 's'], + [] + ]; + var d3_time_format = (d3_time.format = d3_locale_enUS.timeFormat); + var d3_time_formatUtc = d3_time_format.utc; + var d3_time_formatIso = d3_time_formatUtc('%Y-%m-%dT%H:%M:%S.%LZ'); + d3_time_format.iso = + Date.prototype.toISOString && +new Date('2000-01-01T00:00:00.000Z') + ? d3_time_formatIsoNative + : d3_time_formatIso; + function d3_time_formatIsoNative(date) { + return date.toISOString(); + } + d3_time_formatIsoNative.parse = function(string) { + var date = new Date(string); + return isNaN(date) ? null : date; + }; + d3_time_formatIsoNative.toString = d3_time_formatIso.toString; + d3_time.second = d3_time_interval( + function(date) { + return new d3_date(Math.floor(date / 1e3) * 1e3); + }, + function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 1e3); + }, + function(date) { + return date.getSeconds(); + } + ); + d3_time.seconds = d3_time.second.range; + d3_time.seconds.utc = d3_time.second.utc.range; + d3_time.minute = d3_time_interval( + function(date) { + return new d3_date(Math.floor(date / 6e4) * 6e4); + }, + function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 6e4); + }, + function(date) { + return date.getMinutes(); + } + ); + d3_time.minutes = d3_time.minute.range; + d3_time.minutes.utc = d3_time.minute.utc.range; + d3_time.hour = d3_time_interval( + function(date) { + var timezone = date.getTimezoneOffset() / 60; + return new d3_date( + (Math.floor(date / 36e5 - timezone) + timezone) * 36e5 + ); + }, + function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 36e5); + }, + function(date) { + return date.getHours(); + } + ); + d3_time.hours = d3_time.hour.range; + d3_time.hours.utc = d3_time.hour.utc.range; + d3_time.month = d3_time_interval( + function(date) { + date = d3_time.day(date); + date.setDate(1); + return date; + }, + function(date, offset) { + date.setMonth(date.getMonth() + offset); + }, + function(date) { + return date.getMonth(); + } + ); + d3_time.months = d3_time.month.range; + d3_time.months.utc = d3_time.month.utc.range; + function d3_time_scale(linear, methods, format) { + function scale(x) { + return linear(x); + } + scale.invert = function(x) { + return d3_time_scaleDate(linear.invert(x)); + }; + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(d3_time_scaleDate); + linear.domain(x); + return scale; + }; + function tickMethod(extent, count) { + var span = extent[1] - extent[0], + target = span / count, + i = d3.bisect(d3_time_scaleSteps, target); + return i == d3_time_scaleSteps.length + ? [ + methods.year, + d3_scale_linearTickRange( + extent.map(function(d) { + return d / 31536e6; + }), + count + )[2] + ] + : !i + ? [ + d3_time_scaleMilliseconds, + d3_scale_linearTickRange(extent, count)[2] + ] + : methods[ + target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target + ? i - 1 + : i + ]; + } + scale.nice = function(interval, skip) { + var domain = scale.domain(), + extent = d3_scaleExtent(domain), + method = + interval == null + ? tickMethod(extent, 10) + : typeof interval === 'number' && tickMethod(extent, interval); + if (method) (interval = method[0]), (skip = method[1]); + function skipped(date) { + return ( + !isNaN(date) && + !interval.range(date, d3_time_scaleDate(+date + 1), skip).length + ); + } + return scale.domain( + d3_scale_nice( + domain, + skip > 1 + ? { + floor: function(date) { + while (skipped((date = interval.floor(date)))) + date = d3_time_scaleDate(date - 1); + return date; + }, + ceil: function(date) { + while (skipped((date = interval.ceil(date)))) + date = d3_time_scaleDate(+date + 1); + return date; + } + } + : interval + ) + ); + }; + scale.ticks = function(interval, skip) { + var extent = d3_scaleExtent(scale.domain()), + method = + interval == null + ? tickMethod(extent, 10) + : typeof interval === 'number' + ? tickMethod(extent, interval) + : !interval.range && [ + { + range: interval + }, + skip + ]; + if (method) (interval = method[0]), (skip = method[1]); + return interval.range( + extent[0], + d3_time_scaleDate(+extent[1] + 1), + skip < 1 ? 1 : skip + ); + }; + scale.tickFormat = function() { + return format; + }; + scale.copy = function() { + return d3_time_scale(linear.copy(), methods, format); + }; + return d3_scale_linearRebind(scale, linear); + } + function d3_time_scaleDate(t) { + return new Date(t); + } + var d3_time_scaleSteps = [ + 1e3, + 5e3, + 15e3, + 3e4, + 6e4, + 3e5, + 9e5, + 18e5, + 36e5, + 108e5, + 216e5, + 432e5, + 864e5, + 1728e5, + 6048e5, + 2592e6, + 7776e6, + 31536e6 + ]; + var d3_time_scaleLocalMethods = [ + [d3_time.second, 1], + [d3_time.second, 5], + [d3_time.second, 15], + [d3_time.second, 30], + [d3_time.minute, 1], + [d3_time.minute, 5], + [d3_time.minute, 15], + [d3_time.minute, 30], + [d3_time.hour, 1], + [d3_time.hour, 3], + [d3_time.hour, 6], + [d3_time.hour, 12], + [d3_time.day, 1], + [d3_time.day, 2], + [d3_time.week, 1], + [d3_time.month, 1], + [d3_time.month, 3], + [d3_time.year, 1] + ]; + var d3_time_scaleLocalFormat = d3_time_format.multi([ + [ + '.%L', + function(d) { + return d.getMilliseconds(); + } + ], + [ + ':%S', + function(d) { + return d.getSeconds(); + } + ], + [ + '%I:%M', + function(d) { + return d.getMinutes(); + } + ], + [ + '%I %p', + function(d) { + return d.getHours(); + } + ], + [ + '%a %d', + function(d) { + return d.getDay() && d.getDate() != 1; + } + ], + [ + '%b %d', + function(d) { + return d.getDate() != 1; + } + ], + [ + '%B', + function(d) { + return d.getMonth(); + } + ], + ['%Y', d3_true] + ]); + var d3_time_scaleMilliseconds = { + range: function(start, stop, step) { + return d3 + .range(Math.ceil(start / step) * step, +stop, step) + .map(d3_time_scaleDate); + }, + floor: d3_identity, + ceil: d3_identity + }; + d3_time_scaleLocalMethods.year = d3_time.year; + d3_time.scale = function() { + return d3_time_scale( + d3.scale.linear(), + d3_time_scaleLocalMethods, + d3_time_scaleLocalFormat + ); + }; + var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) { + return [m[0].utc, m[1]]; + }); + var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ + [ + '.%L', + function(d) { + return d.getUTCMilliseconds(); + } + ], + [ + ':%S', + function(d) { + return d.getUTCSeconds(); + } + ], + [ + '%I:%M', + function(d) { + return d.getUTCMinutes(); + } + ], + [ + '%I %p', + function(d) { + return d.getUTCHours(); + } + ], + [ + '%a %d', + function(d) { + return d.getUTCDay() && d.getUTCDate() != 1; + } + ], + [ + '%b %d', + function(d) { + return d.getUTCDate() != 1; + } + ], + [ + '%B', + function(d) { + return d.getUTCMonth(); + } + ], + ['%Y', d3_true] + ]); + d3_time_scaleUtcMethods.year = d3_time.year.utc; + d3_time.scale.utc = function() { + return d3_time_scale( + d3.scale.linear(), + d3_time_scaleUtcMethods, + d3_time_scaleUtcFormat + ); + }; + d3.text = d3_xhrType(function(request) { + return request.responseText; + }); + d3.json = function(url, callback) { + return d3_xhr(url, 'application/json', d3_json, callback); + }; + function d3_json(request) { + return JSON.parse(request.responseText); + } + d3.html = function(url, callback) { + return d3_xhr(url, 'text/html', d3_html, callback); + }; + function d3_html(request) { + var range = d3_document.createRange(); + range.selectNode(d3_document.body); + return range.createContextualFragment(request.responseText); + } + d3.xml = d3_xhrType(function(request) { + return request.responseXML; + }); + if (typeof define === 'function' && define.amd) (this.d3 = d3), define(d3); + else if (typeof module === 'object' && module.exports) module.exports = d3; + else this.d3 = d3; +})(); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/d3.min.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/d3.min.js new file mode 100644 index 000000000..dbde74363 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/d3.min.js @@ -0,0 +1,10942 @@ +!(function() { + function n(n) { + return n && (n.ownerDocument || n.document || n).documentElement; + } + function t(n) { + return ( + n && + ((n.ownerDocument && n.ownerDocument.defaultView) || + (n.document && n) || + n.defaultView) + ); + } + function e(n, t) { + return t > n ? -1 : n > t ? 1 : n >= t ? 0 : NaN; + } + function r(n) { + return null === n ? NaN : +n; + } + function i(n) { + return !isNaN(n); + } + function u(n) { + return { + left: function(t, e, r, i) { + for ( + arguments.length < 3 && (r = 0), + arguments.length < 4 && (i = t.length); + i > r; + + ) { + var u = (r + i) >>> 1; + n(t[u], e) < 0 ? (r = u + 1) : (i = u); + } + return r; + }, + right: function(t, e, r, i) { + for ( + arguments.length < 3 && (r = 0), + arguments.length < 4 && (i = t.length); + i > r; + + ) { + var u = (r + i) >>> 1; + n(t[u], e) > 0 ? (i = u) : (r = u + 1); + } + return r; + } + }; + } + function o(n) { + return n.length; + } + function a(n) { + for (var t = 1; (n * t) % 1; ) t *= 10; + return t; + } + function l(n, t) { + for (var e in t) + Object.defineProperty(n.prototype, e, { value: t[e], enumerable: !1 }); + } + function c() { + this._ = Object.create(null); + } + function f(n) { + return (n += '') === bo || n[0] === _o ? _o + n : n; + } + function s(n) { + return (n += '')[0] === _o ? n.slice(1) : n; + } + function h(n) { + return f(n) in this._; + } + function p(n) { + return (n = f(n)) in this._ && delete this._[n]; + } + function g() { + var n = []; + for (var t in this._) n.push(s(t)); + return n; + } + function v() { + var n = 0; + for (var t in this._) ++n; + return n; + } + function d() { + for (var n in this._) return !1; + return !0; + } + function y() { + this._ = Object.create(null); + } + function m(n) { + return n; + } + function M(n, t, e) { + return function() { + var r = e.apply(t, arguments); + return r === t ? n : r; + }; + } + function x(n, t) { + if (t in n) return t; + t = t.charAt(0).toUpperCase() + t.slice(1); + for (var e = 0, r = wo.length; r > e; ++e) { + var i = wo[e] + t; + if (i in n) return i; + } + } + function b() {} + function _() {} + function w(n) { + function t() { + for (var t, r = e, i = -1, u = r.length; ++i < u; ) + (t = r[i].on) && t.apply(this, arguments); + return n; + } + var e = [], + r = new c(); + return ( + (t.on = function(t, i) { + var u, + o = r.get(t); + return arguments.length < 2 + ? o && o.on + : (o && + ((o.on = null), + (e = e.slice(0, (u = e.indexOf(o))).concat(e.slice(u + 1))), + r.remove(t)), + i && e.push(r.set(t, { on: i })), + n); + }), + t + ); + } + function S() { + ao.event.preventDefault(); + } + function k() { + for (var n, t = ao.event; (n = t.sourceEvent); ) t = n; + return t; + } + function N(n) { + for (var t = new _(), e = 0, r = arguments.length; ++e < r; ) + t[arguments[e]] = w(t); + return ( + (t.of = function(e, r) { + return function(i) { + try { + var u = (i.sourceEvent = ao.event); + (i.target = n), (ao.event = i), t[i.type].apply(e, r); + } finally { + ao.event = u; + } + }; + }), + t + ); + } + function E(n) { + return ko(n, Co), n; + } + function A(n) { + return 'function' == typeof n + ? n + : function() { + return No(n, this); + }; + } + function C(n) { + return 'function' == typeof n + ? n + : function() { + return Eo(n, this); + }; + } + function z(n, t) { + function e() { + this.removeAttribute(n); + } + function r() { + this.removeAttributeNS(n.space, n.local); + } + function i() { + this.setAttribute(n, t); + } + function u() { + this.setAttributeNS(n.space, n.local, t); + } + function o() { + var e = t.apply(this, arguments); + null == e ? this.removeAttribute(n) : this.setAttribute(n, e); + } + function a() { + var e = t.apply(this, arguments); + null == e + ? this.removeAttributeNS(n.space, n.local) + : this.setAttributeNS(n.space, n.local, e); + } + return ( + (n = ao.ns.qualify(n)), + null == t + ? n.local + ? r + : e + : 'function' == typeof t + ? n.local + ? a + : o + : n.local + ? u + : i + ); + } + function L(n) { + return n.trim().replace(/\s+/g, ' '); + } + function q(n) { + return new RegExp('(?:^|\\s+)' + ao.requote(n) + '(?:\\s+|$)', 'g'); + } + function T(n) { + return (n + '').trim().split(/^|\s+/); + } + function R(n, t) { + function e() { + for (var e = -1; ++e < i; ) n[e](this, t); + } + function r() { + for (var e = -1, r = t.apply(this, arguments); ++e < i; ) n[e](this, r); + } + n = T(n).map(D); + var i = n.length; + return 'function' == typeof t ? r : e; + } + function D(n) { + var t = q(n); + return function(e, r) { + if ((i = e.classList)) return r ? i.add(n) : i.remove(n); + var i = e.getAttribute('class') || ''; + r + ? ((t.lastIndex = 0), + t.test(i) || e.setAttribute('class', L(i + ' ' + n))) + : e.setAttribute('class', L(i.replace(t, ' '))); + }; + } + function P(n, t, e) { + function r() { + this.style.removeProperty(n); + } + function i() { + this.style.setProperty(n, t, e); + } + function u() { + var r = t.apply(this, arguments); + null == r + ? this.style.removeProperty(n) + : this.style.setProperty(n, r, e); + } + return null == t ? r : 'function' == typeof t ? u : i; + } + function U(n, t) { + function e() { + delete this[n]; + } + function r() { + this[n] = t; + } + function i() { + var e = t.apply(this, arguments); + null == e ? delete this[n] : (this[n] = e); + } + return null == t ? e : 'function' == typeof t ? i : r; + } + function j(n) { + function t() { + var t = this.ownerDocument, + e = this.namespaceURI; + return e === zo && t.documentElement.namespaceURI === zo + ? t.createElement(n) + : t.createElementNS(e, n); + } + function e() { + return this.ownerDocument.createElementNS(n.space, n.local); + } + return 'function' == typeof n ? n : (n = ao.ns.qualify(n)).local ? e : t; + } + function F() { + var n = this.parentNode; + n && n.removeChild(this); + } + function H(n) { + return { __data__: n }; + } + function O(n) { + return function() { + return Ao(this, n); + }; + } + function I(n) { + return ( + arguments.length || (n = e), + function(t, e) { + return t && e ? n(t.__data__, e.__data__) : !t - !e; + } + ); + } + function Y(n, t) { + for (var e = 0, r = n.length; r > e; e++) + for (var i, u = n[e], o = 0, a = u.length; a > o; o++) + (i = u[o]) && t(i, o, e); + return n; + } + function Z(n) { + return ko(n, qo), n; + } + function V(n) { + var t, e; + return function(r, i, u) { + var o, + a = n[u].update, + l = a.length; + for ( + u != e && ((e = u), (t = 0)), i >= t && (t = i + 1); + !(o = a[t]) && ++t < l; + + ); + return o; + }; + } + function X(n, t, e) { + function r() { + var t = this[o]; + t && (this.removeEventListener(n, t, t.$), delete this[o]); + } + function i() { + var i = l(t, co(arguments)); + r.call(this), + this.addEventListener(n, (this[o] = i), (i.$ = e)), + (i._ = t); + } + function u() { + var t, + e = new RegExp('^__on([^.]+)' + ao.requote(n) + '$'); + for (var r in this) + if ((t = r.match(e))) { + var i = this[r]; + this.removeEventListener(t[1], i, i.$), delete this[r]; + } + } + var o = '__on' + n, + a = n.indexOf('.'), + l = $; + a > 0 && (n = n.slice(0, a)); + var c = To.get(n); + return c && ((n = c), (l = B)), a ? (t ? i : r) : t ? b : u; + } + function $(n, t) { + return function(e) { + var r = ao.event; + (ao.event = e), (t[0] = this.__data__); + try { + n.apply(this, t); + } finally { + ao.event = r; + } + }; + } + function B(n, t) { + var e = $(n, t); + return function(n) { + var t = this, + r = n.relatedTarget; + (r && (r === t || 8 & r.compareDocumentPosition(t))) || e.call(t, n); + }; + } + function W(e) { + var r = '.dragsuppress-' + ++Do, + i = 'click' + r, + u = ao + .select(t(e)) + .on('touchmove' + r, S) + .on('dragstart' + r, S) + .on('selectstart' + r, S); + if ( + (null == Ro && + (Ro = 'onselectstart' in e ? !1 : x(e.style, 'userSelect')), + Ro) + ) { + var o = n(e).style, + a = o[Ro]; + o[Ro] = 'none'; + } + return function(n) { + if ((u.on(r, null), Ro && (o[Ro] = a), n)) { + var t = function() { + u.on(i, null); + }; + u.on( + i, + function() { + S(), t(); + }, + !0 + ), + setTimeout(t, 0); + } + }; + } + function J(n, e) { + e.changedTouches && (e = e.changedTouches[0]); + var r = n.ownerSVGElement || n; + if (r.createSVGPoint) { + var i = r.createSVGPoint(); + if (0 > Po) { + var u = t(n); + if (u.scrollX || u.scrollY) { + r = ao + .select('body') + .append('svg') + .style( + { + position: 'absolute', + top: 0, + left: 0, + margin: 0, + padding: 0, + border: 'none' + }, + 'important' + ); + var o = r[0][0].getScreenCTM(); + (Po = !(o.f || o.e)), r.remove(); + } + } + return ( + Po + ? ((i.x = e.pageX), (i.y = e.pageY)) + : ((i.x = e.clientX), (i.y = e.clientY)), + (i = i.matrixTransform(n.getScreenCTM().inverse())), + [i.x, i.y] + ); + } + var a = n.getBoundingClientRect(); + return [e.clientX - a.left - n.clientLeft, e.clientY - a.top - n.clientTop]; + } + function G() { + return ao.event.changedTouches[0].identifier; + } + function K(n) { + return n > 0 ? 1 : 0 > n ? -1 : 0; + } + function Q(n, t, e) { + return (t[0] - n[0]) * (e[1] - n[1]) - (t[1] - n[1]) * (e[0] - n[0]); + } + function nn(n) { + return n > 1 ? 0 : -1 > n ? Fo : Math.acos(n); + } + function tn(n) { + return n > 1 ? Io : -1 > n ? -Io : Math.asin(n); + } + function en(n) { + return ((n = Math.exp(n)) - 1 / n) / 2; + } + function rn(n) { + return ((n = Math.exp(n)) + 1 / n) / 2; + } + function un(n) { + return ((n = Math.exp(2 * n)) - 1) / (n + 1); + } + function on(n) { + return (n = Math.sin(n / 2)) * n; + } + function an() {} + function ln(n, t, e) { + return this instanceof ln + ? ((this.h = +n), (this.s = +t), void (this.l = +e)) + : arguments.length < 2 + ? n instanceof ln + ? new ln(n.h, n.s, n.l) + : _n('' + n, wn, ln) + : new ln(n, t, e); + } + function cn(n, t, e) { + function r(n) { + return ( + n > 360 ? (n -= 360) : 0 > n && (n += 360), + 60 > n + ? u + ((o - u) * n) / 60 + : 180 > n + ? o + : 240 > n + ? u + ((o - u) * (240 - n)) / 60 + : u + ); + } + function i(n) { + return Math.round(255 * r(n)); + } + var u, o; + return ( + (n = isNaN(n) ? 0 : (n %= 360) < 0 ? n + 360 : n), + (t = isNaN(t) ? 0 : 0 > t ? 0 : t > 1 ? 1 : t), + (e = 0 > e ? 0 : e > 1 ? 1 : e), + (o = 0.5 >= e ? e * (1 + t) : e + t - e * t), + (u = 2 * e - o), + new mn(i(n + 120), i(n), i(n - 120)) + ); + } + function fn(n, t, e) { + return this instanceof fn + ? ((this.h = +n), (this.c = +t), void (this.l = +e)) + : arguments.length < 2 + ? n instanceof fn + ? new fn(n.h, n.c, n.l) + : n instanceof hn + ? gn(n.l, n.a, n.b) + : gn((n = Sn((n = ao.rgb(n)).r, n.g, n.b)).l, n.a, n.b) + : new fn(n, t, e); + } + function sn(n, t, e) { + return ( + isNaN(n) && (n = 0), + isNaN(t) && (t = 0), + new hn(e, Math.cos((n *= Yo)) * t, Math.sin(n) * t) + ); + } + function hn(n, t, e) { + return this instanceof hn + ? ((this.l = +n), (this.a = +t), void (this.b = +e)) + : arguments.length < 2 + ? n instanceof hn + ? new hn(n.l, n.a, n.b) + : n instanceof fn + ? sn(n.h, n.c, n.l) + : Sn((n = mn(n)).r, n.g, n.b) + : new hn(n, t, e); + } + function pn(n, t, e) { + var r = (n + 16) / 116, + i = r + t / 500, + u = r - e / 200; + return ( + (i = vn(i) * na), + (r = vn(r) * ta), + (u = vn(u) * ea), + new mn( + yn(3.2404542 * i - 1.5371385 * r - 0.4985314 * u), + yn(-0.969266 * i + 1.8760108 * r + 0.041556 * u), + yn(0.0556434 * i - 0.2040259 * r + 1.0572252 * u) + ) + ); + } + function gn(n, t, e) { + return n > 0 + ? new fn(Math.atan2(e, t) * Zo, Math.sqrt(t * t + e * e), n) + : new fn(NaN, NaN, n); + } + function vn(n) { + return n > 0.206893034 ? n * n * n : (n - 4 / 29) / 7.787037; + } + function dn(n) { + return n > 0.008856 ? Math.pow(n, 1 / 3) : 7.787037 * n + 4 / 29; + } + function yn(n) { + return Math.round( + 255 * (0.00304 >= n ? 12.92 * n : 1.055 * Math.pow(n, 1 / 2.4) - 0.055) + ); + } + function mn(n, t, e) { + return this instanceof mn + ? ((this.r = ~~n), (this.g = ~~t), void (this.b = ~~e)) + : arguments.length < 2 + ? n instanceof mn + ? new mn(n.r, n.g, n.b) + : _n('' + n, mn, cn) + : new mn(n, t, e); + } + function Mn(n) { + return new mn(n >> 16, (n >> 8) & 255, 255 & n); + } + function xn(n) { + return Mn(n) + ''; + } + function bn(n) { + return 16 > n + ? '0' + Math.max(0, n).toString(16) + : Math.min(255, n).toString(16); + } + function _n(n, t, e) { + var r, + i, + u, + o = 0, + a = 0, + l = 0; + if ((r = /([a-z]+)\((.*)\)/.exec((n = n.toLowerCase())))) + switch (((i = r[2].split(',')), r[1])) { + case 'hsl': + return e( + parseFloat(i[0]), + parseFloat(i[1]) / 100, + parseFloat(i[2]) / 100 + ); + case 'rgb': + return t(Nn(i[0]), Nn(i[1]), Nn(i[2])); + } + return (u = ua.get(n)) + ? t(u.r, u.g, u.b) + : (null == n || + '#' !== n.charAt(0) || + isNaN((u = parseInt(n.slice(1), 16))) || + (4 === n.length + ? ((o = (3840 & u) >> 4), + (o = (o >> 4) | o), + (a = 240 & u), + (a = (a >> 4) | a), + (l = 15 & u), + (l = (l << 4) | l)) + : 7 === n.length && + ((o = (16711680 & u) >> 16), + (a = (65280 & u) >> 8), + (l = 255 & u))), + t(o, a, l)); + } + function wn(n, t, e) { + var r, + i, + u = Math.min((n /= 255), (t /= 255), (e /= 255)), + o = Math.max(n, t, e), + a = o - u, + l = (o + u) / 2; + return ( + a + ? ((i = 0.5 > l ? a / (o + u) : a / (2 - o - u)), + (r = + n == o + ? (t - e) / a + (e > t ? 6 : 0) + : t == o + ? (e - n) / a + 2 + : (n - t) / a + 4), + (r *= 60)) + : ((r = NaN), (i = l > 0 && 1 > l ? 0 : r)), + new ln(r, i, l) + ); + } + function Sn(n, t, e) { + (n = kn(n)), (t = kn(t)), (e = kn(e)); + var r = dn((0.4124564 * n + 0.3575761 * t + 0.1804375 * e) / na), + i = dn((0.2126729 * n + 0.7151522 * t + 0.072175 * e) / ta), + u = dn((0.0193339 * n + 0.119192 * t + 0.9503041 * e) / ea); + return hn(116 * i - 16, 500 * (r - i), 200 * (i - u)); + } + function kn(n) { + return (n /= 255) <= 0.04045 + ? n / 12.92 + : Math.pow((n + 0.055) / 1.055, 2.4); + } + function Nn(n) { + var t = parseFloat(n); + return '%' === n.charAt(n.length - 1) ? Math.round(2.55 * t) : t; + } + function En(n) { + return 'function' == typeof n + ? n + : function() { + return n; + }; + } + function An(n) { + return function(t, e, r) { + return ( + 2 === arguments.length && + 'function' == typeof e && + ((r = e), (e = null)), + Cn(t, e, n, r) + ); + }; + } + function Cn(n, t, e, r) { + function i() { + var n, + t = l.status; + if ((!t && Ln(l)) || (t >= 200 && 300 > t) || 304 === t) { + try { + n = e.call(u, l); + } catch (r) { + return void o.error.call(u, r); + } + o.load.call(u, n); + } else o.error.call(u, l); + } + var u = {}, + o = ao.dispatch('beforesend', 'progress', 'load', 'error'), + a = {}, + l = new XMLHttpRequest(), + c = null; + return ( + !this.XDomainRequest || + 'withCredentials' in l || + !/^(http(s)?:)?\/\//.test(n) || + (l = new XDomainRequest()), + 'onload' in l + ? (l.onload = l.onerror = i) + : (l.onreadystatechange = function() { + l.readyState > 3 && i(); + }), + (l.onprogress = function(n) { + var t = ao.event; + ao.event = n; + try { + o.progress.call(u, l); + } finally { + ao.event = t; + } + }), + (u.header = function(n, t) { + return ( + (n = (n + '').toLowerCase()), + arguments.length < 2 + ? a[n] + : (null == t ? delete a[n] : (a[n] = t + ''), u) + ); + }), + (u.mimeType = function(n) { + return arguments.length ? ((t = null == n ? null : n + ''), u) : t; + }), + (u.responseType = function(n) { + return arguments.length ? ((c = n), u) : c; + }), + (u.response = function(n) { + return (e = n), u; + }), + ['get', 'post'].forEach(function(n) { + u[n] = function() { + return u.send.apply(u, [n].concat(co(arguments))); + }; + }), + (u.send = function(e, r, i) { + if ( + (2 === arguments.length && + 'function' == typeof r && + ((i = r), (r = null)), + l.open(e, n, !0), + null == t || 'accept' in a || (a.accept = t + ',*/*'), + l.setRequestHeader) + ) + for (var f in a) l.setRequestHeader(f, a[f]); + return ( + null != t && l.overrideMimeType && l.overrideMimeType(t), + null != c && (l.responseType = c), + null != i && + u.on('error', i).on('load', function(n) { + i(null, n); + }), + o.beforesend.call(u, l), + l.send(null == r ? null : r), + u + ); + }), + (u.abort = function() { + return l.abort(), u; + }), + ao.rebind(u, o, 'on'), + null == r ? u : u.get(zn(r)) + ); + } + function zn(n) { + return 1 === n.length + ? function(t, e) { + n(null == t ? e : null); + } + : n; + } + function Ln(n) { + var t = n.responseType; + return t && 'text' !== t ? n.response : n.responseText; + } + function qn(n, t, e) { + var r = arguments.length; + 2 > r && (t = 0), 3 > r && (e = Date.now()); + var i = e + t, + u = { c: n, t: i, n: null }; + return ( + aa ? (aa.n = u) : (oa = u), + (aa = u), + la || ((ca = clearTimeout(ca)), (la = 1), fa(Tn)), + u + ); + } + function Tn() { + var n = Rn(), + t = Dn() - n; + t > 24 + ? (isFinite(t) && (clearTimeout(ca), (ca = setTimeout(Tn, t))), (la = 0)) + : ((la = 1), fa(Tn)); + } + function Rn() { + for (var n = Date.now(), t = oa; t; ) + n >= t.t && t.c(n - t.t) && (t.c = null), (t = t.n); + return n; + } + function Dn() { + for (var n, t = oa, e = 1 / 0; t; ) + t.c + ? (t.t < e && (e = t.t), (t = (n = t).n)) + : (t = n ? (n.n = t.n) : (oa = t.n)); + return (aa = n), e; + } + function Pn(n, t) { + return t - (n ? Math.ceil(Math.log(n) / Math.LN10) : 1); + } + function Un(n, t) { + var e = Math.pow(10, 3 * xo(8 - t)); + return { + scale: + t > 8 + ? function(n) { + return n / e; + } + : function(n) { + return n * e; + }, + symbol: n + }; + } + function jn(n) { + var t = n.decimal, + e = n.thousands, + r = n.grouping, + i = n.currency, + u = + r && e + ? function(n, t) { + for ( + var i = n.length, u = [], o = 0, a = r[0], l = 0; + i > 0 && + a > 0 && + (l + a + 1 > t && (a = Math.max(1, t - l)), + u.push(n.substring((i -= a), i + a)), + !((l += a + 1) > t)); + + ) + a = r[(o = (o + 1) % r.length)]; + return u.reverse().join(e); + } + : m; + return function(n) { + var e = ha.exec(n), + r = e[1] || ' ', + o = e[2] || '>', + a = e[3] || '-', + l = e[4] || '', + c = e[5], + f = +e[6], + s = e[7], + h = e[8], + p = e[9], + g = 1, + v = '', + d = '', + y = !1, + m = !0; + switch ( + (h && (h = +h.substring(1)), + (c || ('0' === r && '=' === o)) && ((c = r = '0'), (o = '=')), + p) + ) { + case 'n': + (s = !0), (p = 'g'); + break; + case '%': + (g = 100), (d = '%'), (p = 'f'); + break; + case 'p': + (g = 100), (d = '%'), (p = 'r'); + break; + case 'b': + case 'o': + case 'x': + case 'X': + '#' === l && (v = '0' + p.toLowerCase()); + case 'c': + m = !1; + case 'd': + (y = !0), (h = 0); + break; + case 's': + (g = -1), (p = 'r'); + } + '$' === l && ((v = i[0]), (d = i[1])), + 'r' != p || h || (p = 'g'), + null != h && + ('g' == p + ? (h = Math.max(1, Math.min(21, h))) + : ('e' != p && 'f' != p) || (h = Math.max(0, Math.min(20, h)))), + (p = pa.get(p) || Fn); + var M = c && s; + return function(n) { + var e = d; + if (y && n % 1) return ''; + var i = + 0 > n || (0 === n && 0 > 1 / n) + ? ((n = -n), '-') + : '-' === a + ? '' + : a; + if (0 > g) { + var l = ao.formatPrefix(n, h); + (n = l.scale(n)), (e = l.symbol + d); + } else n *= g; + n = p(n, h); + var x, + b, + _ = n.lastIndexOf('.'); + if (0 > _) { + var w = m ? n.lastIndexOf('e') : -1; + 0 > w + ? ((x = n), (b = '')) + : ((x = n.substring(0, w)), (b = n.substring(w))); + } else (x = n.substring(0, _)), (b = t + n.substring(_ + 1)); + !c && s && (x = u(x, 1 / 0)); + var S = v.length + x.length + b.length + (M ? 0 : i.length), + k = f > S ? new Array((S = f - S + 1)).join(r) : ''; + return ( + M && (x = u(k + x, k.length ? f - b.length : 1 / 0)), + (i += v), + (n = x + b), + ('<' === o + ? i + n + k + : '>' === o + ? k + i + n + : '^' === o + ? k.substring(0, (S >>= 1)) + i + n + k.substring(S) + : i + (M ? n : k + n)) + e + ); + }; + }; + } + function Fn(n) { + return n + ''; + } + function Hn() { + this._ = new Date( + arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0] + ); + } + function On(n, t, e) { + function r(t) { + var e = n(t), + r = u(e, 1); + return r - t > t - e ? e : r; + } + function i(e) { + return t((e = n(new va(e - 1))), 1), e; + } + function u(n, e) { + return t((n = new va(+n)), e), n; + } + function o(n, r, u) { + var o = i(n), + a = []; + if (u > 1) for (; r > o; ) e(o) % u || a.push(new Date(+o)), t(o, 1); + else for (; r > o; ) a.push(new Date(+o)), t(o, 1); + return a; + } + function a(n, t, e) { + try { + va = Hn; + var r = new Hn(); + return (r._ = n), o(r, t, e); + } finally { + va = Date; + } + } + (n.floor = n), (n.round = r), (n.ceil = i), (n.offset = u), (n.range = o); + var l = (n.utc = In(n)); + return ( + (l.floor = l), + (l.round = In(r)), + (l.ceil = In(i)), + (l.offset = In(u)), + (l.range = a), + n + ); + } + function In(n) { + return function(t, e) { + try { + va = Hn; + var r = new Hn(); + return (r._ = t), n(r, e)._; + } finally { + va = Date; + } + }; + } + function Yn(n) { + function t(n) { + function t(t) { + for (var e, i, u, o = [], a = -1, l = 0; ++a < r; ) + 37 === n.charCodeAt(a) && + (o.push(n.slice(l, a)), + null != (i = ya[(e = n.charAt(++a))]) && (e = n.charAt(++a)), + (u = A[e]) && (e = u(t, null == i ? ('e' === e ? ' ' : '0') : i)), + o.push(e), + (l = a + 1)); + return o.push(n.slice(l, a)), o.join(''); + } + var r = n.length; + return ( + (t.parse = function(t) { + var r = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null }, + i = e(r, n, t, 0); + if (i != t.length) return null; + 'p' in r && (r.H = (r.H % 12) + 12 * r.p); + var u = null != r.Z && va !== Hn, + o = new (u ? Hn : va)(); + return ( + 'j' in r + ? o.setFullYear(r.y, 0, r.j) + : 'W' in r || 'U' in r + ? ('w' in r || (r.w = 'W' in r ? 1 : 0), + o.setFullYear(r.y, 0, 1), + o.setFullYear( + r.y, + 0, + 'W' in r + ? ((r.w + 6) % 7) + 7 * r.W - ((o.getDay() + 5) % 7) + : r.w + 7 * r.U - ((o.getDay() + 6) % 7) + )) + : o.setFullYear(r.y, r.m, r.d), + o.setHours(r.H + ((r.Z / 100) | 0), r.M + (r.Z % 100), r.S, r.L), + u ? o._ : o + ); + }), + (t.toString = function() { + return n; + }), + t + ); + } + function e(n, t, e, r) { + for (var i, u, o, a = 0, l = t.length, c = e.length; l > a; ) { + if (r >= c) return -1; + if (((i = t.charCodeAt(a++)), 37 === i)) { + if ( + ((o = t.charAt(a++)), + (u = C[o in ya ? t.charAt(a++) : o]), + !u || (r = u(n, e, r)) < 0) + ) + return -1; + } else if (i != e.charCodeAt(r++)) return -1; + } + return r; + } + function r(n, t, e) { + _.lastIndex = 0; + var r = _.exec(t.slice(e)); + return r ? ((n.w = w.get(r[0].toLowerCase())), e + r[0].length) : -1; + } + function i(n, t, e) { + x.lastIndex = 0; + var r = x.exec(t.slice(e)); + return r ? ((n.w = b.get(r[0].toLowerCase())), e + r[0].length) : -1; + } + function u(n, t, e) { + N.lastIndex = 0; + var r = N.exec(t.slice(e)); + return r ? ((n.m = E.get(r[0].toLowerCase())), e + r[0].length) : -1; + } + function o(n, t, e) { + S.lastIndex = 0; + var r = S.exec(t.slice(e)); + return r ? ((n.m = k.get(r[0].toLowerCase())), e + r[0].length) : -1; + } + function a(n, t, r) { + return e(n, A.c.toString(), t, r); + } + function l(n, t, r) { + return e(n, A.x.toString(), t, r); + } + function c(n, t, r) { + return e(n, A.X.toString(), t, r); + } + function f(n, t, e) { + var r = M.get(t.slice(e, (e += 2)).toLowerCase()); + return null == r ? -1 : ((n.p = r), e); + } + var s = n.dateTime, + h = n.date, + p = n.time, + g = n.periods, + v = n.days, + d = n.shortDays, + y = n.months, + m = n.shortMonths; + (t.utc = function(n) { + function e(n) { + try { + va = Hn; + var t = new va(); + return (t._ = n), r(t); + } finally { + va = Date; + } + } + var r = t(n); + return ( + (e.parse = function(n) { + try { + va = Hn; + var t = r.parse(n); + return t && t._; + } finally { + va = Date; + } + }), + (e.toString = r.toString), + e + ); + }), + (t.multi = t.utc.multi = ct); + var M = ao.map(), + x = Vn(v), + b = Xn(v), + _ = Vn(d), + w = Xn(d), + S = Vn(y), + k = Xn(y), + N = Vn(m), + E = Xn(m); + g.forEach(function(n, t) { + M.set(n.toLowerCase(), t); + }); + var A = { + a: function(n) { + return d[n.getDay()]; + }, + A: function(n) { + return v[n.getDay()]; + }, + b: function(n) { + return m[n.getMonth()]; + }, + B: function(n) { + return y[n.getMonth()]; + }, + c: t(s), + d: function(n, t) { + return Zn(n.getDate(), t, 2); + }, + e: function(n, t) { + return Zn(n.getDate(), t, 2); + }, + H: function(n, t) { + return Zn(n.getHours(), t, 2); + }, + I: function(n, t) { + return Zn(n.getHours() % 12 || 12, t, 2); + }, + j: function(n, t) { + return Zn(1 + ga.dayOfYear(n), t, 3); + }, + L: function(n, t) { + return Zn(n.getMilliseconds(), t, 3); + }, + m: function(n, t) { + return Zn(n.getMonth() + 1, t, 2); + }, + M: function(n, t) { + return Zn(n.getMinutes(), t, 2); + }, + p: function(n) { + return g[+(n.getHours() >= 12)]; + }, + S: function(n, t) { + return Zn(n.getSeconds(), t, 2); + }, + U: function(n, t) { + return Zn(ga.sundayOfYear(n), t, 2); + }, + w: function(n) { + return n.getDay(); + }, + W: function(n, t) { + return Zn(ga.mondayOfYear(n), t, 2); + }, + x: t(h), + X: t(p), + y: function(n, t) { + return Zn(n.getFullYear() % 100, t, 2); + }, + Y: function(n, t) { + return Zn(n.getFullYear() % 1e4, t, 4); + }, + Z: at, + '%': function() { + return '%'; + } + }, + C = { + a: r, + A: i, + b: u, + B: o, + c: a, + d: tt, + e: tt, + H: rt, + I: rt, + j: et, + L: ot, + m: nt, + M: it, + p: f, + S: ut, + U: Bn, + w: $n, + W: Wn, + x: l, + X: c, + y: Gn, + Y: Jn, + Z: Kn, + '%': lt + }; + return t; + } + function Zn(n, t, e) { + var r = 0 > n ? '-' : '', + i = (r ? -n : n) + '', + u = i.length; + return r + (e > u ? new Array(e - u + 1).join(t) + i : i); + } + function Vn(n) { + return new RegExp('^(?:' + n.map(ao.requote).join('|') + ')', 'i'); + } + function Xn(n) { + for (var t = new c(), e = -1, r = n.length; ++e < r; ) + t.set(n[e].toLowerCase(), e); + return t; + } + function $n(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e, e + 1)); + return r ? ((n.w = +r[0]), e + r[0].length) : -1; + } + function Bn(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e)); + return r ? ((n.U = +r[0]), e + r[0].length) : -1; + } + function Wn(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e)); + return r ? ((n.W = +r[0]), e + r[0].length) : -1; + } + function Jn(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e, e + 4)); + return r ? ((n.y = +r[0]), e + r[0].length) : -1; + } + function Gn(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e, e + 2)); + return r ? ((n.y = Qn(+r[0])), e + r[0].length) : -1; + } + function Kn(n, t, e) { + return /^[+-]\d{4}$/.test((t = t.slice(e, e + 5))) + ? ((n.Z = -t), e + 5) + : -1; + } + function Qn(n) { + return n + (n > 68 ? 1900 : 2e3); + } + function nt(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e, e + 2)); + return r ? ((n.m = r[0] - 1), e + r[0].length) : -1; + } + function tt(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e, e + 2)); + return r ? ((n.d = +r[0]), e + r[0].length) : -1; + } + function et(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e, e + 3)); + return r ? ((n.j = +r[0]), e + r[0].length) : -1; + } + function rt(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e, e + 2)); + return r ? ((n.H = +r[0]), e + r[0].length) : -1; + } + function it(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e, e + 2)); + return r ? ((n.M = +r[0]), e + r[0].length) : -1; + } + function ut(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e, e + 2)); + return r ? ((n.S = +r[0]), e + r[0].length) : -1; + } + function ot(n, t, e) { + ma.lastIndex = 0; + var r = ma.exec(t.slice(e, e + 3)); + return r ? ((n.L = +r[0]), e + r[0].length) : -1; + } + function at(n) { + var t = n.getTimezoneOffset(), + e = t > 0 ? '-' : '+', + r = (xo(t) / 60) | 0, + i = xo(t) % 60; + return e + Zn(r, '0', 2) + Zn(i, '0', 2); + } + function lt(n, t, e) { + Ma.lastIndex = 0; + var r = Ma.exec(t.slice(e, e + 1)); + return r ? e + r[0].length : -1; + } + function ct(n) { + for (var t = n.length, e = -1; ++e < t; ) n[e][0] = this(n[e][0]); + return function(t) { + for (var e = 0, r = n[e]; !r[1](t); ) r = n[++e]; + return r[0](t); + }; + } + function ft() {} + function st(n, t, e) { + var r = (e.s = n + t), + i = r - n, + u = r - i; + e.t = n - u + (t - i); + } + function ht(n, t) { + n && wa.hasOwnProperty(n.type) && wa[n.type](n, t); + } + function pt(n, t, e) { + var r, + i = -1, + u = n.length - e; + for (t.lineStart(); ++i < u; ) (r = n[i]), t.point(r[0], r[1], r[2]); + t.lineEnd(); + } + function gt(n, t) { + var e = -1, + r = n.length; + for (t.polygonStart(); ++e < r; ) pt(n[e], t, 1); + t.polygonEnd(); + } + function vt() { + function n(n, t) { + (n *= Yo), (t = (t * Yo) / 2 + Fo / 4); + var e = n - r, + o = e >= 0 ? 1 : -1, + a = o * e, + l = Math.cos(t), + c = Math.sin(t), + f = u * c, + s = i * l + f * Math.cos(a), + h = f * o * Math.sin(a); + ka.add(Math.atan2(h, s)), (r = n), (i = l), (u = c); + } + var t, e, r, i, u; + (Na.point = function(o, a) { + (Na.point = n), + (r = (t = o) * Yo), + (i = Math.cos((a = ((e = a) * Yo) / 2 + Fo / 4))), + (u = Math.sin(a)); + }), + (Na.lineEnd = function() { + n(t, e); + }); + } + function dt(n) { + var t = n[0], + e = n[1], + r = Math.cos(e); + return [r * Math.cos(t), r * Math.sin(t), Math.sin(e)]; + } + function yt(n, t) { + return n[0] * t[0] + n[1] * t[1] + n[2] * t[2]; + } + function mt(n, t) { + return [ + n[1] * t[2] - n[2] * t[1], + n[2] * t[0] - n[0] * t[2], + n[0] * t[1] - n[1] * t[0] + ]; + } + function Mt(n, t) { + (n[0] += t[0]), (n[1] += t[1]), (n[2] += t[2]); + } + function xt(n, t) { + return [n[0] * t, n[1] * t, n[2] * t]; + } + function bt(n) { + var t = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]); + (n[0] /= t), (n[1] /= t), (n[2] /= t); + } + function _t(n) { + return [Math.atan2(n[1], n[0]), tn(n[2])]; + } + function wt(n, t) { + return xo(n[0] - t[0]) < Uo && xo(n[1] - t[1]) < Uo; + } + function St(n, t) { + n *= Yo; + var e = Math.cos((t *= Yo)); + kt(e * Math.cos(n), e * Math.sin(n), Math.sin(t)); + } + function kt(n, t, e) { + ++Ea, (Ca += (n - Ca) / Ea), (za += (t - za) / Ea), (La += (e - La) / Ea); + } + function Nt() { + function n(n, i) { + n *= Yo; + var u = Math.cos((i *= Yo)), + o = u * Math.cos(n), + a = u * Math.sin(n), + l = Math.sin(i), + c = Math.atan2( + Math.sqrt( + (c = e * l - r * a) * c + + (c = r * o - t * l) * c + + (c = t * a - e * o) * c + ), + t * o + e * a + r * l + ); + (Aa += c), + (qa += c * (t + (t = o))), + (Ta += c * (e + (e = a))), + (Ra += c * (r + (r = l))), + kt(t, e, r); + } + var t, e, r; + ja.point = function(i, u) { + i *= Yo; + var o = Math.cos((u *= Yo)); + (t = o * Math.cos(i)), + (e = o * Math.sin(i)), + (r = Math.sin(u)), + (ja.point = n), + kt(t, e, r); + }; + } + function Et() { + ja.point = St; + } + function At() { + function n(n, t) { + n *= Yo; + var e = Math.cos((t *= Yo)), + o = e * Math.cos(n), + a = e * Math.sin(n), + l = Math.sin(t), + c = i * l - u * a, + f = u * o - r * l, + s = r * a - i * o, + h = Math.sqrt(c * c + f * f + s * s), + p = r * o + i * a + u * l, + g = h && -nn(p) / h, + v = Math.atan2(h, p); + (Da += g * c), + (Pa += g * f), + (Ua += g * s), + (Aa += v), + (qa += v * (r + (r = o))), + (Ta += v * (i + (i = a))), + (Ra += v * (u + (u = l))), + kt(r, i, u); + } + var t, e, r, i, u; + (ja.point = function(o, a) { + (t = o), (e = a), (ja.point = n), (o *= Yo); + var l = Math.cos((a *= Yo)); + (r = l * Math.cos(o)), + (i = l * Math.sin(o)), + (u = Math.sin(a)), + kt(r, i, u); + }), + (ja.lineEnd = function() { + n(t, e), (ja.lineEnd = Et), (ja.point = St); + }); + } + function Ct(n, t) { + function e(e, r) { + return (e = n(e, r)), t(e[0], e[1]); + } + return ( + n.invert && + t.invert && + (e.invert = function(e, r) { + return (e = t.invert(e, r)), e && n.invert(e[0], e[1]); + }), + e + ); + } + function zt() { + return !0; + } + function Lt(n, t, e, r, i) { + var u = [], + o = []; + if ( + (n.forEach(function(n) { + if (!((t = n.length - 1) <= 0)) { + var t, + e = n[0], + r = n[t]; + if (wt(e, r)) { + i.lineStart(); + for (var a = 0; t > a; ++a) i.point((e = n[a])[0], e[1]); + return void i.lineEnd(); + } + var l = new Tt(e, n, null, !0), + c = new Tt(e, null, l, !1); + (l.o = c), + u.push(l), + o.push(c), + (l = new Tt(r, n, null, !1)), + (c = new Tt(r, null, l, !0)), + (l.o = c), + u.push(l), + o.push(c); + } + }), + o.sort(t), + qt(u), + qt(o), + u.length) + ) { + for (var a = 0, l = e, c = o.length; c > a; ++a) o[a].e = l = !l; + for (var f, s, h = u[0]; ; ) { + for (var p = h, g = !0; p.v; ) if ((p = p.n) === h) return; + (f = p.z), i.lineStart(); + do { + if (((p.v = p.o.v = !0), p.e)) { + if (g) + for (var a = 0, c = f.length; c > a; ++a) + i.point((s = f[a])[0], s[1]); + else r(p.x, p.n.x, 1, i); + p = p.n; + } else { + if (g) { + f = p.p.z; + for (var a = f.length - 1; a >= 0; --a) + i.point((s = f[a])[0], s[1]); + } else r(p.x, p.p.x, -1, i); + p = p.p; + } + (p = p.o), (f = p.z), (g = !g); + } while (!p.v); + i.lineEnd(); + } + } + } + function qt(n) { + if ((t = n.length)) { + for (var t, e, r = 0, i = n[0]; ++r < t; ) + (i.n = e = n[r]), (e.p = i), (i = e); + (i.n = e = n[0]), (e.p = i); + } + } + function Tt(n, t, e, r) { + (this.x = n), + (this.z = t), + (this.o = e), + (this.e = r), + (this.v = !1), + (this.n = this.p = null); + } + function Rt(n, t, e, r) { + return function(i, u) { + function o(t, e) { + var r = i(t, e); + n((t = r[0]), (e = r[1])) && u.point(t, e); + } + function a(n, t) { + var e = i(n, t); + d.point(e[0], e[1]); + } + function l() { + (m.point = a), d.lineStart(); + } + function c() { + (m.point = o), d.lineEnd(); + } + function f(n, t) { + v.push([n, t]); + var e = i(n, t); + x.point(e[0], e[1]); + } + function s() { + x.lineStart(), (v = []); + } + function h() { + f(v[0][0], v[0][1]), x.lineEnd(); + var n, + t = x.clean(), + e = M.buffer(), + r = e.length; + if ((v.pop(), g.push(v), (v = null), r)) + if (1 & t) { + n = e[0]; + var i, + r = n.length - 1, + o = -1; + if (r > 0) { + for (b || (u.polygonStart(), (b = !0)), u.lineStart(); ++o < r; ) + u.point((i = n[o])[0], i[1]); + u.lineEnd(); + } + } else + r > 1 && 2 & t && e.push(e.pop().concat(e.shift())), + p.push(e.filter(Dt)); + } + var p, + g, + v, + d = t(u), + y = i.invert(r[0], r[1]), + m = { + point: o, + lineStart: l, + lineEnd: c, + polygonStart: function() { + (m.point = f), + (m.lineStart = s), + (m.lineEnd = h), + (p = []), + (g = []); + }, + polygonEnd: function() { + (m.point = o), + (m.lineStart = l), + (m.lineEnd = c), + (p = ao.merge(p)); + var n = Ot(y, g); + p.length + ? (b || (u.polygonStart(), (b = !0)), Lt(p, Ut, n, e, u)) + : n && + (b || (u.polygonStart(), (b = !0)), + u.lineStart(), + e(null, null, 1, u), + u.lineEnd()), + b && (u.polygonEnd(), (b = !1)), + (p = g = null); + }, + sphere: function() { + u.polygonStart(), + u.lineStart(), + e(null, null, 1, u), + u.lineEnd(), + u.polygonEnd(); + } + }, + M = Pt(), + x = t(M), + b = !1; + return m; + }; + } + function Dt(n) { + return n.length > 1; + } + function Pt() { + var n, + t = []; + return { + lineStart: function() { + t.push((n = [])); + }, + point: function(t, e) { + n.push([t, e]); + }, + lineEnd: b, + buffer: function() { + var e = t; + return (t = []), (n = null), e; + }, + rejoin: function() { + t.length > 1 && t.push(t.pop().concat(t.shift())); + } + }; + } + function Ut(n, t) { + return ( + ((n = n.x)[0] < 0 ? n[1] - Io - Uo : Io - n[1]) - + ((t = t.x)[0] < 0 ? t[1] - Io - Uo : Io - t[1]) + ); + } + function jt(n) { + var t, + e = NaN, + r = NaN, + i = NaN; + return { + lineStart: function() { + n.lineStart(), (t = 1); + }, + point: function(u, o) { + var a = u > 0 ? Fo : -Fo, + l = xo(u - e); + xo(l - Fo) < Uo + ? (n.point(e, (r = (r + o) / 2 > 0 ? Io : -Io)), + n.point(i, r), + n.lineEnd(), + n.lineStart(), + n.point(a, r), + n.point(u, r), + (t = 0)) + : i !== a && + l >= Fo && + (xo(e - i) < Uo && (e -= i * Uo), + xo(u - a) < Uo && (u -= a * Uo), + (r = Ft(e, r, u, o)), + n.point(i, r), + n.lineEnd(), + n.lineStart(), + n.point(a, r), + (t = 0)), + n.point((e = u), (r = o)), + (i = a); + }, + lineEnd: function() { + n.lineEnd(), (e = r = NaN); + }, + clean: function() { + return 2 - t; + } + }; + } + function Ft(n, t, e, r) { + var i, + u, + o = Math.sin(n - e); + return xo(o) > Uo + ? Math.atan( + (Math.sin(t) * (u = Math.cos(r)) * Math.sin(e) - + Math.sin(r) * (i = Math.cos(t)) * Math.sin(n)) / + (i * u * o) + ) + : (t + r) / 2; + } + function Ht(n, t, e, r) { + var i; + if (null == n) + (i = e * Io), + r.point(-Fo, i), + r.point(0, i), + r.point(Fo, i), + r.point(Fo, 0), + r.point(Fo, -i), + r.point(0, -i), + r.point(-Fo, -i), + r.point(-Fo, 0), + r.point(-Fo, i); + else if (xo(n[0] - t[0]) > Uo) { + var u = n[0] < t[0] ? Fo : -Fo; + (i = (e * u) / 2), r.point(-u, i), r.point(0, i), r.point(u, i); + } else r.point(t[0], t[1]); + } + function Ot(n, t) { + var e = n[0], + r = n[1], + i = [Math.sin(e), -Math.cos(e), 0], + u = 0, + o = 0; + ka.reset(); + for (var a = 0, l = t.length; l > a; ++a) { + var c = t[a], + f = c.length; + if (f) + for ( + var s = c[0], + h = s[0], + p = s[1] / 2 + Fo / 4, + g = Math.sin(p), + v = Math.cos(p), + d = 1; + ; + + ) { + d === f && (d = 0), (n = c[d]); + var y = n[0], + m = n[1] / 2 + Fo / 4, + M = Math.sin(m), + x = Math.cos(m), + b = y - h, + _ = b >= 0 ? 1 : -1, + w = _ * b, + S = w > Fo, + k = g * M; + if ( + (ka.add(Math.atan2(k * _ * Math.sin(w), v * x + k * Math.cos(w))), + (u += S ? b + _ * Ho : b), + S ^ (h >= e) ^ (y >= e)) + ) { + var N = mt(dt(s), dt(n)); + bt(N); + var E = mt(i, N); + bt(E); + var A = (S ^ (b >= 0) ? -1 : 1) * tn(E[2]); + (r > A || (r === A && (N[0] || N[1]))) && + (o += S ^ (b >= 0) ? 1 : -1); + } + if (!d++) break; + (h = y), (g = M), (v = x), (s = n); + } + } + return (-Uo > u || (Uo > u && -Uo > ka)) ^ (1 & o); + } + function It(n) { + function t(n, t) { + return Math.cos(n) * Math.cos(t) > u; + } + function e(n) { + var e, u, l, c, f; + return { + lineStart: function() { + (c = l = !1), (f = 1); + }, + point: function(s, h) { + var p, + g = [s, h], + v = t(s, h), + d = o ? (v ? 0 : i(s, h)) : v ? i(s + (0 > s ? Fo : -Fo), h) : 0; + if ( + (!e && (c = l = v) && n.lineStart(), + v !== l && + ((p = r(e, g)), + (wt(e, p) || wt(g, p)) && + ((g[0] += Uo), (g[1] += Uo), (v = t(g[0], g[1])))), + v !== l) + ) + (f = 0), + v + ? (n.lineStart(), (p = r(g, e)), n.point(p[0], p[1])) + : ((p = r(e, g)), n.point(p[0], p[1]), n.lineEnd()), + (e = p); + else if (a && e && o ^ v) { + var y; + d & u || + !(y = r(g, e, !0)) || + ((f = 0), + o + ? (n.lineStart(), + n.point(y[0][0], y[0][1]), + n.point(y[1][0], y[1][1]), + n.lineEnd()) + : (n.point(y[1][0], y[1][1]), + n.lineEnd(), + n.lineStart(), + n.point(y[0][0], y[0][1]))); + } + !v || (e && wt(e, g)) || n.point(g[0], g[1]), + (e = g), + (l = v), + (u = d); + }, + lineEnd: function() { + l && n.lineEnd(), (e = null); + }, + clean: function() { + return f | ((c && l) << 1); + } + }; + } + function r(n, t, e) { + var r = dt(n), + i = dt(t), + o = [1, 0, 0], + a = mt(r, i), + l = yt(a, a), + c = a[0], + f = l - c * c; + if (!f) return !e && n; + var s = (u * l) / f, + h = (-u * c) / f, + p = mt(o, a), + g = xt(o, s), + v = xt(a, h); + Mt(g, v); + var d = p, + y = yt(g, d), + m = yt(d, d), + M = y * y - m * (yt(g, g) - 1); + if (!(0 > M)) { + var x = Math.sqrt(M), + b = xt(d, (-y - x) / m); + if ((Mt(b, g), (b = _t(b)), !e)) return b; + var _, + w = n[0], + S = t[0], + k = n[1], + N = t[1]; + w > S && ((_ = w), (w = S), (S = _)); + var E = S - w, + A = xo(E - Fo) < Uo, + C = A || Uo > E; + if ( + (!A && k > N && ((_ = k), (k = N), (N = _)), + C + ? A + ? (k + N > 0) ^ (b[1] < (xo(b[0] - w) < Uo ? k : N)) + : k <= b[1] && b[1] <= N + : (E > Fo) ^ (w <= b[0] && b[0] <= S)) + ) { + var z = xt(d, (-y + x) / m); + return Mt(z, g), [b, _t(z)]; + } + } + } + function i(t, e) { + var r = o ? n : Fo - n, + i = 0; + return ( + -r > t ? (i |= 1) : t > r && (i |= 2), + -r > e ? (i |= 4) : e > r && (i |= 8), + i + ); + } + var u = Math.cos(n), + o = u > 0, + a = xo(u) > Uo, + l = ve(n, 6 * Yo); + return Rt(t, e, l, o ? [0, -n] : [-Fo, n - Fo]); + } + function Yt(n, t, e, r) { + return function(i) { + var u, + o = i.a, + a = i.b, + l = o.x, + c = o.y, + f = a.x, + s = a.y, + h = 0, + p = 1, + g = f - l, + v = s - c; + if (((u = n - l), g || !(u > 0))) { + if (((u /= g), 0 > g)) { + if (h > u) return; + p > u && (p = u); + } else if (g > 0) { + if (u > p) return; + u > h && (h = u); + } + if (((u = e - l), g || !(0 > u))) { + if (((u /= g), 0 > g)) { + if (u > p) return; + u > h && (h = u); + } else if (g > 0) { + if (h > u) return; + p > u && (p = u); + } + if (((u = t - c), v || !(u > 0))) { + if (((u /= v), 0 > v)) { + if (h > u) return; + p > u && (p = u); + } else if (v > 0) { + if (u > p) return; + u > h && (h = u); + } + if (((u = r - c), v || !(0 > u))) { + if (((u /= v), 0 > v)) { + if (u > p) return; + u > h && (h = u); + } else if (v > 0) { + if (h > u) return; + p > u && (p = u); + } + return ( + h > 0 && (i.a = { x: l + h * g, y: c + h * v }), + 1 > p && (i.b = { x: l + p * g, y: c + p * v }), + i + ); + } + } + } + } + }; + } + function Zt(n, t, e, r) { + function i(r, i) { + return xo(r[0] - n) < Uo + ? i > 0 + ? 0 + : 3 + : xo(r[0] - e) < Uo + ? i > 0 + ? 2 + : 1 + : xo(r[1] - t) < Uo + ? i > 0 + ? 1 + : 0 + : i > 0 + ? 3 + : 2; + } + function u(n, t) { + return o(n.x, t.x); + } + function o(n, t) { + var e = i(n, 1), + r = i(t, 1); + return e !== r + ? e - r + : 0 === e + ? t[1] - n[1] + : 1 === e + ? n[0] - t[0] + : 2 === e + ? n[1] - t[1] + : t[0] - n[0]; + } + return function(a) { + function l(n) { + for (var t = 0, e = d.length, r = n[1], i = 0; e > i; ++i) + for (var u, o = 1, a = d[i], l = a.length, c = a[0]; l > o; ++o) + (u = a[o]), + c[1] <= r + ? u[1] > r && Q(c, u, n) > 0 && ++t + : u[1] <= r && Q(c, u, n) < 0 && --t, + (c = u); + return 0 !== t; + } + function c(u, a, l, c) { + var f = 0, + s = 0; + if ( + null == u || + (f = i(u, l)) !== (s = i(a, l)) || + (o(u, a) < 0) ^ (l > 0) + ) { + do c.point(0 === f || 3 === f ? n : e, f > 1 ? r : t); + while ((f = (f + l + 4) % 4) !== s); + } else c.point(a[0], a[1]); + } + function f(i, u) { + return i >= n && e >= i && u >= t && r >= u; + } + function s(n, t) { + f(n, t) && a.point(n, t); + } + function h() { + (C.point = g), d && d.push((y = [])), (S = !0), (w = !1), (b = _ = NaN); + } + function p() { + v && (g(m, M), x && w && E.rejoin(), v.push(E.buffer())), + (C.point = s), + w && a.lineEnd(); + } + function g(n, t) { + (n = Math.max(-Ha, Math.min(Ha, n))), + (t = Math.max(-Ha, Math.min(Ha, t))); + var e = f(n, t); + if ((d && y.push([n, t]), S)) + (m = n), + (M = t), + (x = e), + (S = !1), + e && (a.lineStart(), a.point(n, t)); + else if (e && w) a.point(n, t); + else { + var r = { a: { x: b, y: _ }, b: { x: n, y: t } }; + A(r) + ? (w || (a.lineStart(), a.point(r.a.x, r.a.y)), + a.point(r.b.x, r.b.y), + e || a.lineEnd(), + (k = !1)) + : e && (a.lineStart(), a.point(n, t), (k = !1)); + } + (b = n), (_ = t), (w = e); + } + var v, + d, + y, + m, + M, + x, + b, + _, + w, + S, + k, + N = a, + E = Pt(), + A = Yt(n, t, e, r), + C = { + point: s, + lineStart: h, + lineEnd: p, + polygonStart: function() { + (a = E), (v = []), (d = []), (k = !0); + }, + polygonEnd: function() { + (a = N), (v = ao.merge(v)); + var t = l([n, r]), + e = k && t, + i = v.length; + (e || i) && + (a.polygonStart(), + e && (a.lineStart(), c(null, null, 1, a), a.lineEnd()), + i && Lt(v, u, t, c, a), + a.polygonEnd()), + (v = d = y = null); + } + }; + return C; + }; + } + function Vt(n) { + var t = 0, + e = Fo / 3, + r = ae(n), + i = r(t, e); + return ( + (i.parallels = function(n) { + return arguments.length + ? r((t = (n[0] * Fo) / 180), (e = (n[1] * Fo) / 180)) + : [(t / Fo) * 180, (e / Fo) * 180]; + }), + i + ); + } + function Xt(n, t) { + function e(n, t) { + var e = Math.sqrt(u - 2 * i * Math.sin(t)) / i; + return [e * Math.sin((n *= i)), o - e * Math.cos(n)]; + } + var r = Math.sin(n), + i = (r + Math.sin(t)) / 2, + u = 1 + r * (2 * i - r), + o = Math.sqrt(u) / i; + return ( + (e.invert = function(n, t) { + var e = o - t; + return [ + Math.atan2(n, e) / i, + tn((u - (n * n + e * e) * i * i) / (2 * i)) + ]; + }), + e + ); + } + function $t() { + function n(n, t) { + (Ia += i * n - r * t), (r = n), (i = t); + } + var t, e, r, i; + ($a.point = function(u, o) { + ($a.point = n), (t = r = u), (e = i = o); + }), + ($a.lineEnd = function() { + n(t, e); + }); + } + function Bt(n, t) { + Ya > n && (Ya = n), + n > Va && (Va = n), + Za > t && (Za = t), + t > Xa && (Xa = t); + } + function Wt() { + function n(n, t) { + o.push('M', n, ',', t, u); + } + function t(n, t) { + o.push('M', n, ',', t), (a.point = e); + } + function e(n, t) { + o.push('L', n, ',', t); + } + function r() { + a.point = n; + } + function i() { + o.push('Z'); + } + var u = Jt(4.5), + o = [], + a = { + point: n, + lineStart: function() { + a.point = t; + }, + lineEnd: r, + polygonStart: function() { + a.lineEnd = i; + }, + polygonEnd: function() { + (a.lineEnd = r), (a.point = n); + }, + pointRadius: function(n) { + return (u = Jt(n)), a; + }, + result: function() { + if (o.length) { + var n = o.join(''); + return (o = []), n; + } + } + }; + return a; + } + function Jt(n) { + return ( + 'm0,' + + n + + 'a' + + n + + ',' + + n + + ' 0 1,1 0,' + + -2 * n + + 'a' + + n + + ',' + + n + + ' 0 1,1 0,' + + 2 * n + + 'z' + ); + } + function Gt(n, t) { + (Ca += n), (za += t), ++La; + } + function Kt() { + function n(n, r) { + var i = n - t, + u = r - e, + o = Math.sqrt(i * i + u * u); + (qa += (o * (t + n)) / 2), + (Ta += (o * (e + r)) / 2), + (Ra += o), + Gt((t = n), (e = r)); + } + var t, e; + Wa.point = function(r, i) { + (Wa.point = n), Gt((t = r), (e = i)); + }; + } + function Qt() { + Wa.point = Gt; + } + function ne() { + function n(n, t) { + var e = n - r, + u = t - i, + o = Math.sqrt(e * e + u * u); + (qa += (o * (r + n)) / 2), + (Ta += (o * (i + t)) / 2), + (Ra += o), + (o = i * n - r * t), + (Da += o * (r + n)), + (Pa += o * (i + t)), + (Ua += 3 * o), + Gt((r = n), (i = t)); + } + var t, e, r, i; + (Wa.point = function(u, o) { + (Wa.point = n), Gt((t = r = u), (e = i = o)); + }), + (Wa.lineEnd = function() { + n(t, e); + }); + } + function te(n) { + function t(t, e) { + n.moveTo(t + o, e), n.arc(t, e, o, 0, Ho); + } + function e(t, e) { + n.moveTo(t, e), (a.point = r); + } + function r(t, e) { + n.lineTo(t, e); + } + function i() { + a.point = t; + } + function u() { + n.closePath(); + } + var o = 4.5, + a = { + point: t, + lineStart: function() { + a.point = e; + }, + lineEnd: i, + polygonStart: function() { + a.lineEnd = u; + }, + polygonEnd: function() { + (a.lineEnd = i), (a.point = t); + }, + pointRadius: function(n) { + return (o = n), a; + }, + result: b + }; + return a; + } + function ee(n) { + function t(n) { + return (a ? r : e)(n); + } + function e(t) { + return ue(t, function(e, r) { + (e = n(e, r)), t.point(e[0], e[1]); + }); + } + function r(t) { + function e(e, r) { + (e = n(e, r)), t.point(e[0], e[1]); + } + function r() { + (M = NaN), (S.point = u), t.lineStart(); + } + function u(e, r) { + var u = dt([e, r]), + o = n(e, r); + i( + M, + x, + m, + b, + _, + w, + (M = o[0]), + (x = o[1]), + (m = e), + (b = u[0]), + (_ = u[1]), + (w = u[2]), + a, + t + ), + t.point(M, x); + } + function o() { + (S.point = e), t.lineEnd(); + } + function l() { + r(), (S.point = c), (S.lineEnd = f); + } + function c(n, t) { + u((s = n), (h = t)), + (p = M), + (g = x), + (v = b), + (d = _), + (y = w), + (S.point = u); + } + function f() { + i(M, x, m, b, _, w, p, g, s, v, d, y, a, t), (S.lineEnd = o), o(); + } + var s, + h, + p, + g, + v, + d, + y, + m, + M, + x, + b, + _, + w, + S = { + point: e, + lineStart: r, + lineEnd: o, + polygonStart: function() { + t.polygonStart(), (S.lineStart = l); + }, + polygonEnd: function() { + t.polygonEnd(), (S.lineStart = r); + } + }; + return S; + } + function i(t, e, r, a, l, c, f, s, h, p, g, v, d, y) { + var m = f - t, + M = s - e, + x = m * m + M * M; + if (x > 4 * u && d--) { + var b = a + p, + _ = l + g, + w = c + v, + S = Math.sqrt(b * b + _ * _ + w * w), + k = Math.asin((w /= S)), + N = + xo(xo(w) - 1) < Uo || xo(r - h) < Uo + ? (r + h) / 2 + : Math.atan2(_, b), + E = n(N, k), + A = E[0], + C = E[1], + z = A - t, + L = C - e, + q = M * z - m * L; + ((q * q) / x > u || + xo((m * z + M * L) / x - 0.5) > 0.3 || + o > a * p + l * g + c * v) && + (i(t, e, r, a, l, c, A, C, N, (b /= S), (_ /= S), w, d, y), + y.point(A, C), + i(A, C, N, b, _, w, f, s, h, p, g, v, d, y)); + } + } + var u = 0.5, + o = Math.cos(30 * Yo), + a = 16; + return ( + (t.precision = function(n) { + return arguments.length + ? ((a = (u = n * n) > 0 && 16), t) + : Math.sqrt(u); + }), + t + ); + } + function re(n) { + var t = ee(function(t, e) { + return n([t * Zo, e * Zo]); + }); + return function(n) { + return le(t(n)); + }; + } + function ie(n) { + this.stream = n; + } + function ue(n, t) { + return { + point: t, + sphere: function() { + n.sphere(); + }, + lineStart: function() { + n.lineStart(); + }, + lineEnd: function() { + n.lineEnd(); + }, + polygonStart: function() { + n.polygonStart(); + }, + polygonEnd: function() { + n.polygonEnd(); + } + }; + } + function oe(n) { + return ae(function() { + return n; + })(); + } + function ae(n) { + function t(n) { + return (n = a(n[0] * Yo, n[1] * Yo)), [n[0] * h + l, c - n[1] * h]; + } + function e(n) { + return ( + (n = a.invert((n[0] - l) / h, (c - n[1]) / h)), + n && [n[0] * Zo, n[1] * Zo] + ); + } + function r() { + a = Ct((o = se(y, M, x)), u); + var n = u(v, d); + return (l = p - n[0] * h), (c = g + n[1] * h), i(); + } + function i() { + return f && ((f.valid = !1), (f = null)), t; + } + var u, + o, + a, + l, + c, + f, + s = ee(function(n, t) { + return (n = u(n, t)), [n[0] * h + l, c - n[1] * h]; + }), + h = 150, + p = 480, + g = 250, + v = 0, + d = 0, + y = 0, + M = 0, + x = 0, + b = Fa, + _ = m, + w = null, + S = null; + return ( + (t.stream = function(n) { + return f && (f.valid = !1), (f = le(b(o, s(_(n))))), (f.valid = !0), f; + }), + (t.clipAngle = function(n) { + return arguments.length + ? ((b = null == n ? ((w = n), Fa) : It((w = +n) * Yo)), i()) + : w; + }), + (t.clipExtent = function(n) { + return arguments.length + ? ((S = n), (_ = n ? Zt(n[0][0], n[0][1], n[1][0], n[1][1]) : m), i()) + : S; + }), + (t.scale = function(n) { + return arguments.length ? ((h = +n), r()) : h; + }), + (t.translate = function(n) { + return arguments.length ? ((p = +n[0]), (g = +n[1]), r()) : [p, g]; + }), + (t.center = function(n) { + return arguments.length + ? ((v = (n[0] % 360) * Yo), (d = (n[1] % 360) * Yo), r()) + : [v * Zo, d * Zo]; + }), + (t.rotate = function(n) { + return arguments.length + ? ((y = (n[0] % 360) * Yo), + (M = (n[1] % 360) * Yo), + (x = n.length > 2 ? (n[2] % 360) * Yo : 0), + r()) + : [y * Zo, M * Zo, x * Zo]; + }), + ao.rebind(t, s, 'precision'), + function() { + return (u = n.apply(this, arguments)), (t.invert = u.invert && e), r(); + } + ); + } + function le(n) { + return ue(n, function(t, e) { + n.point(t * Yo, e * Yo); + }); + } + function ce(n, t) { + return [n, t]; + } + function fe(n, t) { + return [n > Fo ? n - Ho : -Fo > n ? n + Ho : n, t]; + } + function se(n, t, e) { + return n ? (t || e ? Ct(pe(n), ge(t, e)) : pe(n)) : t || e ? ge(t, e) : fe; + } + function he(n) { + return function(t, e) { + return (t += n), [t > Fo ? t - Ho : -Fo > t ? t + Ho : t, e]; + }; + } + function pe(n) { + var t = he(n); + return (t.invert = he(-n)), t; + } + function ge(n, t) { + function e(n, t) { + var e = Math.cos(t), + a = Math.cos(n) * e, + l = Math.sin(n) * e, + c = Math.sin(t), + f = c * r + a * i; + return [Math.atan2(l * u - f * o, a * r - c * i), tn(f * u + l * o)]; + } + var r = Math.cos(n), + i = Math.sin(n), + u = Math.cos(t), + o = Math.sin(t); + return ( + (e.invert = function(n, t) { + var e = Math.cos(t), + a = Math.cos(n) * e, + l = Math.sin(n) * e, + c = Math.sin(t), + f = c * u - l * o; + return [Math.atan2(l * u + c * o, a * r + f * i), tn(f * r - a * i)]; + }), + e + ); + } + function ve(n, t) { + var e = Math.cos(n), + r = Math.sin(n); + return function(i, u, o, a) { + var l = o * t; + null != i + ? ((i = de(e, i)), + (u = de(e, u)), + (o > 0 ? u > i : i > u) && (i += o * Ho)) + : ((i = n + o * Ho), (u = n - 0.5 * l)); + for (var c, f = i; o > 0 ? f > u : u > f; f -= l) + a.point((c = _t([e, -r * Math.cos(f), -r * Math.sin(f)]))[0], c[1]); + }; + } + function de(n, t) { + var e = dt(t); + (e[0] -= n), bt(e); + var r = nn(-e[1]); + return ((-e[2] < 0 ? -r : r) + 2 * Math.PI - Uo) % (2 * Math.PI); + } + function ye(n, t, e) { + var r = ao.range(n, t - Uo, e).concat(t); + return function(n) { + return r.map(function(t) { + return [n, t]; + }); + }; + } + function me(n, t, e) { + var r = ao.range(n, t - Uo, e).concat(t); + return function(n) { + return r.map(function(t) { + return [t, n]; + }); + }; + } + function Me(n) { + return n.source; + } + function xe(n) { + return n.target; + } + function be(n, t, e, r) { + var i = Math.cos(t), + u = Math.sin(t), + o = Math.cos(r), + a = Math.sin(r), + l = i * Math.cos(n), + c = i * Math.sin(n), + f = o * Math.cos(e), + s = o * Math.sin(e), + h = 2 * Math.asin(Math.sqrt(on(r - t) + i * o * on(e - n))), + p = 1 / Math.sin(h), + g = h + ? function(n) { + var t = Math.sin((n *= h)) * p, + e = Math.sin(h - n) * p, + r = e * l + t * f, + i = e * c + t * s, + o = e * u + t * a; + return [ + Math.atan2(i, r) * Zo, + Math.atan2(o, Math.sqrt(r * r + i * i)) * Zo + ]; + } + : function() { + return [n * Zo, t * Zo]; + }; + return (g.distance = h), g; + } + function _e() { + function n(n, i) { + var u = Math.sin((i *= Yo)), + o = Math.cos(i), + a = xo((n *= Yo) - t), + l = Math.cos(a); + (Ja += Math.atan2( + Math.sqrt((a = o * Math.sin(a)) * a + (a = r * u - e * o * l) * a), + e * u + r * o * l + )), + (t = n), + (e = u), + (r = o); + } + var t, e, r; + (Ga.point = function(i, u) { + (t = i * Yo), + (e = Math.sin((u *= Yo))), + (r = Math.cos(u)), + (Ga.point = n); + }), + (Ga.lineEnd = function() { + Ga.point = Ga.lineEnd = b; + }); + } + function we(n, t) { + function e(t, e) { + var r = Math.cos(t), + i = Math.cos(e), + u = n(r * i); + return [u * i * Math.sin(t), u * Math.sin(e)]; + } + return ( + (e.invert = function(n, e) { + var r = Math.sqrt(n * n + e * e), + i = t(r), + u = Math.sin(i), + o = Math.cos(i); + return [Math.atan2(n * u, r * o), Math.asin(r && (e * u) / r)]; + }), + e + ); + } + function Se(n, t) { + function e(n, t) { + o > 0 ? -Io + Uo > t && (t = -Io + Uo) : t > Io - Uo && (t = Io - Uo); + var e = o / Math.pow(i(t), u); + return [e * Math.sin(u * n), o - e * Math.cos(u * n)]; + } + var r = Math.cos(n), + i = function(n) { + return Math.tan(Fo / 4 + n / 2); + }, + u = + n === t + ? Math.sin(n) + : Math.log(r / Math.cos(t)) / Math.log(i(t) / i(n)), + o = (r * Math.pow(i(n), u)) / u; + return u + ? ((e.invert = function(n, t) { + var e = o - t, + r = K(u) * Math.sqrt(n * n + e * e); + return [ + Math.atan2(n, e) / u, + 2 * Math.atan(Math.pow(o / r, 1 / u)) - Io + ]; + }), + e) + : Ne; + } + function ke(n, t) { + function e(n, t) { + var e = u - t; + return [e * Math.sin(i * n), u - e * Math.cos(i * n)]; + } + var r = Math.cos(n), + i = n === t ? Math.sin(n) : (r - Math.cos(t)) / (t - n), + u = r / i + n; + return xo(i) < Uo + ? ce + : ((e.invert = function(n, t) { + var e = u - t; + return [Math.atan2(n, e) / i, u - K(i) * Math.sqrt(n * n + e * e)]; + }), + e); + } + function Ne(n, t) { + return [n, Math.log(Math.tan(Fo / 4 + t / 2))]; + } + function Ee(n) { + var t, + e = oe(n), + r = e.scale, + i = e.translate, + u = e.clipExtent; + return ( + (e.scale = function() { + var n = r.apply(e, arguments); + return n === e ? (t ? e.clipExtent(null) : e) : n; + }), + (e.translate = function() { + var n = i.apply(e, arguments); + return n === e ? (t ? e.clipExtent(null) : e) : n; + }), + (e.clipExtent = function(n) { + var o = u.apply(e, arguments); + if (o === e) { + if ((t = null == n)) { + var a = Fo * r(), + l = i(); + u([[l[0] - a, l[1] - a], [l[0] + a, l[1] + a]]); + } + } else t && (o = null); + return o; + }), + e.clipExtent(null) + ); + } + function Ae(n, t) { + return [Math.log(Math.tan(Fo / 4 + t / 2)), -n]; + } + function Ce(n) { + return n[0]; + } + function ze(n) { + return n[1]; + } + function Le(n) { + for (var t = n.length, e = [0, 1], r = 2, i = 2; t > i; i++) { + for (; r > 1 && Q(n[e[r - 2]], n[e[r - 1]], n[i]) <= 0; ) --r; + e[r++] = i; + } + return e.slice(0, r); + } + function qe(n, t) { + return n[0] - t[0] || n[1] - t[1]; + } + function Te(n, t, e) { + return (e[0] - t[0]) * (n[1] - t[1]) < (e[1] - t[1]) * (n[0] - t[0]); + } + function Re(n, t, e, r) { + var i = n[0], + u = e[0], + o = t[0] - i, + a = r[0] - u, + l = n[1], + c = e[1], + f = t[1] - l, + s = r[1] - c, + h = (a * (l - c) - s * (i - u)) / (s * o - a * f); + return [i + h * o, l + h * f]; + } + function De(n) { + var t = n[0], + e = n[n.length - 1]; + return !(t[0] - e[0] || t[1] - e[1]); + } + function Pe() { + rr(this), (this.edge = this.site = this.circle = null); + } + function Ue(n) { + var t = cl.pop() || new Pe(); + return (t.site = n), t; + } + function je(n) { + Be(n), ol.remove(n), cl.push(n), rr(n); + } + function Fe(n) { + var t = n.circle, + e = t.x, + r = t.cy, + i = { x: e, y: r }, + u = n.P, + o = n.N, + a = [n]; + je(n); + for ( + var l = u; + l.circle && xo(e - l.circle.x) < Uo && xo(r - l.circle.cy) < Uo; + + ) + (u = l.P), a.unshift(l), je(l), (l = u); + a.unshift(l), Be(l); + for ( + var c = o; + c.circle && xo(e - c.circle.x) < Uo && xo(r - c.circle.cy) < Uo; + + ) + (o = c.N), a.push(c), je(c), (c = o); + a.push(c), Be(c); + var f, + s = a.length; + for (f = 1; s > f; ++f) + (c = a[f]), (l = a[f - 1]), nr(c.edge, l.site, c.site, i); + (l = a[0]), + (c = a[s - 1]), + (c.edge = Ke(l.site, c.site, null, i)), + $e(l), + $e(c); + } + function He(n) { + for (var t, e, r, i, u = n.x, o = n.y, a = ol._; a; ) + if (((r = Oe(a, o) - u), r > Uo)) a = a.L; + else { + if (((i = u - Ie(a, o)), !(i > Uo))) { + r > -Uo + ? ((t = a.P), (e = a)) + : i > -Uo + ? ((t = a), (e = a.N)) + : (t = e = a); + break; + } + if (!a.R) { + t = a; + break; + } + a = a.R; + } + var l = Ue(n); + if ((ol.insert(t, l), t || e)) { + if (t === e) + return ( + Be(t), + (e = Ue(t.site)), + ol.insert(l, e), + (l.edge = e.edge = Ke(t.site, l.site)), + $e(t), + void $e(e) + ); + if (!e) return void (l.edge = Ke(t.site, l.site)); + Be(t), Be(e); + var c = t.site, + f = c.x, + s = c.y, + h = n.x - f, + p = n.y - s, + g = e.site, + v = g.x - f, + d = g.y - s, + y = 2 * (h * d - p * v), + m = h * h + p * p, + M = v * v + d * d, + x = { x: (d * m - p * M) / y + f, y: (h * M - v * m) / y + s }; + nr(e.edge, c, g, x), + (l.edge = Ke(c, n, null, x)), + (e.edge = Ke(n, g, null, x)), + $e(t), + $e(e); + } + } + function Oe(n, t) { + var e = n.site, + r = e.x, + i = e.y, + u = i - t; + if (!u) return r; + var o = n.P; + if (!o) return -(1 / 0); + e = o.site; + var a = e.x, + l = e.y, + c = l - t; + if (!c) return a; + var f = a - r, + s = 1 / u - 1 / c, + h = f / c; + return s + ? (-h + + Math.sqrt( + h * h - 2 * s * ((f * f) / (-2 * c) - l + c / 2 + i - u / 2) + )) / + s + + r + : (r + a) / 2; + } + function Ie(n, t) { + var e = n.N; + if (e) return Oe(e, t); + var r = n.site; + return r.y === t ? r.x : 1 / 0; + } + function Ye(n) { + (this.site = n), (this.edges = []); + } + function Ze(n) { + for ( + var t, + e, + r, + i, + u, + o, + a, + l, + c, + f, + s = n[0][0], + h = n[1][0], + p = n[0][1], + g = n[1][1], + v = ul, + d = v.length; + d--; + + ) + if (((u = v[d]), u && u.prepare())) + for (a = u.edges, l = a.length, o = 0; l > o; ) + (f = a[o].end()), + (r = f.x), + (i = f.y), + (c = a[++o % l].start()), + (t = c.x), + (e = c.y), + (xo(r - t) > Uo || xo(i - e) > Uo) && + (a.splice( + o, + 0, + new tr( + Qe( + u.site, + f, + xo(r - s) < Uo && g - i > Uo + ? { x: s, y: xo(t - s) < Uo ? e : g } + : xo(i - g) < Uo && h - r > Uo + ? { x: xo(e - g) < Uo ? t : h, y: g } + : xo(r - h) < Uo && i - p > Uo + ? { x: h, y: xo(t - h) < Uo ? e : p } + : xo(i - p) < Uo && r - s > Uo + ? { x: xo(e - p) < Uo ? t : s, y: p } + : null + ), + u.site, + null + ) + ), + ++l); + } + function Ve(n, t) { + return t.angle - n.angle; + } + function Xe() { + rr(this), (this.x = this.y = this.arc = this.site = this.cy = null); + } + function $e(n) { + var t = n.P, + e = n.N; + if (t && e) { + var r = t.site, + i = n.site, + u = e.site; + if (r !== u) { + var o = i.x, + a = i.y, + l = r.x - o, + c = r.y - a, + f = u.x - o, + s = u.y - a, + h = 2 * (l * s - c * f); + if (!(h >= -jo)) { + var p = l * l + c * c, + g = f * f + s * s, + v = (s * p - c * g) / h, + d = (l * g - f * p) / h, + s = d + a, + y = fl.pop() || new Xe(); + (y.arc = n), + (y.site = i), + (y.x = v + o), + (y.y = s + Math.sqrt(v * v + d * d)), + (y.cy = s), + (n.circle = y); + for (var m = null, M = ll._; M; ) + if (y.y < M.y || (y.y === M.y && y.x <= M.x)) { + if (!M.L) { + m = M.P; + break; + } + M = M.L; + } else { + if (!M.R) { + m = M; + break; + } + M = M.R; + } + ll.insert(m, y), m || (al = y); + } + } + } + } + function Be(n) { + var t = n.circle; + t && + (t.P || (al = t.N), ll.remove(t), fl.push(t), rr(t), (n.circle = null)); + } + function We(n) { + for ( + var t, e = il, r = Yt(n[0][0], n[0][1], n[1][0], n[1][1]), i = e.length; + i--; + + ) + (t = e[i]), + (!Je(t, n) || + !r(t) || + (xo(t.a.x - t.b.x) < Uo && xo(t.a.y - t.b.y) < Uo)) && + ((t.a = t.b = null), e.splice(i, 1)); + } + function Je(n, t) { + var e = n.b; + if (e) return !0; + var r, + i, + u = n.a, + o = t[0][0], + a = t[1][0], + l = t[0][1], + c = t[1][1], + f = n.l, + s = n.r, + h = f.x, + p = f.y, + g = s.x, + v = s.y, + d = (h + g) / 2, + y = (p + v) / 2; + if (v === p) { + if (o > d || d >= a) return; + if (h > g) { + if (u) { + if (u.y >= c) return; + } else u = { x: d, y: l }; + e = { x: d, y: c }; + } else { + if (u) { + if (u.y < l) return; + } else u = { x: d, y: c }; + e = { x: d, y: l }; + } + } else if (((r = (h - g) / (v - p)), (i = y - r * d), -1 > r || r > 1)) + if (h > g) { + if (u) { + if (u.y >= c) return; + } else u = { x: (l - i) / r, y: l }; + e = { x: (c - i) / r, y: c }; + } else { + if (u) { + if (u.y < l) return; + } else u = { x: (c - i) / r, y: c }; + e = { x: (l - i) / r, y: l }; + } + else if (v > p) { + if (u) { + if (u.x >= a) return; + } else u = { x: o, y: r * o + i }; + e = { x: a, y: r * a + i }; + } else { + if (u) { + if (u.x < o) return; + } else u = { x: a, y: r * a + i }; + e = { x: o, y: r * o + i }; + } + return (n.a = u), (n.b = e), !0; + } + function Ge(n, t) { + (this.l = n), (this.r = t), (this.a = this.b = null); + } + function Ke(n, t, e, r) { + var i = new Ge(n, t); + return ( + il.push(i), + e && nr(i, n, t, e), + r && nr(i, t, n, r), + ul[n.i].edges.push(new tr(i, n, t)), + ul[t.i].edges.push(new tr(i, t, n)), + i + ); + } + function Qe(n, t, e) { + var r = new Ge(n, null); + return (r.a = t), (r.b = e), il.push(r), r; + } + function nr(n, t, e, r) { + n.a || n.b + ? n.l === e + ? (n.b = r) + : (n.a = r) + : ((n.a = r), (n.l = t), (n.r = e)); + } + function tr(n, t, e) { + var r = n.a, + i = n.b; + (this.edge = n), + (this.site = t), + (this.angle = e + ? Math.atan2(e.y - t.y, e.x - t.x) + : n.l === t + ? Math.atan2(i.x - r.x, r.y - i.y) + : Math.atan2(r.x - i.x, i.y - r.y)); + } + function er() { + this._ = null; + } + function rr(n) { + n.U = n.C = n.L = n.R = n.P = n.N = null; + } + function ir(n, t) { + var e = t, + r = t.R, + i = e.U; + i ? (i.L === e ? (i.L = r) : (i.R = r)) : (n._ = r), + (r.U = i), + (e.U = r), + (e.R = r.L), + e.R && (e.R.U = e), + (r.L = e); + } + function ur(n, t) { + var e = t, + r = t.L, + i = e.U; + i ? (i.L === e ? (i.L = r) : (i.R = r)) : (n._ = r), + (r.U = i), + (e.U = r), + (e.L = r.R), + e.L && (e.L.U = e), + (r.R = e); + } + function or(n) { + for (; n.L; ) n = n.L; + return n; + } + function ar(n, t) { + var e, + r, + i, + u = n.sort(lr).pop(); + for (il = [], ul = new Array(n.length), ol = new er(), ll = new er(); ; ) + if (((i = al), u && (!i || u.y < i.y || (u.y === i.y && u.x < i.x)))) + (u.x === e && u.y === r) || + ((ul[u.i] = new Ye(u)), He(u), (e = u.x), (r = u.y)), + (u = n.pop()); + else { + if (!i) break; + Fe(i.arc); + } + t && (We(t), Ze(t)); + var o = { cells: ul, edges: il }; + return (ol = ll = il = ul = null), o; + } + function lr(n, t) { + return t.y - n.y || t.x - n.x; + } + function cr(n, t, e) { + return (n.x - e.x) * (t.y - n.y) - (n.x - t.x) * (e.y - n.y); + } + function fr(n) { + return n.x; + } + function sr(n) { + return n.y; + } + function hr() { + return { leaf: !0, nodes: [], point: null, x: null, y: null }; + } + function pr(n, t, e, r, i, u) { + if (!n(t, e, r, i, u)) { + var o = 0.5 * (e + i), + a = 0.5 * (r + u), + l = t.nodes; + l[0] && pr(n, l[0], e, r, o, a), + l[1] && pr(n, l[1], o, r, i, a), + l[2] && pr(n, l[2], e, a, o, u), + l[3] && pr(n, l[3], o, a, i, u); + } + } + function gr(n, t, e, r, i, u, o) { + var a, + l = 1 / 0; + return ( + (function c(n, f, s, h, p) { + if (!(f > u || s > o || r > h || i > p)) { + if ((g = n.point)) { + var g, + v = t - n.x, + d = e - n.y, + y = v * v + d * d; + if (l > y) { + var m = Math.sqrt((l = y)); + (r = t - m), (i = e - m), (u = t + m), (o = e + m), (a = g); + } + } + for ( + var M = n.nodes, + x = 0.5 * (f + h), + b = 0.5 * (s + p), + _ = t >= x, + w = e >= b, + S = (w << 1) | _, + k = S + 4; + k > S; + ++S + ) + if ((n = M[3 & S])) + switch (3 & S) { + case 0: + c(n, f, s, x, b); + break; + case 1: + c(n, x, s, h, b); + break; + case 2: + c(n, f, b, x, p); + break; + case 3: + c(n, x, b, h, p); + } + } + })(n, r, i, u, o), + a + ); + } + function vr(n, t) { + (n = ao.rgb(n)), (t = ao.rgb(t)); + var e = n.r, + r = n.g, + i = n.b, + u = t.r - e, + o = t.g - r, + a = t.b - i; + return function(n) { + return ( + '#' + + bn(Math.round(e + u * n)) + + bn(Math.round(r + o * n)) + + bn(Math.round(i + a * n)) + ); + }; + } + function dr(n, t) { + var e, + r = {}, + i = {}; + for (e in n) e in t ? (r[e] = Mr(n[e], t[e])) : (i[e] = n[e]); + for (e in t) e in n || (i[e] = t[e]); + return function(n) { + for (e in r) i[e] = r[e](n); + return i; + }; + } + function yr(n, t) { + return ( + (n = +n), + (t = +t), + function(e) { + return n * (1 - e) + t * e; + } + ); + } + function mr(n, t) { + var e, + r, + i, + u = (hl.lastIndex = pl.lastIndex = 0), + o = -1, + a = [], + l = []; + for (n += '', t += ''; (e = hl.exec(n)) && (r = pl.exec(t)); ) + (i = r.index) > u && + ((i = t.slice(u, i)), a[o] ? (a[o] += i) : (a[++o] = i)), + (e = e[0]) === (r = r[0]) + ? a[o] + ? (a[o] += r) + : (a[++o] = r) + : ((a[++o] = null), l.push({ i: o, x: yr(e, r) })), + (u = pl.lastIndex); + return ( + u < t.length && ((i = t.slice(u)), a[o] ? (a[o] += i) : (a[++o] = i)), + a.length < 2 + ? l[0] + ? ((t = l[0].x), + function(n) { + return t(n) + ''; + }) + : function() { + return t; + } + : ((t = l.length), + function(n) { + for (var e, r = 0; t > r; ++r) a[(e = l[r]).i] = e.x(n); + return a.join(''); + }) + ); + } + function Mr(n, t) { + for ( + var e, r = ao.interpolators.length; + --r >= 0 && !(e = ao.interpolators[r](n, t)); + + ); + return e; + } + function xr(n, t) { + var e, + r = [], + i = [], + u = n.length, + o = t.length, + a = Math.min(n.length, t.length); + for (e = 0; a > e; ++e) r.push(Mr(n[e], t[e])); + for (; u > e; ++e) i[e] = n[e]; + for (; o > e; ++e) i[e] = t[e]; + return function(n) { + for (e = 0; a > e; ++e) i[e] = r[e](n); + return i; + }; + } + function br(n) { + return function(t) { + return 0 >= t ? 0 : t >= 1 ? 1 : n(t); + }; + } + function _r(n) { + return function(t) { + return 1 - n(1 - t); + }; + } + function wr(n) { + return function(t) { + return 0.5 * (0.5 > t ? n(2 * t) : 2 - n(2 - 2 * t)); + }; + } + function Sr(n) { + return n * n; + } + function kr(n) { + return n * n * n; + } + function Nr(n) { + if (0 >= n) return 0; + if (n >= 1) return 1; + var t = n * n, + e = t * n; + return 4 * (0.5 > n ? e : 3 * (n - t) + e - 0.75); + } + function Er(n) { + return function(t) { + return Math.pow(t, n); + }; + } + function Ar(n) { + return 1 - Math.cos(n * Io); + } + function Cr(n) { + return Math.pow(2, 10 * (n - 1)); + } + function zr(n) { + return 1 - Math.sqrt(1 - n * n); + } + function Lr(n, t) { + var e; + return ( + arguments.length < 2 && (t = 0.45), + arguments.length + ? (e = (t / Ho) * Math.asin(1 / n)) + : ((n = 1), (e = t / 4)), + function(r) { + return 1 + n * Math.pow(2, -10 * r) * Math.sin(((r - e) * Ho) / t); + } + ); + } + function qr(n) { + return ( + n || (n = 1.70158), + function(t) { + return t * t * ((n + 1) * t - n); + } + ); + } + function Tr(n) { + return 1 / 2.75 > n + ? 7.5625 * n * n + : 2 / 2.75 > n + ? 7.5625 * (n -= 1.5 / 2.75) * n + 0.75 + : 2.5 / 2.75 > n + ? 7.5625 * (n -= 2.25 / 2.75) * n + 0.9375 + : 7.5625 * (n -= 2.625 / 2.75) * n + 0.984375; + } + function Rr(n, t) { + (n = ao.hcl(n)), (t = ao.hcl(t)); + var e = n.h, + r = n.c, + i = n.l, + u = t.h - e, + o = t.c - r, + a = t.l - i; + return ( + isNaN(o) && ((o = 0), (r = isNaN(r) ? t.c : r)), + isNaN(u) + ? ((u = 0), (e = isNaN(e) ? t.h : e)) + : u > 180 + ? (u -= 360) + : -180 > u && (u += 360), + function(n) { + return sn(e + u * n, r + o * n, i + a * n) + ''; + } + ); + } + function Dr(n, t) { + (n = ao.hsl(n)), (t = ao.hsl(t)); + var e = n.h, + r = n.s, + i = n.l, + u = t.h - e, + o = t.s - r, + a = t.l - i; + return ( + isNaN(o) && ((o = 0), (r = isNaN(r) ? t.s : r)), + isNaN(u) + ? ((u = 0), (e = isNaN(e) ? t.h : e)) + : u > 180 + ? (u -= 360) + : -180 > u && (u += 360), + function(n) { + return cn(e + u * n, r + o * n, i + a * n) + ''; + } + ); + } + function Pr(n, t) { + (n = ao.lab(n)), (t = ao.lab(t)); + var e = n.l, + r = n.a, + i = n.b, + u = t.l - e, + o = t.a - r, + a = t.b - i; + return function(n) { + return pn(e + u * n, r + o * n, i + a * n) + ''; + }; + } + function Ur(n, t) { + return ( + (t -= n), + function(e) { + return Math.round(n + t * e); + } + ); + } + function jr(n) { + var t = [n.a, n.b], + e = [n.c, n.d], + r = Hr(t), + i = Fr(t, e), + u = Hr(Or(e, t, -i)) || 0; + t[0] * e[1] < e[0] * t[1] && + ((t[0] *= -1), (t[1] *= -1), (r *= -1), (i *= -1)), + (this.rotate = + (r ? Math.atan2(t[1], t[0]) : Math.atan2(-e[0], e[1])) * Zo), + (this.translate = [n.e, n.f]), + (this.scale = [r, u]), + (this.skew = u ? Math.atan2(i, u) * Zo : 0); + } + function Fr(n, t) { + return n[0] * t[0] + n[1] * t[1]; + } + function Hr(n) { + var t = Math.sqrt(Fr(n, n)); + return t && ((n[0] /= t), (n[1] /= t)), t; + } + function Or(n, t, e) { + return (n[0] += e * t[0]), (n[1] += e * t[1]), n; + } + function Ir(n) { + return n.length ? n.pop() + ',' : ''; + } + function Yr(n, t, e, r) { + if (n[0] !== t[0] || n[1] !== t[1]) { + var i = e.push('translate(', null, ',', null, ')'); + r.push({ i: i - 4, x: yr(n[0], t[0]) }, { i: i - 2, x: yr(n[1], t[1]) }); + } else (t[0] || t[1]) && e.push('translate(' + t + ')'); + } + function Zr(n, t, e, r) { + n !== t + ? (n - t > 180 ? (t += 360) : t - n > 180 && (n += 360), + r.push({ i: e.push(Ir(e) + 'rotate(', null, ')') - 2, x: yr(n, t) })) + : t && e.push(Ir(e) + 'rotate(' + t + ')'); + } + function Vr(n, t, e, r) { + n !== t + ? r.push({ i: e.push(Ir(e) + 'skewX(', null, ')') - 2, x: yr(n, t) }) + : t && e.push(Ir(e) + 'skewX(' + t + ')'); + } + function Xr(n, t, e, r) { + if (n[0] !== t[0] || n[1] !== t[1]) { + var i = e.push(Ir(e) + 'scale(', null, ',', null, ')'); + r.push({ i: i - 4, x: yr(n[0], t[0]) }, { i: i - 2, x: yr(n[1], t[1]) }); + } else (1 === t[0] && 1 === t[1]) || e.push(Ir(e) + 'scale(' + t + ')'); + } + function $r(n, t) { + var e = [], + r = []; + return ( + (n = ao.transform(n)), + (t = ao.transform(t)), + Yr(n.translate, t.translate, e, r), + Zr(n.rotate, t.rotate, e, r), + Vr(n.skew, t.skew, e, r), + Xr(n.scale, t.scale, e, r), + (n = t = null), + function(n) { + for (var t, i = -1, u = r.length; ++i < u; ) e[(t = r[i]).i] = t.x(n); + return e.join(''); + } + ); + } + function Br(n, t) { + return ( + (t = (t -= n = +n) || 1 / t), + function(e) { + return (e - n) / t; + } + ); + } + function Wr(n, t) { + return ( + (t = (t -= n = +n) || 1 / t), + function(e) { + return Math.max(0, Math.min(1, (e - n) / t)); + } + ); + } + function Jr(n) { + for (var t = n.source, e = n.target, r = Kr(t, e), i = [t]; t !== r; ) + (t = t.parent), i.push(t); + for (var u = i.length; e !== r; ) i.splice(u, 0, e), (e = e.parent); + return i; + } + function Gr(n) { + for (var t = [], e = n.parent; null != e; ) + t.push(n), (n = e), (e = e.parent); + return t.push(n), t; + } + function Kr(n, t) { + if (n === t) return n; + for ( + var e = Gr(n), r = Gr(t), i = e.pop(), u = r.pop(), o = null; + i === u; + + ) + (o = i), (i = e.pop()), (u = r.pop()); + return o; + } + function Qr(n) { + n.fixed |= 2; + } + function ni(n) { + n.fixed &= -7; + } + function ti(n) { + (n.fixed |= 4), (n.px = n.x), (n.py = n.y); + } + function ei(n) { + n.fixed &= -5; + } + function ri(n, t, e) { + var r = 0, + i = 0; + if (((n.charge = 0), !n.leaf)) + for (var u, o = n.nodes, a = o.length, l = -1; ++l < a; ) + (u = o[l]), + null != u && + (ri(u, t, e), + (n.charge += u.charge), + (r += u.charge * u.cx), + (i += u.charge * u.cy)); + if (n.point) { + n.leaf || + ((n.point.x += Math.random() - 0.5), + (n.point.y += Math.random() - 0.5)); + var c = t * e[n.point.index]; + (n.charge += n.pointCharge = c), + (r += c * n.point.x), + (i += c * n.point.y); + } + (n.cx = r / n.charge), (n.cy = i / n.charge); + } + function ii(n, t) { + return ( + ao.rebind(n, t, 'sort', 'children', 'value'), + (n.nodes = n), + (n.links = fi), + n + ); + } + function ui(n, t) { + for (var e = [n]; null != (n = e.pop()); ) + if ((t(n), (i = n.children) && (r = i.length))) + for (var r, i; --r >= 0; ) e.push(i[r]); + } + function oi(n, t) { + for (var e = [n], r = []; null != (n = e.pop()); ) + if ((r.push(n), (u = n.children) && (i = u.length))) + for (var i, u, o = -1; ++o < i; ) e.push(u[o]); + for (; null != (n = r.pop()); ) t(n); + } + function ai(n) { + return n.children; + } + function li(n) { + return n.value; + } + function ci(n, t) { + return t.value - n.value; + } + function fi(n) { + return ao.merge( + n.map(function(n) { + return (n.children || []).map(function(t) { + return { source: n, target: t }; + }); + }) + ); + } + function si(n) { + return n.x; + } + function hi(n) { + return n.y; + } + function pi(n, t, e) { + (n.y0 = t), (n.y = e); + } + function gi(n) { + return ao.range(n.length); + } + function vi(n) { + for (var t = -1, e = n[0].length, r = []; ++t < e; ) r[t] = 0; + return r; + } + function di(n) { + for (var t, e = 1, r = 0, i = n[0][1], u = n.length; u > e; ++e) + (t = n[e][1]) > i && ((r = e), (i = t)); + return r; + } + function yi(n) { + return n.reduce(mi, 0); + } + function mi(n, t) { + return n + t[1]; + } + function Mi(n, t) { + return xi(n, Math.ceil(Math.log(t.length) / Math.LN2 + 1)); + } + function xi(n, t) { + for (var e = -1, r = +n[0], i = (n[1] - r) / t, u = []; ++e <= t; ) + u[e] = i * e + r; + return u; + } + function bi(n) { + return [ao.min(n), ao.max(n)]; + } + function _i(n, t) { + return n.value - t.value; + } + function wi(n, t) { + var e = n._pack_next; + (n._pack_next = t), + (t._pack_prev = n), + (t._pack_next = e), + (e._pack_prev = t); + } + function Si(n, t) { + (n._pack_next = t), (t._pack_prev = n); + } + function ki(n, t) { + var e = t.x - n.x, + r = t.y - n.y, + i = n.r + t.r; + return 0.999 * i * i > e * e + r * r; + } + function Ni(n) { + function t(n) { + (f = Math.min(n.x - n.r, f)), + (s = Math.max(n.x + n.r, s)), + (h = Math.min(n.y - n.r, h)), + (p = Math.max(n.y + n.r, p)); + } + if ((e = n.children) && (c = e.length)) { + var e, + r, + i, + u, + o, + a, + l, + c, + f = 1 / 0, + s = -(1 / 0), + h = 1 / 0, + p = -(1 / 0); + if ( + (e.forEach(Ei), + (r = e[0]), + (r.x = -r.r), + (r.y = 0), + t(r), + c > 1 && ((i = e[1]), (i.x = i.r), (i.y = 0), t(i), c > 2)) + ) + for ( + u = e[2], + zi(r, i, u), + t(u), + wi(r, u), + r._pack_prev = u, + wi(u, i), + i = r._pack_next, + o = 3; + c > o; + o++ + ) { + zi(r, i, (u = e[o])); + var g = 0, + v = 1, + d = 1; + for (a = i._pack_next; a !== i; a = a._pack_next, v++) + if (ki(a, u)) { + g = 1; + break; + } + if (1 == g) + for ( + l = r._pack_prev; + l !== a._pack_prev && !ki(l, u); + l = l._pack_prev, d++ + ); + g + ? (d > v || (v == d && i.r < r.r) ? Si(r, (i = a)) : Si((r = l), i), + o--) + : (wi(r, u), (i = u), t(u)); + } + var y = (f + s) / 2, + m = (h + p) / 2, + M = 0; + for (o = 0; c > o; o++) + (u = e[o]), + (u.x -= y), + (u.y -= m), + (M = Math.max(M, u.r + Math.sqrt(u.x * u.x + u.y * u.y))); + (n.r = M), e.forEach(Ai); + } + } + function Ei(n) { + n._pack_next = n._pack_prev = n; + } + function Ai(n) { + delete n._pack_next, delete n._pack_prev; + } + function Ci(n, t, e, r) { + var i = n.children; + if (((n.x = t += r * n.x), (n.y = e += r * n.y), (n.r *= r), i)) + for (var u = -1, o = i.length; ++u < o; ) Ci(i[u], t, e, r); + } + function zi(n, t, e) { + var r = n.r + e.r, + i = t.x - n.x, + u = t.y - n.y; + if (r && (i || u)) { + var o = t.r + e.r, + a = i * i + u * u; + (o *= o), (r *= r); + var l = 0.5 + (r - o) / (2 * a), + c = + Math.sqrt(Math.max(0, 2 * o * (r + a) - (r -= a) * r - o * o)) / + (2 * a); + (e.x = n.x + l * i + c * u), (e.y = n.y + l * u - c * i); + } else (e.x = n.x + r), (e.y = n.y); + } + function Li(n, t) { + return n.parent == t.parent ? 1 : 2; + } + function qi(n) { + var t = n.children; + return t.length ? t[0] : n.t; + } + function Ti(n) { + var t, + e = n.children; + return (t = e.length) ? e[t - 1] : n.t; + } + function Ri(n, t, e) { + var r = e / (t.i - n.i); + (t.c -= r), (t.s += e), (n.c += r), (t.z += e), (t.m += e); + } + function Di(n) { + for (var t, e = 0, r = 0, i = n.children, u = i.length; --u >= 0; ) + (t = i[u]), (t.z += e), (t.m += e), (e += t.s + (r += t.c)); + } + function Pi(n, t, e) { + return n.a.parent === t.parent ? n.a : e; + } + function Ui(n) { + return ( + 1 + + ao.max(n, function(n) { + return n.y; + }) + ); + } + function ji(n) { + return ( + n.reduce(function(n, t) { + return n + t.x; + }, 0) / n.length + ); + } + function Fi(n) { + var t = n.children; + return t && t.length ? Fi(t[0]) : n; + } + function Hi(n) { + var t, + e = n.children; + return e && (t = e.length) ? Hi(e[t - 1]) : n; + } + function Oi(n) { + return { x: n.x, y: n.y, dx: n.dx, dy: n.dy }; + } + function Ii(n, t) { + var e = n.x + t[3], + r = n.y + t[0], + i = n.dx - t[1] - t[3], + u = n.dy - t[0] - t[2]; + return ( + 0 > i && ((e += i / 2), (i = 0)), + 0 > u && ((r += u / 2), (u = 0)), + { x: e, y: r, dx: i, dy: u } + ); + } + function Yi(n) { + var t = n[0], + e = n[n.length - 1]; + return e > t ? [t, e] : [e, t]; + } + function Zi(n) { + return n.rangeExtent ? n.rangeExtent() : Yi(n.range()); + } + function Vi(n, t, e, r) { + var i = e(n[0], n[1]), + u = r(t[0], t[1]); + return function(n) { + return u(i(n)); + }; + } + function Xi(n, t) { + var e, + r = 0, + i = n.length - 1, + u = n[r], + o = n[i]; + return ( + u > o && ((e = r), (r = i), (i = e), (e = u), (u = o), (o = e)), + (n[r] = t.floor(u)), + (n[i] = t.ceil(o)), + n + ); + } + function $i(n) { + return n + ? { + floor: function(t) { + return Math.floor(t / n) * n; + }, + ceil: function(t) { + return Math.ceil(t / n) * n; + } + } + : Sl; + } + function Bi(n, t, e, r) { + var i = [], + u = [], + o = 0, + a = Math.min(n.length, t.length) - 1; + for ( + n[a] < n[0] && ((n = n.slice().reverse()), (t = t.slice().reverse())); + ++o <= a; + + ) + i.push(e(n[o - 1], n[o])), u.push(r(t[o - 1], t[o])); + return function(t) { + var e = ao.bisect(n, t, 1, a) - 1; + return u[e](i[e](t)); + }; + } + function Wi(n, t, e, r) { + function i() { + var i = Math.min(n.length, t.length) > 2 ? Bi : Vi, + l = r ? Wr : Br; + return (o = i(n, t, l, e)), (a = i(t, n, l, Mr)), u; + } + function u(n) { + return o(n); + } + var o, a; + return ( + (u.invert = function(n) { + return a(n); + }), + (u.domain = function(t) { + return arguments.length ? ((n = t.map(Number)), i()) : n; + }), + (u.range = function(n) { + return arguments.length ? ((t = n), i()) : t; + }), + (u.rangeRound = function(n) { + return u.range(n).interpolate(Ur); + }), + (u.clamp = function(n) { + return arguments.length ? ((r = n), i()) : r; + }), + (u.interpolate = function(n) { + return arguments.length ? ((e = n), i()) : e; + }), + (u.ticks = function(t) { + return Qi(n, t); + }), + (u.tickFormat = function(t, e) { + return nu(n, t, e); + }), + (u.nice = function(t) { + return Gi(n, t), i(); + }), + (u.copy = function() { + return Wi(n, t, e, r); + }), + i() + ); + } + function Ji(n, t) { + return ao.rebind(n, t, 'range', 'rangeRound', 'interpolate', 'clamp'); + } + function Gi(n, t) { + return Xi(n, $i(Ki(n, t)[2])), Xi(n, $i(Ki(n, t)[2])), n; + } + function Ki(n, t) { + null == t && (t = 10); + var e = Yi(n), + r = e[1] - e[0], + i = Math.pow(10, Math.floor(Math.log(r / t) / Math.LN10)), + u = (t / r) * i; + return ( + 0.15 >= u ? (i *= 10) : 0.35 >= u ? (i *= 5) : 0.75 >= u && (i *= 2), + (e[0] = Math.ceil(e[0] / i) * i), + (e[1] = Math.floor(e[1] / i) * i + 0.5 * i), + (e[2] = i), + e + ); + } + function Qi(n, t) { + return ao.range.apply(ao, Ki(n, t)); + } + function nu(n, t, e) { + var r = Ki(n, t); + if (e) { + var i = ha.exec(e); + if ((i.shift(), 's' === i[8])) { + var u = ao.formatPrefix(Math.max(xo(r[0]), xo(r[1]))); + return ( + i[7] || (i[7] = '.' + tu(u.scale(r[2]))), + (i[8] = 'f'), + (e = ao.format(i.join(''))), + function(n) { + return e(u.scale(n)) + u.symbol; + } + ); + } + i[7] || (i[7] = '.' + eu(i[8], r)), (e = i.join('')); + } else e = ',.' + tu(r[2]) + 'f'; + return ao.format(e); + } + function tu(n) { + return -Math.floor(Math.log(n) / Math.LN10 + 0.01); + } + function eu(n, t) { + var e = tu(t[2]); + return n in kl + ? Math.abs(e - tu(Math.max(xo(t[0]), xo(t[1])))) + +('e' !== n) + : e - 2 * ('%' === n); + } + function ru(n, t, e, r) { + function i(n) { + return ( + (e ? Math.log(0 > n ? 0 : n) : -Math.log(n > 0 ? 0 : -n)) / Math.log(t) + ); + } + function u(n) { + return e ? Math.pow(t, n) : -Math.pow(t, -n); + } + function o(t) { + return n(i(t)); + } + return ( + (o.invert = function(t) { + return u(n.invert(t)); + }), + (o.domain = function(t) { + return arguments.length + ? ((e = t[0] >= 0), n.domain((r = t.map(Number)).map(i)), o) + : r; + }), + (o.base = function(e) { + return arguments.length ? ((t = +e), n.domain(r.map(i)), o) : t; + }), + (o.nice = function() { + var t = Xi(r.map(i), e ? Math : El); + return n.domain(t), (r = t.map(u)), o; + }), + (o.ticks = function() { + var n = Yi(r), + o = [], + a = n[0], + l = n[1], + c = Math.floor(i(a)), + f = Math.ceil(i(l)), + s = t % 1 ? 2 : t; + if (isFinite(f - c)) { + if (e) { + for (; f > c; c++) for (var h = 1; s > h; h++) o.push(u(c) * h); + o.push(u(c)); + } else + for (o.push(u(c)); c++ < f; ) + for (var h = s - 1; h > 0; h--) o.push(u(c) * h); + for (c = 0; o[c] < a; c++); + for (f = o.length; o[f - 1] > l; f--); + o = o.slice(c, f); + } + return o; + }), + (o.tickFormat = function(n, e) { + if (!arguments.length) return Nl; + arguments.length < 2 + ? (e = Nl) + : 'function' != typeof e && (e = ao.format(e)); + var r = Math.max(1, (t * n) / o.ticks().length); + return function(n) { + var o = n / u(Math.round(i(n))); + return t - 0.5 > o * t && (o *= t), r >= o ? e(n) : ''; + }; + }), + (o.copy = function() { + return ru(n.copy(), t, e, r); + }), + Ji(o, n) + ); + } + function iu(n, t, e) { + function r(t) { + return n(i(t)); + } + var i = uu(t), + u = uu(1 / t); + return ( + (r.invert = function(t) { + return u(n.invert(t)); + }), + (r.domain = function(t) { + return arguments.length ? (n.domain((e = t.map(Number)).map(i)), r) : e; + }), + (r.ticks = function(n) { + return Qi(e, n); + }), + (r.tickFormat = function(n, t) { + return nu(e, n, t); + }), + (r.nice = function(n) { + return r.domain(Gi(e, n)); + }), + (r.exponent = function(o) { + return arguments.length + ? ((i = uu((t = o))), (u = uu(1 / t)), n.domain(e.map(i)), r) + : t; + }), + (r.copy = function() { + return iu(n.copy(), t, e); + }), + Ji(r, n) + ); + } + function uu(n) { + return function(t) { + return 0 > t ? -Math.pow(-t, n) : Math.pow(t, n); + }; + } + function ou(n, t) { + function e(e) { + return u[ + ((i.get(e) || ('range' === t.t ? i.set(e, n.push(e)) : NaN)) - 1) % + u.length + ]; + } + function r(t, e) { + return ao.range(n.length).map(function(n) { + return t + e * n; + }); + } + var i, u, o; + return ( + (e.domain = function(r) { + if (!arguments.length) return n; + (n = []), (i = new c()); + for (var u, o = -1, a = r.length; ++o < a; ) + i.has((u = r[o])) || i.set(u, n.push(u)); + return e[t.t].apply(e, t.a); + }), + (e.range = function(n) { + return arguments.length + ? ((u = n), (o = 0), (t = { t: 'range', a: arguments }), e) + : u; + }), + (e.rangePoints = function(i, a) { + arguments.length < 2 && (a = 0); + var l = i[0], + c = i[1], + f = + n.length < 2 + ? ((l = (l + c) / 2), 0) + : (c - l) / (n.length - 1 + a); + return ( + (u = r(l + (f * a) / 2, f)), + (o = 0), + (t = { t: 'rangePoints', a: arguments }), + e + ); + }), + (e.rangeRoundPoints = function(i, a) { + arguments.length < 2 && (a = 0); + var l = i[0], + c = i[1], + f = + n.length < 2 + ? ((l = c = Math.round((l + c) / 2)), 0) + : ((c - l) / (n.length - 1 + a)) | 0; + return ( + (u = r( + l + Math.round((f * a) / 2 + (c - l - (n.length - 1 + a) * f) / 2), + f + )), + (o = 0), + (t = { t: 'rangeRoundPoints', a: arguments }), + e + ); + }), + (e.rangeBands = function(i, a, l) { + arguments.length < 2 && (a = 0), arguments.length < 3 && (l = a); + var c = i[1] < i[0], + f = i[c - 0], + s = i[1 - c], + h = (s - f) / (n.length - a + 2 * l); + return ( + (u = r(f + h * l, h)), + c && u.reverse(), + (o = h * (1 - a)), + (t = { t: 'rangeBands', a: arguments }), + e + ); + }), + (e.rangeRoundBands = function(i, a, l) { + arguments.length < 2 && (a = 0), arguments.length < 3 && (l = a); + var c = i[1] < i[0], + f = i[c - 0], + s = i[1 - c], + h = Math.floor((s - f) / (n.length - a + 2 * l)); + return ( + (u = r(f + Math.round((s - f - (n.length - a) * h) / 2), h)), + c && u.reverse(), + (o = Math.round(h * (1 - a))), + (t = { t: 'rangeRoundBands', a: arguments }), + e + ); + }), + (e.rangeBand = function() { + return o; + }), + (e.rangeExtent = function() { + return Yi(t.a[0]); + }), + (e.copy = function() { + return ou(n, t); + }), + e.domain(n) + ); + } + function au(n, t) { + function u() { + var e = 0, + r = t.length; + for (a = []; ++e < r; ) a[e - 1] = ao.quantile(n, e / r); + return o; + } + function o(n) { + return isNaN((n = +n)) ? void 0 : t[ao.bisect(a, n)]; + } + var a; + return ( + (o.domain = function(t) { + return arguments.length + ? ((n = t + .map(r) + .filter(i) + .sort(e)), + u()) + : n; + }), + (o.range = function(n) { + return arguments.length ? ((t = n), u()) : t; + }), + (o.quantiles = function() { + return a; + }), + (o.invertExtent = function(e) { + return ( + (e = t.indexOf(e)), + 0 > e + ? [NaN, NaN] + : [e > 0 ? a[e - 1] : n[0], e < a.length ? a[e] : n[n.length - 1]] + ); + }), + (o.copy = function() { + return au(n, t); + }), + u() + ); + } + function lu(n, t, e) { + function r(t) { + return e[Math.max(0, Math.min(o, Math.floor(u * (t - n))))]; + } + function i() { + return (u = e.length / (t - n)), (o = e.length - 1), r; + } + var u, o; + return ( + (r.domain = function(e) { + return arguments.length + ? ((n = +e[0]), (t = +e[e.length - 1]), i()) + : [n, t]; + }), + (r.range = function(n) { + return arguments.length ? ((e = n), i()) : e; + }), + (r.invertExtent = function(t) { + return ( + (t = e.indexOf(t)), (t = 0 > t ? NaN : t / u + n), [t, t + 1 / u] + ); + }), + (r.copy = function() { + return lu(n, t, e); + }), + i() + ); + } + function cu(n, t) { + function e(e) { + return e >= e ? t[ao.bisect(n, e)] : void 0; + } + return ( + (e.domain = function(t) { + return arguments.length ? ((n = t), e) : n; + }), + (e.range = function(n) { + return arguments.length ? ((t = n), e) : t; + }), + (e.invertExtent = function(e) { + return (e = t.indexOf(e)), [n[e - 1], n[e]]; + }), + (e.copy = function() { + return cu(n, t); + }), + e + ); + } + function fu(n) { + function t(n) { + return +n; + } + return ( + (t.invert = t), + (t.domain = t.range = function(e) { + return arguments.length ? ((n = e.map(t)), t) : n; + }), + (t.ticks = function(t) { + return Qi(n, t); + }), + (t.tickFormat = function(t, e) { + return nu(n, t, e); + }), + (t.copy = function() { + return fu(n); + }), + t + ); + } + function su() { + return 0; + } + function hu(n) { + return n.innerRadius; + } + function pu(n) { + return n.outerRadius; + } + function gu(n) { + return n.startAngle; + } + function vu(n) { + return n.endAngle; + } + function du(n) { + return n && n.padAngle; + } + function yu(n, t, e, r) { + return (n - e) * t - (t - r) * n > 0 ? 0 : 1; + } + function mu(n, t, e, r, i) { + var u = n[0] - t[0], + o = n[1] - t[1], + a = (i ? r : -r) / Math.sqrt(u * u + o * o), + l = a * o, + c = -a * u, + f = n[0] + l, + s = n[1] + c, + h = t[0] + l, + p = t[1] + c, + g = (f + h) / 2, + v = (s + p) / 2, + d = h - f, + y = p - s, + m = d * d + y * y, + M = e - r, + x = f * p - h * s, + b = (0 > y ? -1 : 1) * Math.sqrt(Math.max(0, M * M * m - x * x)), + _ = (x * y - d * b) / m, + w = (-x * d - y * b) / m, + S = (x * y + d * b) / m, + k = (-x * d + y * b) / m, + N = _ - g, + E = w - v, + A = S - g, + C = k - v; + return ( + N * N + E * E > A * A + C * C && ((_ = S), (w = k)), + [[_ - l, w - c], [(_ * e) / M, (w * e) / M]] + ); + } + function Mu(n) { + function t(t) { + function o() { + c.push('M', u(n(f), a)); + } + for ( + var l, c = [], f = [], s = -1, h = t.length, p = En(e), g = En(r); + ++s < h; + + ) + i.call(this, (l = t[s]), s) + ? f.push([+p.call(this, l, s), +g.call(this, l, s)]) + : f.length && (o(), (f = [])); + return f.length && o(), c.length ? c.join('') : null; + } + var e = Ce, + r = ze, + i = zt, + u = xu, + o = u.key, + a = 0.7; + return ( + (t.x = function(n) { + return arguments.length ? ((e = n), t) : e; + }), + (t.y = function(n) { + return arguments.length ? ((r = n), t) : r; + }), + (t.defined = function(n) { + return arguments.length ? ((i = n), t) : i; + }), + (t.interpolate = function(n) { + return arguments.length + ? ((o = 'function' == typeof n ? (u = n) : (u = Tl.get(n) || xu).key), + t) + : o; + }), + (t.tension = function(n) { + return arguments.length ? ((a = n), t) : a; + }), + t + ); + } + function xu(n) { + return n.length > 1 ? n.join('L') : n + 'Z'; + } + function bu(n) { + return n.join('L') + 'Z'; + } + function _u(n) { + for (var t = 0, e = n.length, r = n[0], i = [r[0], ',', r[1]]; ++t < e; ) + i.push('H', (r[0] + (r = n[t])[0]) / 2, 'V', r[1]); + return e > 1 && i.push('H', r[0]), i.join(''); + } + function wu(n) { + for (var t = 0, e = n.length, r = n[0], i = [r[0], ',', r[1]]; ++t < e; ) + i.push('V', (r = n[t])[1], 'H', r[0]); + return i.join(''); + } + function Su(n) { + for (var t = 0, e = n.length, r = n[0], i = [r[0], ',', r[1]]; ++t < e; ) + i.push('H', (r = n[t])[0], 'V', r[1]); + return i.join(''); + } + function ku(n, t) { + return n.length < 4 ? xu(n) : n[1] + Au(n.slice(1, -1), Cu(n, t)); + } + function Nu(n, t) { + return n.length < 3 + ? bu(n) + : n[0] + + Au((n.push(n[0]), n), Cu([n[n.length - 2]].concat(n, [n[1]]), t)); + } + function Eu(n, t) { + return n.length < 3 ? xu(n) : n[0] + Au(n, Cu(n, t)); + } + function Au(n, t) { + if (t.length < 1 || (n.length != t.length && n.length != t.length + 2)) + return xu(n); + var e = n.length != t.length, + r = '', + i = n[0], + u = n[1], + o = t[0], + a = o, + l = 1; + if ( + (e && + ((r += + 'Q' + + (u[0] - (2 * o[0]) / 3) + + ',' + + (u[1] - (2 * o[1]) / 3) + + ',' + + u[0] + + ',' + + u[1]), + (i = n[1]), + (l = 2)), + t.length > 1) + ) { + (a = t[1]), + (u = n[l]), + l++, + (r += + 'C' + + (i[0] + o[0]) + + ',' + + (i[1] + o[1]) + + ',' + + (u[0] - a[0]) + + ',' + + (u[1] - a[1]) + + ',' + + u[0] + + ',' + + u[1]); + for (var c = 2; c < t.length; c++, l++) + (u = n[l]), + (a = t[c]), + (r += + 'S' + + (u[0] - a[0]) + + ',' + + (u[1] - a[1]) + + ',' + + u[0] + + ',' + + u[1]); + } + if (e) { + var f = n[l]; + r += + 'Q' + + (u[0] + (2 * a[0]) / 3) + + ',' + + (u[1] + (2 * a[1]) / 3) + + ',' + + f[0] + + ',' + + f[1]; + } + return r; + } + function Cu(n, t) { + for ( + var e, r = [], i = (1 - t) / 2, u = n[0], o = n[1], a = 1, l = n.length; + ++a < l; + + ) + (e = u), + (u = o), + (o = n[a]), + r.push([i * (o[0] - e[0]), i * (o[1] - e[1])]); + return r; + } + function zu(n) { + if (n.length < 3) return xu(n); + var t = 1, + e = n.length, + r = n[0], + i = r[0], + u = r[1], + o = [i, i, i, (r = n[1])[0]], + a = [u, u, u, r[1]], + l = [i, ',', u, 'L', Ru(Pl, o), ',', Ru(Pl, a)]; + for (n.push(n[e - 1]); ++t <= e; ) + (r = n[t]), o.shift(), o.push(r[0]), a.shift(), a.push(r[1]), Du(l, o, a); + return n.pop(), l.push('L', r), l.join(''); + } + function Lu(n) { + if (n.length < 4) return xu(n); + for (var t, e = [], r = -1, i = n.length, u = [0], o = [0]; ++r < 3; ) + (t = n[r]), u.push(t[0]), o.push(t[1]); + for (e.push(Ru(Pl, u) + ',' + Ru(Pl, o)), --r; ++r < i; ) + (t = n[r]), u.shift(), u.push(t[0]), o.shift(), o.push(t[1]), Du(e, u, o); + return e.join(''); + } + function qu(n) { + for (var t, e, r = -1, i = n.length, u = i + 4, o = [], a = []; ++r < 4; ) + (e = n[r % i]), o.push(e[0]), a.push(e[1]); + for (t = [Ru(Pl, o), ',', Ru(Pl, a)], --r; ++r < u; ) + (e = n[r % i]), + o.shift(), + o.push(e[0]), + a.shift(), + a.push(e[1]), + Du(t, o, a); + return t.join(''); + } + function Tu(n, t) { + var e = n.length - 1; + if (e) + for ( + var r, + i, + u = n[0][0], + o = n[0][1], + a = n[e][0] - u, + l = n[e][1] - o, + c = -1; + ++c <= e; + + ) + (r = n[c]), + (i = c / e), + (r[0] = t * r[0] + (1 - t) * (u + i * a)), + (r[1] = t * r[1] + (1 - t) * (o + i * l)); + return zu(n); + } + function Ru(n, t) { + return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] + n[3] * t[3]; + } + function Du(n, t, e) { + n.push( + 'C', + Ru(Rl, t), + ',', + Ru(Rl, e), + ',', + Ru(Dl, t), + ',', + Ru(Dl, e), + ',', + Ru(Pl, t), + ',', + Ru(Pl, e) + ); + } + function Pu(n, t) { + return (t[1] - n[1]) / (t[0] - n[0]); + } + function Uu(n) { + for ( + var t = 0, + e = n.length - 1, + r = [], + i = n[0], + u = n[1], + o = (r[0] = Pu(i, u)); + ++t < e; + + ) + r[t] = (o + (o = Pu((i = u), (u = n[t + 1])))) / 2; + return (r[t] = o), r; + } + function ju(n) { + for (var t, e, r, i, u = [], o = Uu(n), a = -1, l = n.length - 1; ++a < l; ) + (t = Pu(n[a], n[a + 1])), + xo(t) < Uo + ? (o[a] = o[a + 1] = 0) + : ((e = o[a] / t), + (r = o[a + 1] / t), + (i = e * e + r * r), + i > 9 && + ((i = (3 * t) / Math.sqrt(i)), + (o[a] = i * e), + (o[a + 1] = i * r))); + for (a = -1; ++a <= l; ) + (i = + (n[Math.min(l, a + 1)][0] - n[Math.max(0, a - 1)][0]) / + (6 * (1 + o[a] * o[a]))), + u.push([i || 0, o[a] * i || 0]); + return u; + } + function Fu(n) { + return n.length < 3 ? xu(n) : n[0] + Au(n, ju(n)); + } + function Hu(n) { + for (var t, e, r, i = -1, u = n.length; ++i < u; ) + (t = n[i]), + (e = t[0]), + (r = t[1] - Io), + (t[0] = e * Math.cos(r)), + (t[1] = e * Math.sin(r)); + return n; + } + function Ou(n) { + function t(t) { + function l() { + v.push('M', a(n(y), s), f, c(n(d.reverse()), s), 'Z'); + } + for ( + var h, + p, + g, + v = [], + d = [], + y = [], + m = -1, + M = t.length, + x = En(e), + b = En(i), + _ = + e === r + ? function() { + return p; + } + : En(r), + w = + i === u + ? function() { + return g; + } + : En(u); + ++m < M; + + ) + o.call(this, (h = t[m]), m) + ? (d.push([(p = +x.call(this, h, m)), (g = +b.call(this, h, m))]), + y.push([+_.call(this, h, m), +w.call(this, h, m)])) + : d.length && (l(), (d = []), (y = [])); + return d.length && l(), v.length ? v.join('') : null; + } + var e = Ce, + r = Ce, + i = 0, + u = ze, + o = zt, + a = xu, + l = a.key, + c = a, + f = 'L', + s = 0.7; + return ( + (t.x = function(n) { + return arguments.length ? ((e = r = n), t) : r; + }), + (t.x0 = function(n) { + return arguments.length ? ((e = n), t) : e; + }), + (t.x1 = function(n) { + return arguments.length ? ((r = n), t) : r; + }), + (t.y = function(n) { + return arguments.length ? ((i = u = n), t) : u; + }), + (t.y0 = function(n) { + return arguments.length ? ((i = n), t) : i; + }), + (t.y1 = function(n) { + return arguments.length ? ((u = n), t) : u; + }), + (t.defined = function(n) { + return arguments.length ? ((o = n), t) : o; + }), + (t.interpolate = function(n) { + return arguments.length + ? ((l = 'function' == typeof n ? (a = n) : (a = Tl.get(n) || xu).key), + (c = a.reverse || a), + (f = a.closed ? 'M' : 'L'), + t) + : l; + }), + (t.tension = function(n) { + return arguments.length ? ((s = n), t) : s; + }), + t + ); + } + function Iu(n) { + return n.radius; + } + function Yu(n) { + return [n.x, n.y]; + } + function Zu(n) { + return function() { + var t = n.apply(this, arguments), + e = t[0], + r = t[1] - Io; + return [e * Math.cos(r), e * Math.sin(r)]; + }; + } + function Vu() { + return 64; + } + function Xu() { + return 'circle'; + } + function $u(n) { + var t = Math.sqrt(n / Fo); + return ( + 'M0,' + + t + + 'A' + + t + + ',' + + t + + ' 0 1,1 0,' + + -t + + 'A' + + t + + ',' + + t + + ' 0 1,1 0,' + + t + + 'Z' + ); + } + function Bu(n) { + return function() { + var t, e, r; + (t = this[n]) && + (r = t[(e = t.active)]) && + ((r.timer.c = null), + (r.timer.t = NaN), + --t.count ? delete t[e] : delete this[n], + (t.active += 0.5), + r.event && r.event.interrupt.call(this, this.__data__, r.index)); + }; + } + function Wu(n, t, e) { + return ko(n, Yl), (n.namespace = t), (n.id = e), n; + } + function Ju(n, t, e, r) { + var i = n.id, + u = n.namespace; + return Y( + n, + 'function' == typeof e + ? function(n, o, a) { + n[u][i].tween.set(t, r(e.call(n, n.__data__, o, a))); + } + : ((e = r(e)), + function(n) { + n[u][i].tween.set(t, e); + }) + ); + } + function Gu(n) { + return ( + null == n && (n = ''), + function() { + this.textContent = n; + } + ); + } + function Ku(n) { + return null == n ? '__transition__' : '__transition_' + n + '__'; + } + function Qu(n, t, e, r, i) { + function u(n) { + var t = v.delay; + return (f.t = t + l), n >= t ? o(n - t) : void (f.c = o); + } + function o(e) { + var i = g.active, + u = g[i]; + u && + ((u.timer.c = null), + (u.timer.t = NaN), + --g.count, + delete g[i], + u.event && u.event.interrupt.call(n, n.__data__, u.index)); + for (var o in g) + if (r > +o) { + var c = g[o]; + (c.timer.c = null), (c.timer.t = NaN), --g.count, delete g[o]; + } + (f.c = a), + qn( + function() { + return f.c && a(e || 1) && ((f.c = null), (f.t = NaN)), 1; + }, + 0, + l + ), + (g.active = r), + v.event && v.event.start.call(n, n.__data__, t), + (p = []), + v.tween.forEach(function(e, r) { + (r = r.call(n, n.__data__, t)) && p.push(r); + }), + (h = v.ease), + (s = v.duration); + } + function a(i) { + for (var u = i / s, o = h(u), a = p.length; a > 0; ) p[--a].call(n, o); + return u >= 1 + ? (v.event && v.event.end.call(n, n.__data__, t), + --g.count ? delete g[r] : delete n[e], + 1) + : void 0; + } + var l, + f, + s, + h, + p, + g = n[e] || (n[e] = { active: 0, count: 0 }), + v = g[r]; + v || + ((l = i.time), + (f = qn(u, 0, l)), + (v = g[r] = { + tween: new c(), + time: l, + timer: f, + delay: i.delay, + duration: i.duration, + ease: i.ease, + index: t + }), + (i = null), + ++g.count); + } + function no(n, t, e) { + n.attr('transform', function(n) { + var r = t(n); + return 'translate(' + (isFinite(r) ? r : e(n)) + ',0)'; + }); + } + function to(n, t, e) { + n.attr('transform', function(n) { + var r = t(n); + return 'translate(0,' + (isFinite(r) ? r : e(n)) + ')'; + }); + } + function eo(n) { + return n.toISOString(); + } + function ro(n, t, e) { + function r(t) { + return n(t); + } + function i(n, e) { + var r = n[1] - n[0], + i = r / e, + u = ao.bisect(Kl, i); + return u == Kl.length + ? [ + t.year, + Ki( + n.map(function(n) { + return n / 31536e6; + }), + e + )[2] + ] + : u + ? t[i / Kl[u - 1] < Kl[u] / i ? u - 1 : u] + : [tc, Ki(n, e)[2]]; + } + return ( + (r.invert = function(t) { + return io(n.invert(t)); + }), + (r.domain = function(t) { + return arguments.length ? (n.domain(t), r) : n.domain().map(io); + }), + (r.nice = function(n, t) { + function e(e) { + return !isNaN(e) && !n.range(e, io(+e + 1), t).length; + } + var u = r.domain(), + o = Yi(u), + a = null == n ? i(o, 10) : 'number' == typeof n && i(o, n); + return ( + a && ((n = a[0]), (t = a[1])), + r.domain( + Xi( + u, + t > 1 + ? { + floor: function(t) { + for (; e((t = n.floor(t))); ) t = io(t - 1); + return t; + }, + ceil: function(t) { + for (; e((t = n.ceil(t))); ) t = io(+t + 1); + return t; + } + } + : n + ) + ) + ); + }), + (r.ticks = function(n, t) { + var e = Yi(r.domain()), + u = + null == n + ? i(e, 10) + : 'number' == typeof n + ? i(e, n) + : !n.range && [{ range: n }, t]; + return ( + u && ((n = u[0]), (t = u[1])), + n.range(e[0], io(+e[1] + 1), 1 > t ? 1 : t) + ); + }), + (r.tickFormat = function() { + return e; + }), + (r.copy = function() { + return ro(n.copy(), t, e); + }), + Ji(r, n) + ); + } + function io(n) { + return new Date(n); + } + function uo(n) { + return JSON.parse(n.responseText); + } + function oo(n) { + var t = fo.createRange(); + return t.selectNode(fo.body), t.createContextualFragment(n.responseText); + } + var ao = { version: '3.5.17' }, + lo = [].slice, + co = function(n) { + return lo.call(n); + }, + fo = this.document; + if (fo) + try { + co(fo.documentElement.childNodes)[0].nodeType; + } catch (so) { + co = function(n) { + for (var t = n.length, e = new Array(t); t--; ) e[t] = n[t]; + return e; + }; + } + if ( + (Date.now || + (Date.now = function() { + return +new Date(); + }), + fo) + ) + try { + fo.createElement('DIV').style.setProperty('opacity', 0, ''); + } catch (ho) { + var po = this.Element.prototype, + go = po.setAttribute, + vo = po.setAttributeNS, + yo = this.CSSStyleDeclaration.prototype, + mo = yo.setProperty; + (po.setAttribute = function(n, t) { + go.call(this, n, t + ''); + }), + (po.setAttributeNS = function(n, t, e) { + vo.call(this, n, t, e + ''); + }), + (yo.setProperty = function(n, t, e) { + mo.call(this, n, t + '', e); + }); + } + (ao.ascending = e), + (ao.descending = function(n, t) { + return n > t ? -1 : t > n ? 1 : t >= n ? 0 : NaN; + }), + (ao.min = function(n, t) { + var e, + r, + i = -1, + u = n.length; + if (1 === arguments.length) { + for (; ++i < u; ) + if (null != (r = n[i]) && r >= r) { + e = r; + break; + } + for (; ++i < u; ) null != (r = n[i]) && e > r && (e = r); + } else { + for (; ++i < u; ) + if (null != (r = t.call(n, n[i], i)) && r >= r) { + e = r; + break; + } + for (; ++i < u; ) null != (r = t.call(n, n[i], i)) && e > r && (e = r); + } + return e; + }), + (ao.max = function(n, t) { + var e, + r, + i = -1, + u = n.length; + if (1 === arguments.length) { + for (; ++i < u; ) + if (null != (r = n[i]) && r >= r) { + e = r; + break; + } + for (; ++i < u; ) null != (r = n[i]) && r > e && (e = r); + } else { + for (; ++i < u; ) + if (null != (r = t.call(n, n[i], i)) && r >= r) { + e = r; + break; + } + for (; ++i < u; ) null != (r = t.call(n, n[i], i)) && r > e && (e = r); + } + return e; + }), + (ao.extent = function(n, t) { + var e, + r, + i, + u = -1, + o = n.length; + if (1 === arguments.length) { + for (; ++u < o; ) + if (null != (r = n[u]) && r >= r) { + e = i = r; + break; + } + for (; ++u < o; ) + null != (r = n[u]) && (e > r && (e = r), r > i && (i = r)); + } else { + for (; ++u < o; ) + if (null != (r = t.call(n, n[u], u)) && r >= r) { + e = i = r; + break; + } + for (; ++u < o; ) + null != (r = t.call(n, n[u], u)) && + (e > r && (e = r), r > i && (i = r)); + } + return [e, i]; + }), + (ao.sum = function(n, t) { + var e, + r = 0, + u = n.length, + o = -1; + if (1 === arguments.length) for (; ++o < u; ) i((e = +n[o])) && (r += e); + else for (; ++o < u; ) i((e = +t.call(n, n[o], o))) && (r += e); + return r; + }), + (ao.mean = function(n, t) { + var e, + u = 0, + o = n.length, + a = -1, + l = o; + if (1 === arguments.length) + for (; ++a < o; ) i((e = r(n[a]))) ? (u += e) : --l; + else for (; ++a < o; ) i((e = r(t.call(n, n[a], a)))) ? (u += e) : --l; + return l ? u / l : void 0; + }), + (ao.quantile = function(n, t) { + var e = (n.length - 1) * t + 1, + r = Math.floor(e), + i = +n[r - 1], + u = e - r; + return u ? i + u * (n[r] - i) : i; + }), + (ao.median = function(n, t) { + var u, + o = [], + a = n.length, + l = -1; + if (1 === arguments.length) + for (; ++l < a; ) i((u = r(n[l]))) && o.push(u); + else for (; ++l < a; ) i((u = r(t.call(n, n[l], l)))) && o.push(u); + return o.length ? ao.quantile(o.sort(e), 0.5) : void 0; + }), + (ao.variance = function(n, t) { + var e, + u, + o = n.length, + a = 0, + l = 0, + c = -1, + f = 0; + if (1 === arguments.length) + for (; ++c < o; ) + i((e = r(n[c]))) && ((u = e - a), (a += u / ++f), (l += u * (e - a))); + else + for (; ++c < o; ) + i((e = r(t.call(n, n[c], c)))) && + ((u = e - a), (a += u / ++f), (l += u * (e - a))); + return f > 1 ? l / (f - 1) : void 0; + }), + (ao.deviation = function() { + var n = ao.variance.apply(this, arguments); + return n ? Math.sqrt(n) : n; + }); + var Mo = u(e); + (ao.bisectLeft = Mo.left), + (ao.bisect = ao.bisectRight = Mo.right), + (ao.bisector = function(n) { + return u( + 1 === n.length + ? function(t, r) { + return e(n(t), r); + } + : n + ); + }), + (ao.shuffle = function(n, t, e) { + (u = arguments.length) < 3 && ((e = n.length), 2 > u && (t = 0)); + for (var r, i, u = e - t; u; ) + (i = (Math.random() * u--) | 0), + (r = n[u + t]), + (n[u + t] = n[i + t]), + (n[i + t] = r); + return n; + }), + (ao.permute = function(n, t) { + for (var e = t.length, r = new Array(e); e--; ) r[e] = n[t[e]]; + return r; + }), + (ao.pairs = function(n) { + for ( + var t, e = 0, r = n.length - 1, i = n[0], u = new Array(0 > r ? 0 : r); + r > e; + + ) + u[e] = [(t = i), (i = n[++e])]; + return u; + }), + (ao.transpose = function(n) { + if (!(i = n.length)) return []; + for (var t = -1, e = ao.min(n, o), r = new Array(e); ++t < e; ) + for (var i, u = -1, a = (r[t] = new Array(i)); ++u < i; ) + a[u] = n[u][t]; + return r; + }), + (ao.zip = function() { + return ao.transpose(arguments); + }), + (ao.keys = function(n) { + var t = []; + for (var e in n) t.push(e); + return t; + }), + (ao.values = function(n) { + var t = []; + for (var e in n) t.push(n[e]); + return t; + }), + (ao.entries = function(n) { + var t = []; + for (var e in n) t.push({ key: e, value: n[e] }); + return t; + }), + (ao.merge = function(n) { + for (var t, e, r, i = n.length, u = -1, o = 0; ++u < i; ) + o += n[u].length; + for (e = new Array(o); --i >= 0; ) + for (r = n[i], t = r.length; --t >= 0; ) e[--o] = r[t]; + return e; + }); + var xo = Math.abs; + (ao.range = function(n, t, e) { + if ( + (arguments.length < 3 && + ((e = 1), arguments.length < 2 && ((t = n), (n = 0))), + (t - n) / e === 1 / 0) + ) + throw new Error('infinite range'); + var r, + i = [], + u = a(xo(e)), + o = -1; + if (((n *= u), (t *= u), (e *= u), 0 > e)) + for (; (r = n + e * ++o) > t; ) i.push(r / u); + else for (; (r = n + e * ++o) < t; ) i.push(r / u); + return i; + }), + (ao.map = function(n, t) { + var e = new c(); + if (n instanceof c) + n.forEach(function(n, t) { + e.set(n, t); + }); + else if (Array.isArray(n)) { + var r, + i = -1, + u = n.length; + if (1 === arguments.length) for (; ++i < u; ) e.set(i, n[i]); + else for (; ++i < u; ) e.set(t.call(n, (r = n[i]), i), r); + } else for (var o in n) e.set(o, n[o]); + return e; + }); + var bo = '__proto__', + _o = '\x00'; + l(c, { + has: h, + get: function(n) { + return this._[f(n)]; + }, + set: function(n, t) { + return (this._[f(n)] = t); + }, + remove: p, + keys: g, + values: function() { + var n = []; + for (var t in this._) n.push(this._[t]); + return n; + }, + entries: function() { + var n = []; + for (var t in this._) n.push({ key: s(t), value: this._[t] }); + return n; + }, + size: v, + empty: d, + forEach: function(n) { + for (var t in this._) n.call(this, s(t), this._[t]); + } + }), + (ao.nest = function() { + function n(t, o, a) { + if (a >= u.length) return r ? r.call(i, o) : e ? o.sort(e) : o; + for ( + var l, f, s, h, p = -1, g = o.length, v = u[a++], d = new c(); + ++p < g; + + ) + (h = d.get((l = v((f = o[p]))))) ? h.push(f) : d.set(l, [f]); + return ( + t + ? ((f = t()), + (s = function(e, r) { + f.set(e, n(t, r, a)); + })) + : ((f = {}), + (s = function(e, r) { + f[e] = n(t, r, a); + })), + d.forEach(s), + f + ); + } + function t(n, e) { + if (e >= u.length) return n; + var r = [], + i = o[e++]; + return ( + n.forEach(function(n, i) { + r.push({ key: n, values: t(i, e) }); + }), + i + ? r.sort(function(n, t) { + return i(n.key, t.key); + }) + : r + ); + } + var e, + r, + i = {}, + u = [], + o = []; + return ( + (i.map = function(t, e) { + return n(e, t, 0); + }), + (i.entries = function(e) { + return t(n(ao.map, e, 0), 0); + }), + (i.key = function(n) { + return u.push(n), i; + }), + (i.sortKeys = function(n) { + return (o[u.length - 1] = n), i; + }), + (i.sortValues = function(n) { + return (e = n), i; + }), + (i.rollup = function(n) { + return (r = n), i; + }), + i + ); + }), + (ao.set = function(n) { + var t = new y(); + if (n) for (var e = 0, r = n.length; r > e; ++e) t.add(n[e]); + return t; + }), + l(y, { + has: h, + add: function(n) { + return (this._[f((n += ''))] = !0), n; + }, + remove: p, + values: g, + size: v, + empty: d, + forEach: function(n) { + for (var t in this._) n.call(this, s(t)); + } + }), + (ao.behavior = {}), + (ao.rebind = function(n, t) { + for (var e, r = 1, i = arguments.length; ++r < i; ) + n[(e = arguments[r])] = M(n, t, t[e]); + return n; + }); + var wo = ['webkit', 'ms', 'moz', 'Moz', 'o', 'O']; + (ao.dispatch = function() { + for (var n = new _(), t = -1, e = arguments.length; ++t < e; ) + n[arguments[t]] = w(n); + return n; + }), + (_.prototype.on = function(n, t) { + var e = n.indexOf('.'), + r = ''; + if ((e >= 0 && ((r = n.slice(e + 1)), (n = n.slice(0, e))), n)) + return arguments.length < 2 ? this[n].on(r) : this[n].on(r, t); + if (2 === arguments.length) { + if (null == t) + for (n in this) this.hasOwnProperty(n) && this[n].on(r, null); + return this; + } + }), + (ao.event = null), + (ao.requote = function(n) { + return n.replace(So, '\\$&'); + }); + var So = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g, + ko = {}.__proto__ + ? function(n, t) { + n.__proto__ = t; + } + : function(n, t) { + for (var e in t) n[e] = t[e]; + }, + No = function(n, t) { + return t.querySelector(n); + }, + Eo = function(n, t) { + return t.querySelectorAll(n); + }, + Ao = function(n, t) { + var e = n.matches || n[x(n, 'matchesSelector')]; + return (Ao = function(n, t) { + return e.call(n, t); + })(n, t); + }; + 'function' == typeof Sizzle && + ((No = function(n, t) { + return Sizzle(n, t)[0] || null; + }), + (Eo = Sizzle), + (Ao = Sizzle.matchesSelector)), + (ao.selection = function() { + return ao.select(fo.documentElement); + }); + var Co = (ao.selection.prototype = []); + (Co.select = function(n) { + var t, + e, + r, + i, + u = []; + n = A(n); + for (var o = -1, a = this.length; ++o < a; ) { + u.push((t = [])), (t.parentNode = (r = this[o]).parentNode); + for (var l = -1, c = r.length; ++l < c; ) + (i = r[l]) + ? (t.push((e = n.call(i, i.__data__, l, o))), + e && '__data__' in i && (e.__data__ = i.__data__)) + : t.push(null); + } + return E(u); + }), + (Co.selectAll = function(n) { + var t, + e, + r = []; + n = C(n); + for (var i = -1, u = this.length; ++i < u; ) + for (var o = this[i], a = -1, l = o.length; ++a < l; ) + (e = o[a]) && + (r.push((t = co(n.call(e, e.__data__, a, i)))), (t.parentNode = e)); + return E(r); + }); + var zo = 'http://www.w3.org/1999/xhtml', + Lo = { + svg: 'http://www.w3.org/2000/svg', + xhtml: zo, + xlink: 'http://www.w3.org/1999/xlink', + xml: 'http://www.w3.org/XML/1998/namespace', + xmlns: 'http://www.w3.org/2000/xmlns/' + }; + (ao.ns = { + prefix: Lo, + qualify: function(n) { + var t = n.indexOf(':'), + e = n; + return ( + t >= 0 && 'xmlns' !== (e = n.slice(0, t)) && (n = n.slice(t + 1)), + Lo.hasOwnProperty(e) ? { space: Lo[e], local: n } : n + ); + } + }), + (Co.attr = function(n, t) { + if (arguments.length < 2) { + if ('string' == typeof n) { + var e = this.node(); + return ( + (n = ao.ns.qualify(n)), + n.local ? e.getAttributeNS(n.space, n.local) : e.getAttribute(n) + ); + } + for (t in n) this.each(z(t, n[t])); + return this; + } + return this.each(z(n, t)); + }), + (Co.classed = function(n, t) { + if (arguments.length < 2) { + if ('string' == typeof n) { + var e = this.node(), + r = (n = T(n)).length, + i = -1; + if ((t = e.classList)) { + for (; ++i < r; ) if (!t.contains(n[i])) return !1; + } else + for (t = e.getAttribute('class'); ++i < r; ) + if (!q(n[i]).test(t)) return !1; + return !0; + } + for (t in n) this.each(R(t, n[t])); + return this; + } + return this.each(R(n, t)); + }), + (Co.style = function(n, e, r) { + var i = arguments.length; + if (3 > i) { + if ('string' != typeof n) { + 2 > i && (e = ''); + for (r in n) this.each(P(r, n[r], e)); + return this; + } + if (2 > i) { + var u = this.node(); + return t(u) + .getComputedStyle(u, null) + .getPropertyValue(n); + } + r = ''; + } + return this.each(P(n, e, r)); + }), + (Co.property = function(n, t) { + if (arguments.length < 2) { + if ('string' == typeof n) return this.node()[n]; + for (t in n) this.each(U(t, n[t])); + return this; + } + return this.each(U(n, t)); + }), + (Co.text = function(n) { + return arguments.length + ? this.each( + 'function' == typeof n + ? function() { + var t = n.apply(this, arguments); + this.textContent = null == t ? '' : t; + } + : null == n + ? function() { + this.textContent = ''; + } + : function() { + this.textContent = n; + } + ) + : this.node().textContent; + }), + (Co.html = function(n) { + return arguments.length + ? this.each( + 'function' == typeof n + ? function() { + var t = n.apply(this, arguments); + this.innerHTML = null == t ? '' : t; + } + : null == n + ? function() { + this.innerHTML = ''; + } + : function() { + this.innerHTML = n; + } + ) + : this.node().innerHTML; + }), + (Co.append = function(n) { + return ( + (n = j(n)), + this.select(function() { + return this.appendChild(n.apply(this, arguments)); + }) + ); + }), + (Co.insert = function(n, t) { + return ( + (n = j(n)), + (t = A(t)), + this.select(function() { + return this.insertBefore( + n.apply(this, arguments), + t.apply(this, arguments) || null + ); + }) + ); + }), + (Co.remove = function() { + return this.each(F); + }), + (Co.data = function(n, t) { + function e(n, e) { + var r, + i, + u, + o = n.length, + s = e.length, + h = Math.min(o, s), + p = new Array(s), + g = new Array(s), + v = new Array(o); + if (t) { + var d, + y = new c(), + m = new Array(o); + for (r = -1; ++r < o; ) + (i = n[r]) && + (y.has((d = t.call(i, i.__data__, r))) ? (v[r] = i) : y.set(d, i), + (m[r] = d)); + for (r = -1; ++r < s; ) + (i = y.get((d = t.call(e, (u = e[r]), r)))) + ? i !== !0 && ((p[r] = i), (i.__data__ = u)) + : (g[r] = H(u)), + y.set(d, !0); + for (r = -1; ++r < o; ) r in m && y.get(m[r]) !== !0 && (v[r] = n[r]); + } else { + for (r = -1; ++r < h; ) + (i = n[r]), + (u = e[r]), + i ? ((i.__data__ = u), (p[r] = i)) : (g[r] = H(u)); + for (; s > r; ++r) g[r] = H(e[r]); + for (; o > r; ++r) v[r] = n[r]; + } + (g.update = p), + (g.parentNode = p.parentNode = v.parentNode = n.parentNode), + a.push(g), + l.push(p), + f.push(v); + } + var r, + i, + u = -1, + o = this.length; + if (!arguments.length) { + for (n = new Array((o = (r = this[0]).length)); ++u < o; ) + (i = r[u]) && (n[u] = i.__data__); + return n; + } + var a = Z([]), + l = E([]), + f = E([]); + if ('function' == typeof n) + for (; ++u < o; ) e((r = this[u]), n.call(r, r.parentNode.__data__, u)); + else for (; ++u < o; ) e((r = this[u]), n); + return ( + (l.enter = function() { + return a; + }), + (l.exit = function() { + return f; + }), + l + ); + }), + (Co.datum = function(n) { + return arguments.length + ? this.property('__data__', n) + : this.property('__data__'); + }), + (Co.filter = function(n) { + var t, + e, + r, + i = []; + 'function' != typeof n && (n = O(n)); + for (var u = 0, o = this.length; o > u; u++) { + i.push((t = [])), (t.parentNode = (e = this[u]).parentNode); + for (var a = 0, l = e.length; l > a; a++) + (r = e[a]) && n.call(r, r.__data__, a, u) && t.push(r); + } + return E(i); + }), + (Co.order = function() { + for (var n = -1, t = this.length; ++n < t; ) + for (var e, r = this[n], i = r.length - 1, u = r[i]; --i >= 0; ) + (e = r[i]) && + (u && u !== e.nextSibling && u.parentNode.insertBefore(e, u), + (u = e)); + return this; + }), + (Co.sort = function(n) { + n = I.apply(this, arguments); + for (var t = -1, e = this.length; ++t < e; ) this[t].sort(n); + return this.order(); + }), + (Co.each = function(n) { + return Y(this, function(t, e, r) { + n.call(t, t.__data__, e, r); + }); + }), + (Co.call = function(n) { + var t = co(arguments); + return n.apply((t[0] = this), t), this; + }), + (Co.empty = function() { + return !this.node(); + }), + (Co.node = function() { + for (var n = 0, t = this.length; t > n; n++) + for (var e = this[n], r = 0, i = e.length; i > r; r++) { + var u = e[r]; + if (u) return u; + } + return null; + }), + (Co.size = function() { + var n = 0; + return ( + Y(this, function() { + ++n; + }), + n + ); + }); + var qo = []; + (ao.selection.enter = Z), + (ao.selection.enter.prototype = qo), + (qo.append = Co.append), + (qo.empty = Co.empty), + (qo.node = Co.node), + (qo.call = Co.call), + (qo.size = Co.size), + (qo.select = function(n) { + for (var t, e, r, i, u, o = [], a = -1, l = this.length; ++a < l; ) { + (r = (i = this[a]).update), + o.push((t = [])), + (t.parentNode = i.parentNode); + for (var c = -1, f = i.length; ++c < f; ) + (u = i[c]) + ? (t.push((r[c] = e = n.call(i.parentNode, u.__data__, c, a))), + (e.__data__ = u.__data__)) + : t.push(null); + } + return E(o); + }), + (qo.insert = function(n, t) { + return arguments.length < 2 && (t = V(this)), Co.insert.call(this, n, t); + }), + (ao.select = function(t) { + var e; + return ( + 'string' == typeof t + ? ((e = [No(t, fo)]), (e.parentNode = fo.documentElement)) + : ((e = [t]), (e.parentNode = n(t))), + E([e]) + ); + }), + (ao.selectAll = function(n) { + var t; + return ( + 'string' == typeof n + ? ((t = co(Eo(n, fo))), (t.parentNode = fo.documentElement)) + : ((t = co(n)), (t.parentNode = null)), + E([t]) + ); + }), + (Co.on = function(n, t, e) { + var r = arguments.length; + if (3 > r) { + if ('string' != typeof n) { + 2 > r && (t = !1); + for (e in n) this.each(X(e, n[e], t)); + return this; + } + if (2 > r) return (r = this.node()['__on' + n]) && r._; + e = !1; + } + return this.each(X(n, t, e)); + }); + var To = ao.map({ mouseenter: 'mouseover', mouseleave: 'mouseout' }); + fo && + To.forEach(function(n) { + 'on' + n in fo && To.remove(n); + }); + var Ro, + Do = 0; + ao.mouse = function(n) { + return J(n, k()); + }; + var Po = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0; + (ao.touch = function(n, t, e) { + if ((arguments.length < 3 && ((e = t), (t = k().changedTouches)), t)) + for (var r, i = 0, u = t.length; u > i; ++i) + if ((r = t[i]).identifier === e) return J(n, r); + }), + (ao.behavior.drag = function() { + function n() { + this.on('mousedown.drag', u).on('touchstart.drag', o); + } + function e(n, t, e, u, o) { + return function() { + function a() { + var n, + e, + r = t(h, v); + r && + ((n = r[0] - M[0]), + (e = r[1] - M[1]), + (g |= n | e), + (M = r), + p({ + type: 'drag', + x: r[0] + c[0], + y: r[1] + c[1], + dx: n, + dy: e + })); + } + function l() { + t(h, v) && + (y.on(u + d, null).on(o + d, null), m(g), p({ type: 'dragend' })); + } + var c, + f = this, + s = ao.event.target.correspondingElement || ao.event.target, + h = f.parentNode, + p = r.of(f, arguments), + g = 0, + v = n(), + d = '.drag' + (null == v ? '' : '-' + v), + y = ao + .select(e(s)) + .on(u + d, a) + .on(o + d, l), + m = W(s), + M = t(h, v); + i + ? ((c = i.apply(f, arguments)), (c = [c.x - M[0], c.y - M[1]])) + : (c = [0, 0]), + p({ type: 'dragstart' }); + }; + } + var r = N(n, 'drag', 'dragstart', 'dragend'), + i = null, + u = e(b, ao.mouse, t, 'mousemove', 'mouseup'), + o = e(G, ao.touch, m, 'touchmove', 'touchend'); + return ( + (n.origin = function(t) { + return arguments.length ? ((i = t), n) : i; + }), + ao.rebind(n, r, 'on') + ); + }), + (ao.touches = function(n, t) { + return ( + arguments.length < 2 && (t = k().touches), + t + ? co(t).map(function(t) { + var e = J(n, t); + return (e.identifier = t.identifier), e; + }) + : [] + ); + }); + var Uo = 1e-6, + jo = Uo * Uo, + Fo = Math.PI, + Ho = 2 * Fo, + Oo = Ho - Uo, + Io = Fo / 2, + Yo = Fo / 180, + Zo = 180 / Fo, + Vo = Math.SQRT2, + Xo = 2, + $o = 4; + (ao.interpolateZoom = function(n, t) { + var e, + r, + i = n[0], + u = n[1], + o = n[2], + a = t[0], + l = t[1], + c = t[2], + f = a - i, + s = l - u, + h = f * f + s * s; + if (jo > h) + (r = Math.log(c / o) / Vo), + (e = function(n) { + return [i + n * f, u + n * s, o * Math.exp(Vo * n * r)]; + }); + else { + var p = Math.sqrt(h), + g = (c * c - o * o + $o * h) / (2 * o * Xo * p), + v = (c * c - o * o - $o * h) / (2 * c * Xo * p), + d = Math.log(Math.sqrt(g * g + 1) - g), + y = Math.log(Math.sqrt(v * v + 1) - v); + (r = (y - d) / Vo), + (e = function(n) { + var t = n * r, + e = rn(d), + a = (o / (Xo * p)) * (e * un(Vo * t + d) - en(d)); + return [i + a * f, u + a * s, (o * e) / rn(Vo * t + d)]; + }); + } + return (e.duration = 1e3 * r), e; + }), + (ao.behavior.zoom = function() { + function n(n) { + n.on(L, s) + .on(Wo + '.zoom', p) + .on('dblclick.zoom', g) + .on(R, h); + } + function e(n) { + return [(n[0] - k.x) / k.k, (n[1] - k.y) / k.k]; + } + function r(n) { + return [n[0] * k.k + k.x, n[1] * k.k + k.y]; + } + function i(n) { + k.k = Math.max(A[0], Math.min(A[1], n)); + } + function u(n, t) { + (t = r(t)), (k.x += n[0] - t[0]), (k.y += n[1] - t[1]); + } + function o(t, e, r, o) { + (t.__chart__ = { x: k.x, y: k.y, k: k.k }), + i(Math.pow(2, o)), + u((d = e), r), + (t = ao.select(t)), + C > 0 && (t = t.transition().duration(C)), + t.call(n.event); + } + function a() { + b && + b.domain( + x + .range() + .map(function(n) { + return (n - k.x) / k.k; + }) + .map(x.invert) + ), + w && + w.domain( + _.range() + .map(function(n) { + return (n - k.y) / k.k; + }) + .map(_.invert) + ); + } + function l(n) { + z++ || n({ type: 'zoomstart' }); + } + function c(n) { + a(), n({ type: 'zoom', scale: k.k, translate: [k.x, k.y] }); + } + function f(n) { + --z || (n({ type: 'zoomend' }), (d = null)); + } + function s() { + function n() { + (a = 1), u(ao.mouse(i), h), c(o); + } + function r() { + s.on(q, null).on(T, null), p(a), f(o); + } + var i = this, + o = D.of(i, arguments), + a = 0, + s = ao + .select(t(i)) + .on(q, n) + .on(T, r), + h = e(ao.mouse(i)), + p = W(i); + Il.call(i), l(o); + } + function h() { + function n() { + var n = ao.touches(g); + return ( + (p = k.k), + n.forEach(function(n) { + n.identifier in d && (d[n.identifier] = e(n)); + }), + n + ); + } + function t() { + var t = ao.event.target; + ao + .select(t) + .on(x, r) + .on(b, a), + _.push(t); + for (var e = ao.event.changedTouches, i = 0, u = e.length; u > i; ++i) + d[e[i].identifier] = null; + var l = n(), + c = Date.now(); + if (1 === l.length) { + if (500 > c - M) { + var f = l[0]; + o( + g, + f, + d[f.identifier], + Math.floor(Math.log(k.k) / Math.LN2) + 1 + ), + S(); + } + M = c; + } else if (l.length > 1) { + var f = l[0], + s = l[1], + h = f[0] - s[0], + p = f[1] - s[1]; + y = h * h + p * p; + } + } + function r() { + var n, + t, + e, + r, + o = ao.touches(g); + Il.call(g); + for (var a = 0, l = o.length; l > a; ++a, r = null) + if (((e = o[a]), (r = d[e.identifier]))) { + if (t) break; + (n = e), (t = r); + } + if (r) { + var f = (f = e[0] - n[0]) * f + (f = e[1] - n[1]) * f, + s = y && Math.sqrt(f / y); + (n = [(n[0] + e[0]) / 2, (n[1] + e[1]) / 2]), + (t = [(t[0] + r[0]) / 2, (t[1] + r[1]) / 2]), + i(s * p); + } + (M = null), u(n, t), c(v); + } + function a() { + if (ao.event.touches.length) { + for ( + var t = ao.event.changedTouches, e = 0, r = t.length; + r > e; + ++e + ) + delete d[t[e].identifier]; + for (var i in d) return void n(); + } + ao.selectAll(_).on(m, null), w.on(L, s).on(R, h), N(), f(v); + } + var p, + g = this, + v = D.of(g, arguments), + d = {}, + y = 0, + m = '.zoom-' + ao.event.changedTouches[0].identifier, + x = 'touchmove' + m, + b = 'touchend' + m, + _ = [], + w = ao.select(g), + N = W(g); + t(), l(v), w.on(L, null).on(R, t); + } + function p() { + var n = D.of(this, arguments); + m + ? clearTimeout(m) + : (Il.call(this), (v = e((d = y || ao.mouse(this)))), l(n)), + (m = setTimeout(function() { + (m = null), f(n); + }, 50)), + S(), + i(Math.pow(2, 0.002 * Bo()) * k.k), + u(d, v), + c(n); + } + function g() { + var n = ao.mouse(this), + t = Math.log(k.k) / Math.LN2; + o( + this, + n, + e(n), + ao.event.shiftKey ? Math.ceil(t) - 1 : Math.floor(t) + 1 + ); + } + var v, + d, + y, + m, + M, + x, + b, + _, + w, + k = { x: 0, y: 0, k: 1 }, + E = [960, 500], + A = Jo, + C = 250, + z = 0, + L = 'mousedown.zoom', + q = 'mousemove.zoom', + T = 'mouseup.zoom', + R = 'touchstart.zoom', + D = N(n, 'zoomstart', 'zoom', 'zoomend'); + return ( + Wo || + (Wo = + 'onwheel' in fo + ? ((Bo = function() { + return -ao.event.deltaY * (ao.event.deltaMode ? 120 : 1); + }), + 'wheel') + : 'onmousewheel' in fo + ? ((Bo = function() { + return ao.event.wheelDelta; + }), + 'mousewheel') + : ((Bo = function() { + return -ao.event.detail; + }), + 'MozMousePixelScroll')), + (n.event = function(n) { + n.each(function() { + var n = D.of(this, arguments), + t = k; + Hl + ? ao + .select(this) + .transition() + .each('start.zoom', function() { + (k = this.__chart__ || { x: 0, y: 0, k: 1 }), l(n); + }) + .tween('zoom:zoom', function() { + var e = E[0], + r = E[1], + i = d ? d[0] : e / 2, + u = d ? d[1] : r / 2, + o = ao.interpolateZoom( + [(i - k.x) / k.k, (u - k.y) / k.k, e / k.k], + [(i - t.x) / t.k, (u - t.y) / t.k, e / t.k] + ); + return function(t) { + var r = o(t), + a = e / r[2]; + (this.__chart__ = k = { + x: i - r[0] * a, + y: u - r[1] * a, + k: a + }), + c(n); + }; + }) + .each('interrupt.zoom', function() { + f(n); + }) + .each('end.zoom', function() { + f(n); + }) + : ((this.__chart__ = k), l(n), c(n), f(n)); + }); + }), + (n.translate = function(t) { + return arguments.length + ? ((k = { x: +t[0], y: +t[1], k: k.k }), a(), n) + : [k.x, k.y]; + }), + (n.scale = function(t) { + return arguments.length + ? ((k = { x: k.x, y: k.y, k: null }), i(+t), a(), n) + : k.k; + }), + (n.scaleExtent = function(t) { + return arguments.length + ? ((A = null == t ? Jo : [+t[0], +t[1]]), n) + : A; + }), + (n.center = function(t) { + return arguments.length ? ((y = t && [+t[0], +t[1]]), n) : y; + }), + (n.size = function(t) { + return arguments.length ? ((E = t && [+t[0], +t[1]]), n) : E; + }), + (n.duration = function(t) { + return arguments.length ? ((C = +t), n) : C; + }), + (n.x = function(t) { + return arguments.length + ? ((b = t), (x = t.copy()), (k = { x: 0, y: 0, k: 1 }), n) + : b; + }), + (n.y = function(t) { + return arguments.length + ? ((w = t), (_ = t.copy()), (k = { x: 0, y: 0, k: 1 }), n) + : w; + }), + ao.rebind(n, D, 'on') + ); + }); + var Bo, + Wo, + Jo = [0, 1 / 0]; + (ao.color = an), + (an.prototype.toString = function() { + return this.rgb() + ''; + }), + (ao.hsl = ln); + var Go = (ln.prototype = new an()); + (Go.brighter = function(n) { + return ( + (n = Math.pow(0.7, arguments.length ? n : 1)), + new ln(this.h, this.s, this.l / n) + ); + }), + (Go.darker = function(n) { + return ( + (n = Math.pow(0.7, arguments.length ? n : 1)), + new ln(this.h, this.s, n * this.l) + ); + }), + (Go.rgb = function() { + return cn(this.h, this.s, this.l); + }), + (ao.hcl = fn); + var Ko = (fn.prototype = new an()); + (Ko.brighter = function(n) { + return new fn( + this.h, + this.c, + Math.min(100, this.l + Qo * (arguments.length ? n : 1)) + ); + }), + (Ko.darker = function(n) { + return new fn( + this.h, + this.c, + Math.max(0, this.l - Qo * (arguments.length ? n : 1)) + ); + }), + (Ko.rgb = function() { + return sn(this.h, this.c, this.l).rgb(); + }), + (ao.lab = hn); + var Qo = 18, + na = 0.95047, + ta = 1, + ea = 1.08883, + ra = (hn.prototype = new an()); + (ra.brighter = function(n) { + return new hn( + Math.min(100, this.l + Qo * (arguments.length ? n : 1)), + this.a, + this.b + ); + }), + (ra.darker = function(n) { + return new hn( + Math.max(0, this.l - Qo * (arguments.length ? n : 1)), + this.a, + this.b + ); + }), + (ra.rgb = function() { + return pn(this.l, this.a, this.b); + }), + (ao.rgb = mn); + var ia = (mn.prototype = new an()); + (ia.brighter = function(n) { + n = Math.pow(0.7, arguments.length ? n : 1); + var t = this.r, + e = this.g, + r = this.b, + i = 30; + return t || e || r + ? (t && i > t && (t = i), + e && i > e && (e = i), + r && i > r && (r = i), + new mn( + Math.min(255, t / n), + Math.min(255, e / n), + Math.min(255, r / n) + )) + : new mn(i, i, i); + }), + (ia.darker = function(n) { + return ( + (n = Math.pow(0.7, arguments.length ? n : 1)), + new mn(n * this.r, n * this.g, n * this.b) + ); + }), + (ia.hsl = function() { + return wn(this.r, this.g, this.b); + }), + (ia.toString = function() { + return '#' + bn(this.r) + bn(this.g) + bn(this.b); + }); + var ua = ao.map({ + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 + }); + ua.forEach(function(n, t) { + ua.set(n, Mn(t)); + }), + (ao.functor = En), + (ao.xhr = An(m)), + (ao.dsv = function(n, t) { + function e(n, e, u) { + arguments.length < 3 && ((u = e), (e = null)); + var o = Cn(n, t, null == e ? r : i(e), u); + return ( + (o.row = function(n) { + return arguments.length + ? o.response(null == (e = n) ? r : i(n)) + : e; + }), + o + ); + } + function r(n) { + return e.parse(n.responseText); + } + function i(n) { + return function(t) { + return e.parse(t.responseText, n); + }; + } + function u(t) { + return t.map(o).join(n); + } + function o(n) { + return a.test(n) ? '"' + n.replace(/\"/g, '""') + '"' : n; + } + var a = new RegExp('["' + n + '\n]'), + l = n.charCodeAt(0); + return ( + (e.parse = function(n, t) { + var r; + return e.parseRows(n, function(n, e) { + if (r) return r(n, e - 1); + var i = new Function( + 'd', + 'return {' + + n + .map(function(n, t) { + return JSON.stringify(n) + ': d[' + t + ']'; + }) + .join(',') + + '}' + ); + r = t + ? function(n, e) { + return t(i(n), e); + } + : i; + }); + }), + (e.parseRows = function(n, t) { + function e() { + if (f >= c) return o; + if (i) return (i = !1), u; + var t = f; + if (34 === n.charCodeAt(t)) { + for (var e = t; e++ < c; ) + if (34 === n.charCodeAt(e)) { + if (34 !== n.charCodeAt(e + 1)) break; + ++e; + } + f = e + 2; + var r = n.charCodeAt(e + 1); + return ( + 13 === r + ? ((i = !0), 10 === n.charCodeAt(e + 2) && ++f) + : 10 === r && (i = !0), + n.slice(t + 1, e).replace(/""/g, '"') + ); + } + for (; c > f; ) { + var r = n.charCodeAt(f++), + a = 1; + if (10 === r) i = !0; + else if (13 === r) (i = !0), 10 === n.charCodeAt(f) && (++f, ++a); + else if (r !== l) continue; + return n.slice(t, f - a); + } + return n.slice(t); + } + for ( + var r, i, u = {}, o = {}, a = [], c = n.length, f = 0, s = 0; + (r = e()) !== o; + + ) { + for (var h = []; r !== u && r !== o; ) h.push(r), (r = e()); + (t && null == (h = t(h, s++))) || a.push(h); + } + return a; + }), + (e.format = function(t) { + if (Array.isArray(t[0])) return e.formatRows(t); + var r = new y(), + i = []; + return ( + t.forEach(function(n) { + for (var t in n) r.has(t) || i.push(r.add(t)); + }), + [i.map(o).join(n)] + .concat( + t.map(function(t) { + return i + .map(function(n) { + return o(t[n]); + }) + .join(n); + }) + ) + .join('\n') + ); + }), + (e.formatRows = function(n) { + return n.map(u).join('\n'); + }), + e + ); + }), + (ao.csv = ao.dsv(',', 'text/csv')), + (ao.tsv = ao.dsv(' ', 'text/tab-separated-values')); + var oa, + aa, + la, + ca, + fa = + this[x(this, 'requestAnimationFrame')] || + function(n) { + setTimeout(n, 17); + }; + (ao.timer = function() { + qn.apply(this, arguments); + }), + (ao.timer.flush = function() { + Rn(), Dn(); + }), + (ao.round = function(n, t) { + return t ? Math.round(n * (t = Math.pow(10, t))) / t : Math.round(n); + }); + var sa = [ + 'y', + 'z', + 'a', + 'f', + 'p', + 'n', + '\xb5', + 'm', + '', + 'k', + 'M', + 'G', + 'T', + 'P', + 'E', + 'Z', + 'Y' + ].map(Un); + ao.formatPrefix = function(n, t) { + var e = 0; + return ( + (n = +n) && + (0 > n && (n *= -1), + t && (n = ao.round(n, Pn(n, t))), + (e = 1 + Math.floor(1e-12 + Math.log(n) / Math.LN10)), + (e = Math.max(-24, Math.min(24, 3 * Math.floor((e - 1) / 3))))), + sa[8 + e / 3] + ); + }; + var ha = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i, + pa = ao.map({ + b: function(n) { + return n.toString(2); + }, + c: function(n) { + return String.fromCharCode(n); + }, + o: function(n) { + return n.toString(8); + }, + x: function(n) { + return n.toString(16); + }, + X: function(n) { + return n.toString(16).toUpperCase(); + }, + g: function(n, t) { + return n.toPrecision(t); + }, + e: function(n, t) { + return n.toExponential(t); + }, + f: function(n, t) { + return n.toFixed(t); + }, + r: function(n, t) { + return (n = ao.round(n, Pn(n, t))).toFixed( + Math.max(0, Math.min(20, Pn(n * (1 + 1e-15), t))) + ); + } + }), + ga = (ao.time = {}), + va = Date; + Hn.prototype = { + getDate: function() { + return this._.getUTCDate(); + }, + getDay: function() { + return this._.getUTCDay(); + }, + getFullYear: function() { + return this._.getUTCFullYear(); + }, + getHours: function() { + return this._.getUTCHours(); + }, + getMilliseconds: function() { + return this._.getUTCMilliseconds(); + }, + getMinutes: function() { + return this._.getUTCMinutes(); + }, + getMonth: function() { + return this._.getUTCMonth(); + }, + getSeconds: function() { + return this._.getUTCSeconds(); + }, + getTime: function() { + return this._.getTime(); + }, + getTimezoneOffset: function() { + return 0; + }, + valueOf: function() { + return this._.valueOf(); + }, + setDate: function() { + da.setUTCDate.apply(this._, arguments); + }, + setDay: function() { + da.setUTCDay.apply(this._, arguments); + }, + setFullYear: function() { + da.setUTCFullYear.apply(this._, arguments); + }, + setHours: function() { + da.setUTCHours.apply(this._, arguments); + }, + setMilliseconds: function() { + da.setUTCMilliseconds.apply(this._, arguments); + }, + setMinutes: function() { + da.setUTCMinutes.apply(this._, arguments); + }, + setMonth: function() { + da.setUTCMonth.apply(this._, arguments); + }, + setSeconds: function() { + da.setUTCSeconds.apply(this._, arguments); + }, + setTime: function() { + da.setTime.apply(this._, arguments); + } + }; + var da = Date.prototype; + (ga.year = On( + function(n) { + return (n = ga.day(n)), n.setMonth(0, 1), n; + }, + function(n, t) { + n.setFullYear(n.getFullYear() + t); + }, + function(n) { + return n.getFullYear(); + } + )), + (ga.years = ga.year.range), + (ga.years.utc = ga.year.utc.range), + (ga.day = On( + function(n) { + var t = new va(2e3, 0); + return t.setFullYear(n.getFullYear(), n.getMonth(), n.getDate()), t; + }, + function(n, t) { + n.setDate(n.getDate() + t); + }, + function(n) { + return n.getDate() - 1; + } + )), + (ga.days = ga.day.range), + (ga.days.utc = ga.day.utc.range), + (ga.dayOfYear = function(n) { + var t = ga.year(n); + return Math.floor( + (n - t - 6e4 * (n.getTimezoneOffset() - t.getTimezoneOffset())) / 864e5 + ); + }), + [ + 'sunday', + 'monday', + 'tuesday', + 'wednesday', + 'thursday', + 'friday', + 'saturday' + ].forEach(function(n, t) { + t = 7 - t; + var e = (ga[n] = On( + function(n) { + return ( + (n = ga.day(n)).setDate(n.getDate() - ((n.getDay() + t) % 7)), n + ); + }, + function(n, t) { + n.setDate(n.getDate() + 7 * Math.floor(t)); + }, + function(n) { + var e = ga.year(n).getDay(); + return Math.floor((ga.dayOfYear(n) + ((e + t) % 7)) / 7) - (e !== t); + } + )); + (ga[n + 's'] = e.range), + (ga[n + 's'].utc = e.utc.range), + (ga[n + 'OfYear'] = function(n) { + var e = ga.year(n).getDay(); + return Math.floor((ga.dayOfYear(n) + ((e + t) % 7)) / 7); + }); + }), + (ga.week = ga.sunday), + (ga.weeks = ga.sunday.range), + (ga.weeks.utc = ga.sunday.utc.range), + (ga.weekOfYear = ga.sundayOfYear); + var ya = { '-': '', _: ' ', 0: '0' }, + ma = /^\s*\d+/, + Ma = /^%/; + ao.locale = function(n) { + return { numberFormat: jn(n), timeFormat: Yn(n) }; + }; + var xa = ao.locale({ + decimal: '.', + thousands: ',', + grouping: [3], + currency: ['$', ''], + dateTime: '%a %b %e %X %Y', + date: '%m/%d/%Y', + time: '%H:%M:%S', + periods: ['AM', 'PM'], + days: [ + 'Sunday', + 'Monday', + 'Tuesday', + 'Wednesday', + 'Thursday', + 'Friday', + 'Saturday' + ], + shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + months: [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December' + ], + shortMonths: [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sep', + 'Oct', + 'Nov', + 'Dec' + ] + }); + (ao.format = xa.numberFormat), + (ao.geo = {}), + (ft.prototype = { + s: 0, + t: 0, + add: function(n) { + st(n, this.t, ba), + st(ba.s, this.s, this), + this.s ? (this.t += ba.t) : (this.s = ba.t); + }, + reset: function() { + this.s = this.t = 0; + }, + valueOf: function() { + return this.s; + } + }); + var ba = new ft(); + ao.geo.stream = function(n, t) { + n && _a.hasOwnProperty(n.type) ? _a[n.type](n, t) : ht(n, t); + }; + var _a = { + Feature: function(n, t) { + ht(n.geometry, t); + }, + FeatureCollection: function(n, t) { + for (var e = n.features, r = -1, i = e.length; ++r < i; ) + ht(e[r].geometry, t); + } + }, + wa = { + Sphere: function(n, t) { + t.sphere(); + }, + Point: function(n, t) { + (n = n.coordinates), t.point(n[0], n[1], n[2]); + }, + MultiPoint: function(n, t) { + for (var e = n.coordinates, r = -1, i = e.length; ++r < i; ) + (n = e[r]), t.point(n[0], n[1], n[2]); + }, + LineString: function(n, t) { + pt(n.coordinates, t, 0); + }, + MultiLineString: function(n, t) { + for (var e = n.coordinates, r = -1, i = e.length; ++r < i; ) + pt(e[r], t, 0); + }, + Polygon: function(n, t) { + gt(n.coordinates, t); + }, + MultiPolygon: function(n, t) { + for (var e = n.coordinates, r = -1, i = e.length; ++r < i; ) + gt(e[r], t); + }, + GeometryCollection: function(n, t) { + for (var e = n.geometries, r = -1, i = e.length; ++r < i; ) ht(e[r], t); + } + }; + ao.geo.area = function(n) { + return (Sa = 0), ao.geo.stream(n, Na), Sa; + }; + var Sa, + ka = new ft(), + Na = { + sphere: function() { + Sa += 4 * Fo; + }, + point: b, + lineStart: b, + lineEnd: b, + polygonStart: function() { + ka.reset(), (Na.lineStart = vt); + }, + polygonEnd: function() { + var n = 2 * ka; + (Sa += 0 > n ? 4 * Fo + n : n), + (Na.lineStart = Na.lineEnd = Na.point = b); + } + }; + (ao.geo.bounds = (function() { + function n(n, t) { + M.push((x = [(f = n), (h = n)])), s > t && (s = t), t > p && (p = t); + } + function t(t, e) { + var r = dt([t * Yo, e * Yo]); + if (y) { + var i = mt(y, r), + u = [i[1], -i[0], 0], + o = mt(u, i); + bt(o), (o = _t(o)); + var l = t - g, + c = l > 0 ? 1 : -1, + v = o[0] * Zo * c, + d = xo(l) > 180; + if (d ^ (v > c * g && c * t > v)) { + var m = o[1] * Zo; + m > p && (p = m); + } else if ( + ((v = ((v + 360) % 360) - 180), d ^ (v > c * g && c * t > v)) + ) { + var m = -o[1] * Zo; + s > m && (s = m); + } else s > e && (s = e), e > p && (p = e); + d + ? g > t + ? a(f, t) > a(f, h) && (h = t) + : a(t, h) > a(f, h) && (f = t) + : h >= f + ? (f > t && (f = t), t > h && (h = t)) + : t > g + ? a(f, t) > a(f, h) && (h = t) + : a(t, h) > a(f, h) && (f = t); + } else n(t, e); + (y = r), (g = t); + } + function e() { + b.point = t; + } + function r() { + (x[0] = f), (x[1] = h), (b.point = n), (y = null); + } + function i(n, e) { + if (y) { + var r = n - g; + m += xo(r) > 180 ? r + (r > 0 ? 360 : -360) : r; + } else (v = n), (d = e); + Na.point(n, e), t(n, e); + } + function u() { + Na.lineStart(); + } + function o() { + i(v, d), + Na.lineEnd(), + xo(m) > Uo && (f = -(h = 180)), + (x[0] = f), + (x[1] = h), + (y = null); + } + function a(n, t) { + return (t -= n) < 0 ? t + 360 : t; + } + function l(n, t) { + return n[0] - t[0]; + } + function c(n, t) { + return t[0] <= t[1] ? t[0] <= n && n <= t[1] : n < t[0] || t[1] < n; + } + var f, + s, + h, + p, + g, + v, + d, + y, + m, + M, + x, + b = { + point: n, + lineStart: e, + lineEnd: r, + polygonStart: function() { + (b.point = i), + (b.lineStart = u), + (b.lineEnd = o), + (m = 0), + Na.polygonStart(); + }, + polygonEnd: function() { + Na.polygonEnd(), + (b.point = n), + (b.lineStart = e), + (b.lineEnd = r), + 0 > ka + ? ((f = -(h = 180)), (s = -(p = 90))) + : m > Uo + ? (p = 90) + : -Uo > m && (s = -90), + (x[0] = f), + (x[1] = h); + } + }; + return function(n) { + (p = h = -(f = s = 1 / 0)), (M = []), ao.geo.stream(n, b); + var t = M.length; + if (t) { + M.sort(l); + for (var e, r = 1, i = M[0], u = [i]; t > r; ++r) + (e = M[r]), + c(e[0], i) || c(e[1], i) + ? (a(i[0], e[1]) > a(i[0], i[1]) && (i[1] = e[1]), + a(e[0], i[1]) > a(i[0], i[1]) && (i[0] = e[0])) + : u.push((i = e)); + for ( + var o, e, g = -(1 / 0), t = u.length - 1, r = 0, i = u[t]; + t >= r; + i = e, ++r + ) + (e = u[r]), + (o = a(i[1], e[0])) > g && ((g = o), (f = e[0]), (h = i[1])); + } + return ( + (M = x = null), + f === 1 / 0 || s === 1 / 0 ? [[NaN, NaN], [NaN, NaN]] : [[f, s], [h, p]] + ); + }; + })()), + (ao.geo.centroid = function(n) { + (Ea = Aa = Ca = za = La = qa = Ta = Ra = Da = Pa = Ua = 0), + ao.geo.stream(n, ja); + var t = Da, + e = Pa, + r = Ua, + i = t * t + e * e + r * r; + return jo > i && + ((t = qa), + (e = Ta), + (r = Ra), + Uo > Aa && ((t = Ca), (e = za), (r = La)), + (i = t * t + e * e + r * r), + jo > i) + ? [NaN, NaN] + : [Math.atan2(e, t) * Zo, tn(r / Math.sqrt(i)) * Zo]; + }); + var Ea, + Aa, + Ca, + za, + La, + qa, + Ta, + Ra, + Da, + Pa, + Ua, + ja = { + sphere: b, + point: St, + lineStart: Nt, + lineEnd: Et, + polygonStart: function() { + ja.lineStart = At; + }, + polygonEnd: function() { + ja.lineStart = Nt; + } + }, + Fa = Rt(zt, jt, Ht, [-Fo, -Fo / 2]), + Ha = 1e9; + (ao.geo.clipExtent = function() { + var n, + t, + e, + r, + i, + u, + o = { + stream: function(n) { + return i && (i.valid = !1), (i = u(n)), (i.valid = !0), i; + }, + extent: function(a) { + return arguments.length + ? ((u = Zt( + (n = +a[0][0]), + (t = +a[0][1]), + (e = +a[1][0]), + (r = +a[1][1]) + )), + i && ((i.valid = !1), (i = null)), + o) + : [[n, t], [e, r]]; + } + }; + return o.extent([[0, 0], [960, 500]]); + }), + ((ao.geo.conicEqualArea = function() { + return Vt(Xt); + }).raw = Xt), + (ao.geo.albers = function() { + return ao.geo + .conicEqualArea() + .rotate([96, 0]) + .center([-0.6, 38.7]) + .parallels([29.5, 45.5]) + .scale(1070); + }), + (ao.geo.albersUsa = function() { + function n(n) { + var u = n[0], + o = n[1]; + return (t = null), e(u, o), t || (r(u, o), t) || i(u, o), t; + } + var t, + e, + r, + i, + u = ao.geo.albers(), + o = ao.geo + .conicEqualArea() + .rotate([154, 0]) + .center([-2, 58.5]) + .parallels([55, 65]), + a = ao.geo + .conicEqualArea() + .rotate([157, 0]) + .center([-3, 19.9]) + .parallels([8, 18]), + l = { + point: function(n, e) { + t = [n, e]; + } + }; + return ( + (n.invert = function(n) { + var t = u.scale(), + e = u.translate(), + r = (n[0] - e[0]) / t, + i = (n[1] - e[1]) / t; + return (i >= 0.12 && 0.234 > i && r >= -0.425 && -0.214 > r + ? o + : i >= 0.166 && 0.234 > i && r >= -0.214 && -0.115 > r + ? a + : u + ).invert(n); + }), + (n.stream = function(n) { + var t = u.stream(n), + e = o.stream(n), + r = a.stream(n); + return { + point: function(n, i) { + t.point(n, i), e.point(n, i), r.point(n, i); + }, + sphere: function() { + t.sphere(), e.sphere(), r.sphere(); + }, + lineStart: function() { + t.lineStart(), e.lineStart(), r.lineStart(); + }, + lineEnd: function() { + t.lineEnd(), e.lineEnd(), r.lineEnd(); + }, + polygonStart: function() { + t.polygonStart(), e.polygonStart(), r.polygonStart(); + }, + polygonEnd: function() { + t.polygonEnd(), e.polygonEnd(), r.polygonEnd(); + } + }; + }), + (n.precision = function(t) { + return arguments.length + ? (u.precision(t), o.precision(t), a.precision(t), n) + : u.precision(); + }), + (n.scale = function(t) { + return arguments.length + ? (u.scale(t), + o.scale(0.35 * t), + a.scale(t), + n.translate(u.translate())) + : u.scale(); + }), + (n.translate = function(t) { + if (!arguments.length) return u.translate(); + var c = u.scale(), + f = +t[0], + s = +t[1]; + return ( + (e = u + .translate(t) + .clipExtent([ + [f - 0.455 * c, s - 0.238 * c], + [f + 0.455 * c, s + 0.238 * c] + ]) + .stream(l).point), + (r = o + .translate([f - 0.307 * c, s + 0.201 * c]) + .clipExtent([ + [f - 0.425 * c + Uo, s + 0.12 * c + Uo], + [f - 0.214 * c - Uo, s + 0.234 * c - Uo] + ]) + .stream(l).point), + (i = a + .translate([f - 0.205 * c, s + 0.212 * c]) + .clipExtent([ + [f - 0.214 * c + Uo, s + 0.166 * c + Uo], + [f - 0.115 * c - Uo, s + 0.234 * c - Uo] + ]) + .stream(l).point), + n + ); + }), + n.scale(1070) + ); + }); + var Oa, + Ia, + Ya, + Za, + Va, + Xa, + $a = { + point: b, + lineStart: b, + lineEnd: b, + polygonStart: function() { + (Ia = 0), ($a.lineStart = $t); + }, + polygonEnd: function() { + ($a.lineStart = $a.lineEnd = $a.point = b), (Oa += xo(Ia / 2)); + } + }, + Ba = { + point: Bt, + lineStart: b, + lineEnd: b, + polygonStart: b, + polygonEnd: b + }, + Wa = { + point: Gt, + lineStart: Kt, + lineEnd: Qt, + polygonStart: function() { + Wa.lineStart = ne; + }, + polygonEnd: function() { + (Wa.point = Gt), (Wa.lineStart = Kt), (Wa.lineEnd = Qt); + } + }; + (ao.geo.path = function() { + function n(n) { + return ( + n && + ('function' == typeof a && u.pointRadius(+a.apply(this, arguments)), + (o && o.valid) || (o = i(u)), + ao.geo.stream(n, o)), + u.result() + ); + } + function t() { + return (o = null), n; + } + var e, + r, + i, + u, + o, + a = 4.5; + return ( + (n.area = function(n) { + return (Oa = 0), ao.geo.stream(n, i($a)), Oa; + }), + (n.centroid = function(n) { + return ( + (Ca = za = La = qa = Ta = Ra = Da = Pa = Ua = 0), + ao.geo.stream(n, i(Wa)), + Ua + ? [Da / Ua, Pa / Ua] + : Ra + ? [qa / Ra, Ta / Ra] + : La + ? [Ca / La, za / La] + : [NaN, NaN] + ); + }), + (n.bounds = function(n) { + return ( + (Va = Xa = -(Ya = Za = 1 / 0)), + ao.geo.stream(n, i(Ba)), + [[Ya, Za], [Va, Xa]] + ); + }), + (n.projection = function(n) { + return arguments.length + ? ((i = (e = n) ? n.stream || re(n) : m), t()) + : e; + }), + (n.context = function(n) { + return arguments.length + ? ((u = null == (r = n) ? new Wt() : new te(n)), + 'function' != typeof a && u.pointRadius(a), + t()) + : r; + }), + (n.pointRadius = function(t) { + return arguments.length + ? ((a = 'function' == typeof t ? t : (u.pointRadius(+t), +t)), n) + : a; + }), + n.projection(ao.geo.albersUsa()).context(null) + ); + }), + (ao.geo.transform = function(n) { + return { + stream: function(t) { + var e = new ie(t); + for (var r in n) e[r] = n[r]; + return e; + } + }; + }), + (ie.prototype = { + point: function(n, t) { + this.stream.point(n, t); + }, + sphere: function() { + this.stream.sphere(); + }, + lineStart: function() { + this.stream.lineStart(); + }, + lineEnd: function() { + this.stream.lineEnd(); + }, + polygonStart: function() { + this.stream.polygonStart(); + }, + polygonEnd: function() { + this.stream.polygonEnd(); + } + }), + (ao.geo.projection = oe), + (ao.geo.projectionMutator = ae), + ((ao.geo.equirectangular = function() { + return oe(ce); + }).raw = ce.invert = ce), + (ao.geo.rotation = function(n) { + function t(t) { + return (t = n(t[0] * Yo, t[1] * Yo)), (t[0] *= Zo), (t[1] *= Zo), t; + } + return ( + (n = se((n[0] % 360) * Yo, n[1] * Yo, n.length > 2 ? n[2] * Yo : 0)), + (t.invert = function(t) { + return ( + (t = n.invert(t[0] * Yo, t[1] * Yo)), (t[0] *= Zo), (t[1] *= Zo), t + ); + }), + t + ); + }), + (fe.invert = ce), + (ao.geo.circle = function() { + function n() { + var n = 'function' == typeof r ? r.apply(this, arguments) : r, + t = se(-n[0] * Yo, -n[1] * Yo, 0).invert, + i = []; + return ( + e(null, null, 1, { + point: function(n, e) { + i.push((n = t(n, e))), (n[0] *= Zo), (n[1] *= Zo); + } + }), + { type: 'Polygon', coordinates: [i] } + ); + } + var t, + e, + r = [0, 0], + i = 6; + return ( + (n.origin = function(t) { + return arguments.length ? ((r = t), n) : r; + }), + (n.angle = function(r) { + return arguments.length ? ((e = ve((t = +r) * Yo, i * Yo)), n) : t; + }), + (n.precision = function(r) { + return arguments.length ? ((e = ve(t * Yo, (i = +r) * Yo)), n) : i; + }), + n.angle(90) + ); + }), + (ao.geo.distance = function(n, t) { + var e, + r = (t[0] - n[0]) * Yo, + i = n[1] * Yo, + u = t[1] * Yo, + o = Math.sin(r), + a = Math.cos(r), + l = Math.sin(i), + c = Math.cos(i), + f = Math.sin(u), + s = Math.cos(u); + return Math.atan2( + Math.sqrt((e = s * o) * e + (e = c * f - l * s * a) * e), + l * f + c * s * a + ); + }), + (ao.geo.graticule = function() { + function n() { + return { type: 'MultiLineString', coordinates: t() }; + } + function t() { + return ao + .range(Math.ceil(u / d) * d, i, d) + .map(h) + .concat(ao.range(Math.ceil(c / y) * y, l, y).map(p)) + .concat( + ao + .range(Math.ceil(r / g) * g, e, g) + .filter(function(n) { + return xo(n % d) > Uo; + }) + .map(f) + ) + .concat( + ao + .range(Math.ceil(a / v) * v, o, v) + .filter(function(n) { + return xo(n % y) > Uo; + }) + .map(s) + ); + } + var e, + r, + i, + u, + o, + a, + l, + c, + f, + s, + h, + p, + g = 10, + v = g, + d = 90, + y = 360, + m = 2.5; + return ( + (n.lines = function() { + return t().map(function(n) { + return { type: 'LineString', coordinates: n }; + }); + }), + (n.outline = function() { + return { + type: 'Polygon', + coordinates: [ + h(u).concat( + p(l).slice(1), + h(i) + .reverse() + .slice(1), + p(c) + .reverse() + .slice(1) + ) + ] + }; + }), + (n.extent = function(t) { + return arguments.length + ? n.majorExtent(t).minorExtent(t) + : n.minorExtent(); + }), + (n.majorExtent = function(t) { + return arguments.length + ? ((u = +t[0][0]), + (i = +t[1][0]), + (c = +t[0][1]), + (l = +t[1][1]), + u > i && ((t = u), (u = i), (i = t)), + c > l && ((t = c), (c = l), (l = t)), + n.precision(m)) + : [[u, c], [i, l]]; + }), + (n.minorExtent = function(t) { + return arguments.length + ? ((r = +t[0][0]), + (e = +t[1][0]), + (a = +t[0][1]), + (o = +t[1][1]), + r > e && ((t = r), (r = e), (e = t)), + a > o && ((t = a), (a = o), (o = t)), + n.precision(m)) + : [[r, a], [e, o]]; + }), + (n.step = function(t) { + return arguments.length ? n.majorStep(t).minorStep(t) : n.minorStep(); + }), + (n.majorStep = function(t) { + return arguments.length ? ((d = +t[0]), (y = +t[1]), n) : [d, y]; + }), + (n.minorStep = function(t) { + return arguments.length ? ((g = +t[0]), (v = +t[1]), n) : [g, v]; + }), + (n.precision = function(t) { + return arguments.length + ? ((m = +t), + (f = ye(a, o, 90)), + (s = me(r, e, m)), + (h = ye(c, l, 90)), + (p = me(u, i, m)), + n) + : m; + }), + n + .majorExtent([[-180, -90 + Uo], [180, 90 - Uo]]) + .minorExtent([[-180, -80 - Uo], [180, 80 + Uo]]) + ); + }), + (ao.geo.greatArc = function() { + function n() { + return { + type: 'LineString', + coordinates: [ + t || r.apply(this, arguments), + e || i.apply(this, arguments) + ] + }; + } + var t, + e, + r = Me, + i = xe; + return ( + (n.distance = function() { + return ao.geo.distance( + t || r.apply(this, arguments), + e || i.apply(this, arguments) + ); + }), + (n.source = function(e) { + return arguments.length + ? ((r = e), (t = 'function' == typeof e ? null : e), n) + : r; + }), + (n.target = function(t) { + return arguments.length + ? ((i = t), (e = 'function' == typeof t ? null : t), n) + : i; + }), + (n.precision = function() { + return arguments.length ? n : 0; + }), + n + ); + }), + (ao.geo.interpolate = function(n, t) { + return be(n[0] * Yo, n[1] * Yo, t[0] * Yo, t[1] * Yo); + }), + (ao.geo.length = function(n) { + return (Ja = 0), ao.geo.stream(n, Ga), Ja; + }); + var Ja, + Ga = { + sphere: b, + point: b, + lineStart: _e, + lineEnd: b, + polygonStart: b, + polygonEnd: b + }, + Ka = we( + function(n) { + return Math.sqrt(2 / (1 + n)); + }, + function(n) { + return 2 * Math.asin(n / 2); + } + ); + (ao.geo.azimuthalEqualArea = function() { + return oe(Ka); + }).raw = Ka; + var Qa = we(function(n) { + var t = Math.acos(n); + return t && t / Math.sin(t); + }, m); + ((ao.geo.azimuthalEquidistant = function() { + return oe(Qa); + }).raw = Qa), + ((ao.geo.conicConformal = function() { + return Vt(Se); + }).raw = Se), + ((ao.geo.conicEquidistant = function() { + return Vt(ke); + }).raw = ke); + var nl = we(function(n) { + return 1 / n; + }, Math.atan); + ((ao.geo.gnomonic = function() { + return oe(nl); + }).raw = nl), + (Ne.invert = function(n, t) { + return [n, 2 * Math.atan(Math.exp(t)) - Io]; + }), + ((ao.geo.mercator = function() { + return Ee(Ne); + }).raw = Ne); + var tl = we(function() { + return 1; + }, Math.asin); + (ao.geo.orthographic = function() { + return oe(tl); + }).raw = tl; + var el = we( + function(n) { + return 1 / (1 + n); + }, + function(n) { + return 2 * Math.atan(n); + } + ); + ((ao.geo.stereographic = function() { + return oe(el); + }).raw = el), + (Ae.invert = function(n, t) { + return [-t, 2 * Math.atan(Math.exp(n)) - Io]; + }), + ((ao.geo.transverseMercator = function() { + var n = Ee(Ae), + t = n.center, + e = n.rotate; + return ( + (n.center = function(n) { + return n ? t([-n[1], n[0]]) : ((n = t()), [n[1], -n[0]]); + }), + (n.rotate = function(n) { + return n + ? e([n[0], n[1], n.length > 2 ? n[2] + 90 : 90]) + : ((n = e()), [n[0], n[1], n[2] - 90]); + }), + e([0, 0, 90]) + ); + }).raw = Ae), + (ao.geom = {}), + (ao.geom.hull = function(n) { + function t(n) { + if (n.length < 3) return []; + var t, + i = En(e), + u = En(r), + o = n.length, + a = [], + l = []; + for (t = 0; o > t; t++) + a.push([+i.call(this, n[t], t), +u.call(this, n[t], t), t]); + for (a.sort(qe), t = 0; o > t; t++) l.push([a[t][0], -a[t][1]]); + var c = Le(a), + f = Le(l), + s = f[0] === c[0], + h = f[f.length - 1] === c[c.length - 1], + p = []; + for (t = c.length - 1; t >= 0; --t) p.push(n[a[c[t]][2]]); + for (t = +s; t < f.length - h; ++t) p.push(n[a[f[t]][2]]); + return p; + } + var e = Ce, + r = ze; + return arguments.length + ? t(n) + : ((t.x = function(n) { + return arguments.length ? ((e = n), t) : e; + }), + (t.y = function(n) { + return arguments.length ? ((r = n), t) : r; + }), + t); + }), + (ao.geom.polygon = function(n) { + return ko(n, rl), n; + }); + var rl = (ao.geom.polygon.prototype = []); + (rl.area = function() { + for (var n, t = -1, e = this.length, r = this[e - 1], i = 0; ++t < e; ) + (n = r), (r = this[t]), (i += n[1] * r[0] - n[0] * r[1]); + return 0.5 * i; + }), + (rl.centroid = function(n) { + var t, + e, + r = -1, + i = this.length, + u = 0, + o = 0, + a = this[i - 1]; + for (arguments.length || (n = -1 / (6 * this.area())); ++r < i; ) + (t = a), + (a = this[r]), + (e = t[0] * a[1] - a[0] * t[1]), + (u += (t[0] + a[0]) * e), + (o += (t[1] + a[1]) * e); + return [u * n, o * n]; + }), + (rl.clip = function(n) { + for ( + var t, + e, + r, + i, + u, + o, + a = De(n), + l = -1, + c = this.length - De(this), + f = this[c - 1]; + ++l < c; + + ) { + for ( + t = n.slice(), + n.length = 0, + i = this[l], + u = t[(r = t.length - a) - 1], + e = -1; + ++e < r; + + ) + (o = t[e]), + Te(o, f, i) + ? (Te(u, f, i) || n.push(Re(u, o, f, i)), n.push(o)) + : Te(u, f, i) && n.push(Re(u, o, f, i)), + (u = o); + a && n.push(n[0]), (f = i); + } + return n; + }); + var il, + ul, + ol, + al, + ll, + cl = [], + fl = []; + (Ye.prototype.prepare = function() { + for (var n, t = this.edges, e = t.length; e--; ) + (n = t[e].edge), (n.b && n.a) || t.splice(e, 1); + return t.sort(Ve), t.length; + }), + (tr.prototype = { + start: function() { + return this.edge.l === this.site ? this.edge.a : this.edge.b; + }, + end: function() { + return this.edge.l === this.site ? this.edge.b : this.edge.a; + } + }), + (er.prototype = { + insert: function(n, t) { + var e, r, i; + if (n) { + if (((t.P = n), (t.N = n.N), n.N && (n.N.P = t), (n.N = t), n.R)) { + for (n = n.R; n.L; ) n = n.L; + n.L = t; + } else n.R = t; + e = n; + } else + this._ + ? ((n = or(this._)), + (t.P = null), + (t.N = n), + (n.P = n.L = t), + (e = n)) + : ((t.P = t.N = null), (this._ = t), (e = null)); + for (t.L = t.R = null, t.U = e, t.C = !0, n = t; e && e.C; ) + (r = e.U), + e === r.L + ? ((i = r.R), + i && i.C + ? ((e.C = i.C = !1), (r.C = !0), (n = r)) + : (n === e.R && (ir(this, e), (n = e), (e = n.U)), + (e.C = !1), + (r.C = !0), + ur(this, r))) + : ((i = r.L), + i && i.C + ? ((e.C = i.C = !1), (r.C = !0), (n = r)) + : (n === e.L && (ur(this, e), (n = e), (e = n.U)), + (e.C = !1), + (r.C = !0), + ir(this, r))), + (e = n.U); + this._.C = !1; + }, + remove: function(n) { + n.N && (n.N.P = n.P), n.P && (n.P.N = n.N), (n.N = n.P = null); + var t, + e, + r, + i = n.U, + u = n.L, + o = n.R; + if ( + ((e = u ? (o ? or(o) : u) : o), + i ? (i.L === n ? (i.L = e) : (i.R = e)) : (this._ = e), + u && o + ? ((r = e.C), + (e.C = n.C), + (e.L = u), + (u.U = e), + e !== o + ? ((i = e.U), + (e.U = n.U), + (n = e.R), + (i.L = n), + (e.R = o), + (o.U = e)) + : ((e.U = i), (i = e), (n = e.R))) + : ((r = n.C), (n = e)), + n && (n.U = i), + !r) + ) { + if (n && n.C) return void (n.C = !1); + do { + if (n === this._) break; + if (n === i.L) { + if ( + ((t = i.R), + t.C && ((t.C = !1), (i.C = !0), ir(this, i), (t = i.R)), + (t.L && t.L.C) || (t.R && t.R.C)) + ) { + (t.R && t.R.C) || + ((t.L.C = !1), (t.C = !0), ur(this, t), (t = i.R)), + (t.C = i.C), + (i.C = t.R.C = !1), + ir(this, i), + (n = this._); + break; + } + } else if ( + ((t = i.L), + t.C && ((t.C = !1), (i.C = !0), ur(this, i), (t = i.L)), + (t.L && t.L.C) || (t.R && t.R.C)) + ) { + (t.L && t.L.C) || + ((t.R.C = !1), (t.C = !0), ir(this, t), (t = i.L)), + (t.C = i.C), + (i.C = t.L.C = !1), + ur(this, i), + (n = this._); + break; + } + (t.C = !0), (n = i), (i = i.U); + } while (!n.C); + n && (n.C = !1); + } + } + }), + (ao.geom.voronoi = function(n) { + function t(n) { + var t = new Array(n.length), + r = a[0][0], + i = a[0][1], + u = a[1][0], + o = a[1][1]; + return ( + ar(e(n), a).cells.forEach(function(e, a) { + var l = e.edges, + c = e.site, + f = (t[a] = l.length + ? l.map(function(n) { + var t = n.start(); + return [t.x, t.y]; + }) + : c.x >= r && c.x <= u && c.y >= i && c.y <= o + ? [[r, o], [u, o], [u, i], [r, i]] + : []); + f.point = n[a]; + }), + t + ); + } + function e(n) { + return n.map(function(n, t) { + return { + x: Math.round(u(n, t) / Uo) * Uo, + y: Math.round(o(n, t) / Uo) * Uo, + i: t + }; + }); + } + var r = Ce, + i = ze, + u = r, + o = i, + a = sl; + return n + ? t(n) + : ((t.links = function(n) { + return ar(e(n)) + .edges.filter(function(n) { + return n.l && n.r; + }) + .map(function(t) { + return { source: n[t.l.i], target: n[t.r.i] }; + }); + }), + (t.triangles = function(n) { + var t = []; + return ( + ar(e(n)).cells.forEach(function(e, r) { + for ( + var i, + u, + o = e.site, + a = e.edges.sort(Ve), + l = -1, + c = a.length, + f = a[c - 1].edge, + s = f.l === o ? f.r : f.l; + ++l < c; + + ) + (i = f), + (u = s), + (f = a[l].edge), + (s = f.l === o ? f.r : f.l), + r < u.i && + r < s.i && + cr(o, u, s) < 0 && + t.push([n[r], n[u.i], n[s.i]]); + }), + t + ); + }), + (t.x = function(n) { + return arguments.length ? ((u = En((r = n))), t) : r; + }), + (t.y = function(n) { + return arguments.length ? ((o = En((i = n))), t) : i; + }), + (t.clipExtent = function(n) { + return arguments.length + ? ((a = null == n ? sl : n), t) + : a === sl + ? null + : a; + }), + (t.size = function(n) { + return arguments.length + ? t.clipExtent(n && [[0, 0], n]) + : a === sl + ? null + : a && a[1]; + }), + t); + }); + var sl = [[-1e6, -1e6], [1e6, 1e6]]; + (ao.geom.delaunay = function(n) { + return ao.geom.voronoi().triangles(n); + }), + (ao.geom.quadtree = function(n, t, e, r, i) { + function u(n) { + function u(n, t, e, r, i, u, o, a) { + if (!isNaN(e) && !isNaN(r)) + if (n.leaf) { + var l = n.x, + f = n.y; + if (null != l) + if (xo(l - e) + xo(f - r) < 0.01) c(n, t, e, r, i, u, o, a); + else { + var s = n.point; + (n.x = n.y = n.point = null), + c(n, s, l, f, i, u, o, a), + c(n, t, e, r, i, u, o, a); + } + else (n.x = e), (n.y = r), (n.point = t); + } else c(n, t, e, r, i, u, o, a); + } + function c(n, t, e, r, i, o, a, l) { + var c = 0.5 * (i + a), + f = 0.5 * (o + l), + s = e >= c, + h = r >= f, + p = (h << 1) | s; + (n.leaf = !1), + (n = n.nodes[p] || (n.nodes[p] = hr())), + s ? (i = c) : (a = c), + h ? (o = f) : (l = f), + u(n, t, e, r, i, o, a, l); + } + var f, + s, + h, + p, + g, + v, + d, + y, + m, + M = En(a), + x = En(l); + if (null != t) (v = t), (d = e), (y = r), (m = i); + else if ( + ((y = m = -(v = d = 1 / 0)), (s = []), (h = []), (g = n.length), o) + ) + for (p = 0; g > p; ++p) + (f = n[p]), + f.x < v && (v = f.x), + f.y < d && (d = f.y), + f.x > y && (y = f.x), + f.y > m && (m = f.y), + s.push(f.x), + h.push(f.y); + else + for (p = 0; g > p; ++p) { + var b = +M((f = n[p]), p), + _ = +x(f, p); + v > b && (v = b), + d > _ && (d = _), + b > y && (y = b), + _ > m && (m = _), + s.push(b), + h.push(_); + } + var w = y - v, + S = m - d; + w > S ? (m = d + w) : (y = v + S); + var k = hr(); + if ( + ((k.add = function(n) { + u(k, n, +M(n, ++p), +x(n, p), v, d, y, m); + }), + (k.visit = function(n) { + pr(n, k, v, d, y, m); + }), + (k.find = function(n) { + return gr(k, n[0], n[1], v, d, y, m); + }), + (p = -1), + null == t) + ) { + for (; ++p < g; ) u(k, n[p], s[p], h[p], v, d, y, m); + --p; + } else n.forEach(k.add); + return (s = h = n = f = null), k; + } + var o, + a = Ce, + l = ze; + return (o = arguments.length) + ? ((a = fr), (l = sr), 3 === o && ((i = e), (r = t), (e = t = 0)), u(n)) + : ((u.x = function(n) { + return arguments.length ? ((a = n), u) : a; + }), + (u.y = function(n) { + return arguments.length ? ((l = n), u) : l; + }), + (u.extent = function(n) { + return arguments.length + ? (null == n + ? (t = e = r = i = null) + : ((t = +n[0][0]), + (e = +n[0][1]), + (r = +n[1][0]), + (i = +n[1][1])), + u) + : null == t + ? null + : [[t, e], [r, i]]; + }), + (u.size = function(n) { + return arguments.length + ? (null == n + ? (t = e = r = i = null) + : ((t = e = 0), (r = +n[0]), (i = +n[1])), + u) + : null == t + ? null + : [r - t, i - e]; + }), + u); + }), + (ao.interpolateRgb = vr), + (ao.interpolateObject = dr), + (ao.interpolateNumber = yr), + (ao.interpolateString = mr); + var hl = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, + pl = new RegExp(hl.source, 'g'); + (ao.interpolate = Mr), + (ao.interpolators = [ + function(n, t) { + var e = typeof t; + return ('string' === e + ? ua.has(t.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(t) + ? vr + : mr + : t instanceof an + ? vr + : Array.isArray(t) + ? xr + : 'object' === e && isNaN(t) + ? dr + : yr)(n, t); + } + ]), + (ao.interpolateArray = xr); + var gl = function() { + return m; + }, + vl = ao.map({ + linear: gl, + poly: Er, + quad: function() { + return Sr; + }, + cubic: function() { + return kr; + }, + sin: function() { + return Ar; + }, + exp: function() { + return Cr; + }, + circle: function() { + return zr; + }, + elastic: Lr, + back: qr, + bounce: function() { + return Tr; + } + }), + dl = ao.map({ + in: m, + out: _r, + 'in-out': wr, + 'out-in': function(n) { + return wr(_r(n)); + } + }); + (ao.ease = function(n) { + var t = n.indexOf('-'), + e = t >= 0 ? n.slice(0, t) : n, + r = t >= 0 ? n.slice(t + 1) : 'in'; + return ( + (e = vl.get(e) || gl), + (r = dl.get(r) || m), + br(r(e.apply(null, lo.call(arguments, 1)))) + ); + }), + (ao.interpolateHcl = Rr), + (ao.interpolateHsl = Dr), + (ao.interpolateLab = Pr), + (ao.interpolateRound = Ur), + (ao.transform = function(n) { + var t = fo.createElementNS(ao.ns.prefix.svg, 'g'); + return (ao.transform = function(n) { + if (null != n) { + t.setAttribute('transform', n); + var e = t.transform.baseVal.consolidate(); + } + return new jr(e ? e.matrix : yl); + })(n); + }), + (jr.prototype.toString = function() { + return ( + 'translate(' + + this.translate + + ')rotate(' + + this.rotate + + ')skewX(' + + this.skew + + ')scale(' + + this.scale + + ')' + ); + }); + var yl = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }; + (ao.interpolateTransform = $r), + (ao.layout = {}), + (ao.layout.bundle = function() { + return function(n) { + for (var t = [], e = -1, r = n.length; ++e < r; ) t.push(Jr(n[e])); + return t; + }; + }), + (ao.layout.chord = function() { + function n() { + var n, + c, + s, + h, + p, + g = {}, + v = [], + d = ao.range(u), + y = []; + for (e = [], r = [], n = 0, h = -1; ++h < u; ) { + for (c = 0, p = -1; ++p < u; ) c += i[h][p]; + v.push(c), y.push(ao.range(u)), (n += c); + } + for ( + o && + d.sort(function(n, t) { + return o(v[n], v[t]); + }), + a && + y.forEach(function(n, t) { + n.sort(function(n, e) { + return a(i[t][n], i[t][e]); + }); + }), + n = (Ho - f * u) / n, + c = 0, + h = -1; + ++h < u; + + ) { + for (s = c, p = -1; ++p < u; ) { + var m = d[h], + M = y[m][p], + x = i[m][M], + b = c, + _ = (c += x * n); + g[m + '-' + M] = { + index: m, + subindex: M, + startAngle: b, + endAngle: _, + value: x + }; + } + (r[m] = { index: m, startAngle: s, endAngle: c, value: v[m] }), + (c += f); + } + for (h = -1; ++h < u; ) + for (p = h - 1; ++p < u; ) { + var w = g[h + '-' + p], + S = g[p + '-' + h]; + (w.value || S.value) && + e.push( + w.value < S.value + ? { source: S, target: w } + : { source: w, target: S } + ); + } + l && t(); + } + function t() { + e.sort(function(n, t) { + return l( + (n.source.value + n.target.value) / 2, + (t.source.value + t.target.value) / 2 + ); + }); + } + var e, + r, + i, + u, + o, + a, + l, + c = {}, + f = 0; + return ( + (c.matrix = function(n) { + return arguments.length + ? ((u = (i = n) && i.length), (e = r = null), c) + : i; + }), + (c.padding = function(n) { + return arguments.length ? ((f = n), (e = r = null), c) : f; + }), + (c.sortGroups = function(n) { + return arguments.length ? ((o = n), (e = r = null), c) : o; + }), + (c.sortSubgroups = function(n) { + return arguments.length ? ((a = n), (e = null), c) : a; + }), + (c.sortChords = function(n) { + return arguments.length ? ((l = n), e && t(), c) : l; + }), + (c.chords = function() { + return e || n(), e; + }), + (c.groups = function() { + return r || n(), r; + }), + c + ); + }), + (ao.layout.force = function() { + function n(n) { + return function(t, e, r, i) { + if (t.point !== n) { + var u = t.cx - n.x, + o = t.cy - n.y, + a = i - e, + l = u * u + o * o; + if (l > (a * a) / y) { + if (v > l) { + var c = t.charge / l; + (n.px -= u * c), (n.py -= o * c); + } + return !0; + } + if (t.point && l && v > l) { + var c = t.pointCharge / l; + (n.px -= u * c), (n.py -= o * c); + } + } + return !t.charge; + }; + } + function t(n) { + (n.px = ao.event.x), (n.py = ao.event.y), l.resume(); + } + var e, + r, + i, + u, + o, + a, + l = {}, + c = ao.dispatch('start', 'tick', 'end'), + f = [1, 1], + s = 0.9, + h = ml, + p = Ml, + g = -30, + v = xl, + d = 0.1, + y = 0.64, + M = [], + x = []; + return ( + (l.tick = function() { + if ((i *= 0.99) < 0.005) + return (e = null), c.end({ type: 'end', alpha: (i = 0) }), !0; + var t, + r, + l, + h, + p, + v, + y, + m, + b, + _ = M.length, + w = x.length; + for (r = 0; w > r; ++r) + (l = x[r]), + (h = l.source), + (p = l.target), + (m = p.x - h.x), + (b = p.y - h.y), + (v = m * m + b * b) && + ((v = (i * o[r] * ((v = Math.sqrt(v)) - u[r])) / v), + (m *= v), + (b *= v), + (p.x -= + m * + (y = + h.weight + p.weight + ? h.weight / (h.weight + p.weight) + : 0.5)), + (p.y -= b * y), + (h.x += m * (y = 1 - y)), + (h.y += b * y)); + if ((y = i * d) && ((m = f[0] / 2), (b = f[1] / 2), (r = -1), y)) + for (; ++r < _; ) + (l = M[r]), (l.x += (m - l.x) * y), (l.y += (b - l.y) * y); + if (g) + for (ri((t = ao.geom.quadtree(M)), i, a), r = -1; ++r < _; ) + (l = M[r]).fixed || t.visit(n(l)); + for (r = -1; ++r < _; ) + (l = M[r]), + l.fixed + ? ((l.x = l.px), (l.y = l.py)) + : ((l.x -= (l.px - (l.px = l.x)) * s), + (l.y -= (l.py - (l.py = l.y)) * s)); + c.tick({ type: 'tick', alpha: i }); + }), + (l.nodes = function(n) { + return arguments.length ? ((M = n), l) : M; + }), + (l.links = function(n) { + return arguments.length ? ((x = n), l) : x; + }), + (l.size = function(n) { + return arguments.length ? ((f = n), l) : f; + }), + (l.linkDistance = function(n) { + return arguments.length + ? ((h = 'function' == typeof n ? n : +n), l) + : h; + }), + (l.distance = l.linkDistance), + (l.linkStrength = function(n) { + return arguments.length + ? ((p = 'function' == typeof n ? n : +n), l) + : p; + }), + (l.friction = function(n) { + return arguments.length ? ((s = +n), l) : s; + }), + (l.charge = function(n) { + return arguments.length + ? ((g = 'function' == typeof n ? n : +n), l) + : g; + }), + (l.chargeDistance = function(n) { + return arguments.length ? ((v = n * n), l) : Math.sqrt(v); + }), + (l.gravity = function(n) { + return arguments.length ? ((d = +n), l) : d; + }), + (l.theta = function(n) { + return arguments.length ? ((y = n * n), l) : Math.sqrt(y); + }), + (l.alpha = function(n) { + return arguments.length + ? ((n = +n), + i + ? n > 0 + ? (i = n) + : ((e.c = null), + (e.t = NaN), + (e = null), + c.end({ type: 'end', alpha: (i = 0) })) + : n > 0 && + (c.start({ type: 'start', alpha: (i = n) }), + (e = qn(l.tick))), + l) + : i; + }), + (l.start = function() { + function n(n, r) { + if (!e) { + for (e = new Array(i), l = 0; i > l; ++l) e[l] = []; + for (l = 0; c > l; ++l) { + var u = x[l]; + e[u.source.index].push(u.target), + e[u.target.index].push(u.source); + } + } + for (var o, a = e[t], l = -1, f = a.length; ++l < f; ) + if (!isNaN((o = a[l][n]))) return o; + return Math.random() * r; + } + var t, + e, + r, + i = M.length, + c = x.length, + s = f[0], + v = f[1]; + for (t = 0; i > t; ++t) ((r = M[t]).index = t), (r.weight = 0); + for (t = 0; c > t; ++t) + (r = x[t]), + 'number' == typeof r.source && (r.source = M[r.source]), + 'number' == typeof r.target && (r.target = M[r.target]), + ++r.source.weight, + ++r.target.weight; + for (t = 0; i > t; ++t) + (r = M[t]), + isNaN(r.x) && (r.x = n('x', s)), + isNaN(r.y) && (r.y = n('y', v)), + isNaN(r.px) && (r.px = r.x), + isNaN(r.py) && (r.py = r.y); + if (((u = []), 'function' == typeof h)) + for (t = 0; c > t; ++t) u[t] = +h.call(this, x[t], t); + else for (t = 0; c > t; ++t) u[t] = h; + if (((o = []), 'function' == typeof p)) + for (t = 0; c > t; ++t) o[t] = +p.call(this, x[t], t); + else for (t = 0; c > t; ++t) o[t] = p; + if (((a = []), 'function' == typeof g)) + for (t = 0; i > t; ++t) a[t] = +g.call(this, M[t], t); + else for (t = 0; i > t; ++t) a[t] = g; + return l.resume(); + }), + (l.resume = function() { + return l.alpha(0.1); + }), + (l.stop = function() { + return l.alpha(0); + }), + (l.drag = function() { + return ( + r || + (r = ao.behavior + .drag() + .origin(m) + .on('dragstart.force', Qr) + .on('drag.force', t) + .on('dragend.force', ni)), + arguments.length + ? void this.on('mouseover.force', ti) + .on('mouseout.force', ei) + .call(r) + : r + ); + }), + ao.rebind(l, c, 'on') + ); + }); + var ml = 20, + Ml = 1, + xl = 1 / 0; + (ao.layout.hierarchy = function() { + function n(i) { + var u, + o = [i], + a = []; + for (i.depth = 0; null != (u = o.pop()); ) + if ((a.push(u), (c = e.call(n, u, u.depth)) && (l = c.length))) { + for (var l, c, f; --l >= 0; ) + o.push((f = c[l])), (f.parent = u), (f.depth = u.depth + 1); + r && (u.value = 0), (u.children = c); + } else r && (u.value = +r.call(n, u, u.depth) || 0), delete u.children; + return ( + oi(i, function(n) { + var e, i; + t && (e = n.children) && e.sort(t), + r && (i = n.parent) && (i.value += n.value); + }), + a + ); + } + var t = ci, + e = ai, + r = li; + return ( + (n.sort = function(e) { + return arguments.length ? ((t = e), n) : t; + }), + (n.children = function(t) { + return arguments.length ? ((e = t), n) : e; + }), + (n.value = function(t) { + return arguments.length ? ((r = t), n) : r; + }), + (n.revalue = function(t) { + return ( + r && + (ui(t, function(n) { + n.children && (n.value = 0); + }), + oi(t, function(t) { + var e; + t.children || (t.value = +r.call(n, t, t.depth) || 0), + (e = t.parent) && (e.value += t.value); + })), + t + ); + }), + n + ); + }), + (ao.layout.partition = function() { + function n(t, e, r, i) { + var u = t.children; + if ( + ((t.x = e), + (t.y = t.depth * i), + (t.dx = r), + (t.dy = i), + u && (o = u.length)) + ) { + var o, + a, + l, + c = -1; + for (r = t.value ? r / t.value : 0; ++c < o; ) + n((a = u[c]), e, (l = a.value * r), i), (e += l); + } + } + function t(n) { + var e = n.children, + r = 0; + if (e && (i = e.length)) + for (var i, u = -1; ++u < i; ) r = Math.max(r, t(e[u])); + return 1 + r; + } + function e(e, u) { + var o = r.call(this, e, u); + return n(o[0], 0, i[0], i[1] / t(o[0])), o; + } + var r = ao.layout.hierarchy(), + i = [1, 1]; + return ( + (e.size = function(n) { + return arguments.length ? ((i = n), e) : i; + }), + ii(e, r) + ); + }), + (ao.layout.pie = function() { + function n(o) { + var a, + l = o.length, + c = o.map(function(e, r) { + return +t.call(n, e, r); + }), + f = +('function' == typeof r ? r.apply(this, arguments) : r), + s = ('function' == typeof i ? i.apply(this, arguments) : i) - f, + h = Math.min( + Math.abs(s) / l, + +('function' == typeof u ? u.apply(this, arguments) : u) + ), + p = h * (0 > s ? -1 : 1), + g = ao.sum(c), + v = g ? (s - l * p) / g : 0, + d = ao.range(l), + y = []; + return ( + null != e && + d.sort( + e === bl + ? function(n, t) { + return c[t] - c[n]; + } + : function(n, t) { + return e(o[n], o[t]); + } + ), + d.forEach(function(n) { + y[n] = { + data: o[n], + value: (a = c[n]), + startAngle: f, + endAngle: (f += a * v + p), + padAngle: h + }; + }), + y + ); + } + var t = Number, + e = bl, + r = 0, + i = Ho, + u = 0; + return ( + (n.value = function(e) { + return arguments.length ? ((t = e), n) : t; + }), + (n.sort = function(t) { + return arguments.length ? ((e = t), n) : e; + }), + (n.startAngle = function(t) { + return arguments.length ? ((r = t), n) : r; + }), + (n.endAngle = function(t) { + return arguments.length ? ((i = t), n) : i; + }), + (n.padAngle = function(t) { + return arguments.length ? ((u = t), n) : u; + }), + n + ); + }); + var bl = {}; + ao.layout.stack = function() { + function n(a, l) { + if (!(h = a.length)) return a; + var c = a.map(function(e, r) { + return t.call(n, e, r); + }), + f = c.map(function(t) { + return t.map(function(t, e) { + return [u.call(n, t, e), o.call(n, t, e)]; + }); + }), + s = e.call(n, f, l); + (c = ao.permute(c, s)), (f = ao.permute(f, s)); + var h, + p, + g, + v, + d = r.call(n, f, l), + y = c[0].length; + for (g = 0; y > g; ++g) + for (i.call(n, c[0][g], (v = d[g]), f[0][g][1]), p = 1; h > p; ++p) + i.call(n, c[p][g], (v += f[p - 1][g][1]), f[p][g][1]); + return a; + } + var t = m, + e = gi, + r = vi, + i = pi, + u = si, + o = hi; + return ( + (n.values = function(e) { + return arguments.length ? ((t = e), n) : t; + }), + (n.order = function(t) { + return arguments.length + ? ((e = 'function' == typeof t ? t : _l.get(t) || gi), n) + : e; + }), + (n.offset = function(t) { + return arguments.length + ? ((r = 'function' == typeof t ? t : wl.get(t) || vi), n) + : r; + }), + (n.x = function(t) { + return arguments.length ? ((u = t), n) : u; + }), + (n.y = function(t) { + return arguments.length ? ((o = t), n) : o; + }), + (n.out = function(t) { + return arguments.length ? ((i = t), n) : i; + }), + n + ); + }; + var _l = ao.map({ + 'inside-out': function(n) { + var t, + e, + r = n.length, + i = n.map(di), + u = n.map(yi), + o = ao.range(r).sort(function(n, t) { + return i[n] - i[t]; + }), + a = 0, + l = 0, + c = [], + f = []; + for (t = 0; r > t; ++t) + (e = o[t]), + l > a ? ((a += u[e]), c.push(e)) : ((l += u[e]), f.push(e)); + return f.reverse().concat(c); + }, + reverse: function(n) { + return ao.range(n.length).reverse(); + }, + default: gi + }), + wl = ao.map({ + silhouette: function(n) { + var t, + e, + r, + i = n.length, + u = n[0].length, + o = [], + a = 0, + l = []; + for (e = 0; u > e; ++e) { + for (t = 0, r = 0; i > t; t++) r += n[t][e][1]; + r > a && (a = r), o.push(r); + } + for (e = 0; u > e; ++e) l[e] = (a - o[e]) / 2; + return l; + }, + wiggle: function(n) { + var t, + e, + r, + i, + u, + o, + a, + l, + c, + f = n.length, + s = n[0], + h = s.length, + p = []; + for (p[0] = l = c = 0, e = 1; h > e; ++e) { + for (t = 0, i = 0; f > t; ++t) i += n[t][e][1]; + for (t = 0, u = 0, a = s[e][0] - s[e - 1][0]; f > t; ++t) { + for (r = 0, o = (n[t][e][1] - n[t][e - 1][1]) / (2 * a); t > r; ++r) + o += (n[r][e][1] - n[r][e - 1][1]) / a; + u += o * n[t][e][1]; + } + (p[e] = l -= i ? (u / i) * a : 0), c > l && (c = l); + } + for (e = 0; h > e; ++e) p[e] -= c; + return p; + }, + expand: function(n) { + var t, + e, + r, + i = n.length, + u = n[0].length, + o = 1 / i, + a = []; + for (e = 0; u > e; ++e) { + for (t = 0, r = 0; i > t; t++) r += n[t][e][1]; + if (r) for (t = 0; i > t; t++) n[t][e][1] /= r; + else for (t = 0; i > t; t++) n[t][e][1] = o; + } + for (e = 0; u > e; ++e) a[e] = 0; + return a; + }, + zero: vi + }); + (ao.layout.histogram = function() { + function n(n, u) { + for ( + var o, + a, + l = [], + c = n.map(e, this), + f = r.call(this, c, u), + s = i.call(this, f, c, u), + u = -1, + h = c.length, + p = s.length - 1, + g = t ? 1 : 1 / h; + ++u < p; + + ) + (o = l[u] = []), (o.dx = s[u + 1] - (o.x = s[u])), (o.y = 0); + if (p > 0) + for (u = -1; ++u < h; ) + (a = c[u]), + a >= f[0] && + a <= f[1] && + ((o = l[ao.bisect(s, a, 1, p) - 1]), (o.y += g), o.push(n[u])); + return l; + } + var t = !0, + e = Number, + r = bi, + i = Mi; + return ( + (n.value = function(t) { + return arguments.length ? ((e = t), n) : e; + }), + (n.range = function(t) { + return arguments.length ? ((r = En(t)), n) : r; + }), + (n.bins = function(t) { + return arguments.length + ? ((i = + 'number' == typeof t + ? function(n) { + return xi(n, t); + } + : En(t)), + n) + : i; + }), + (n.frequency = function(e) { + return arguments.length ? ((t = !!e), n) : t; + }), + n + ); + }), + (ao.layout.pack = function() { + function n(n, u) { + var o = e.call(this, n, u), + a = o[0], + l = i[0], + c = i[1], + f = + null == t + ? Math.sqrt + : 'function' == typeof t + ? t + : function() { + return t; + }; + if ( + ((a.x = a.y = 0), + oi(a, function(n) { + n.r = +f(n.value); + }), + oi(a, Ni), + r) + ) { + var s = (r * (t ? 1 : Math.max((2 * a.r) / l, (2 * a.r) / c))) / 2; + oi(a, function(n) { + n.r += s; + }), + oi(a, Ni), + oi(a, function(n) { + n.r -= s; + }); + } + return ( + Ci( + a, + l / 2, + c / 2, + t ? 1 : 1 / Math.max((2 * a.r) / l, (2 * a.r) / c) + ), + o + ); + } + var t, + e = ao.layout.hierarchy().sort(_i), + r = 0, + i = [1, 1]; + return ( + (n.size = function(t) { + return arguments.length ? ((i = t), n) : i; + }), + (n.radius = function(e) { + return arguments.length + ? ((t = null == e || 'function' == typeof e ? e : +e), n) + : t; + }), + (n.padding = function(t) { + return arguments.length ? ((r = +t), n) : r; + }), + ii(n, e) + ); + }), + (ao.layout.tree = function() { + function n(n, i) { + var f = o.call(this, n, i), + s = f[0], + h = t(s); + if ((oi(h, e), (h.parent.m = -h.z), ui(h, r), c)) ui(s, u); + else { + var p = s, + g = s, + v = s; + ui(s, function(n) { + n.x < p.x && (p = n), + n.x > g.x && (g = n), + n.depth > v.depth && (v = n); + }); + var d = a(p, g) / 2 - p.x, + y = l[0] / (g.x + a(g, p) / 2 + d), + m = l[1] / (v.depth || 1); + ui(s, function(n) { + (n.x = (n.x + d) * y), (n.y = n.depth * m); + }); + } + return f; + } + function t(n) { + for ( + var t, e = { A: null, children: [n] }, r = [e]; + null != (t = r.pop()); + + ) + for (var i, u = t.children, o = 0, a = u.length; a > o; ++o) + r.push( + ((u[o] = i = { + _: u[o], + parent: t, + children: ((i = u[o].children) && i.slice()) || [], + A: null, + a: null, + z: 0, + m: 0, + c: 0, + s: 0, + t: null, + i: o + }).a = i) + ); + return e.children[0]; + } + function e(n) { + var t = n.children, + e = n.parent.children, + r = n.i ? e[n.i - 1] : null; + if (t.length) { + Di(n); + var u = (t[0].z + t[t.length - 1].z) / 2; + r ? ((n.z = r.z + a(n._, r._)), (n.m = n.z - u)) : (n.z = u); + } else r && (n.z = r.z + a(n._, r._)); + n.parent.A = i(n, r, n.parent.A || e[0]); + } + function r(n) { + (n._.x = n.z + n.parent.m), (n.m += n.parent.m); + } + function i(n, t, e) { + if (t) { + for ( + var r, + i = n, + u = n, + o = t, + l = i.parent.children[0], + c = i.m, + f = u.m, + s = o.m, + h = l.m; + (o = Ti(o)), (i = qi(i)), o && i; + + ) + (l = qi(l)), + (u = Ti(u)), + (u.a = n), + (r = o.z + s - i.z - c + a(o._, i._)), + r > 0 && (Ri(Pi(o, n, e), n, r), (c += r), (f += r)), + (s += o.m), + (c += i.m), + (h += l.m), + (f += u.m); + o && !Ti(u) && ((u.t = o), (u.m += s - f)), + i && !qi(l) && ((l.t = i), (l.m += c - h), (e = n)); + } + return e; + } + function u(n) { + (n.x *= l[0]), (n.y = n.depth * l[1]); + } + var o = ao.layout + .hierarchy() + .sort(null) + .value(null), + a = Li, + l = [1, 1], + c = null; + return ( + (n.separation = function(t) { + return arguments.length ? ((a = t), n) : a; + }), + (n.size = function(t) { + return arguments.length + ? ((c = null == (l = t) ? u : null), n) + : c + ? null + : l; + }), + (n.nodeSize = function(t) { + return arguments.length + ? ((c = null == (l = t) ? null : u), n) + : c + ? l + : null; + }), + ii(n, o) + ); + }), + (ao.layout.cluster = function() { + function n(n, u) { + var o, + a = t.call(this, n, u), + l = a[0], + c = 0; + oi(l, function(n) { + var t = n.children; + t && t.length + ? ((n.x = ji(t)), (n.y = Ui(t))) + : ((n.x = o ? (c += e(n, o)) : 0), (n.y = 0), (o = n)); + }); + var f = Fi(l), + s = Hi(l), + h = f.x - e(f, s) / 2, + p = s.x + e(s, f) / 2; + return ( + oi( + l, + i + ? function(n) { + (n.x = (n.x - l.x) * r[0]), (n.y = (l.y - n.y) * r[1]); + } + : function(n) { + (n.x = ((n.x - h) / (p - h)) * r[0]), + (n.y = (1 - (l.y ? n.y / l.y : 1)) * r[1]); + } + ), + a + ); + } + var t = ao.layout + .hierarchy() + .sort(null) + .value(null), + e = Li, + r = [1, 1], + i = !1; + return ( + (n.separation = function(t) { + return arguments.length ? ((e = t), n) : e; + }), + (n.size = function(t) { + return arguments.length ? ((i = null == (r = t)), n) : i ? null : r; + }), + (n.nodeSize = function(t) { + return arguments.length ? ((i = null != (r = t)), n) : i ? r : null; + }), + ii(n, t) + ); + }), + (ao.layout.treemap = function() { + function n(n, t) { + for (var e, r, i = -1, u = n.length; ++i < u; ) + (r = (e = n[i]).value * (0 > t ? 0 : t)), + (e.area = isNaN(r) || 0 >= r ? 0 : r); + } + function t(e) { + var u = e.children; + if (u && u.length) { + var o, + a, + l, + c = s(e), + f = [], + h = u.slice(), + g = 1 / 0, + v = + 'slice' === p + ? c.dx + : 'dice' === p + ? c.dy + : 'slice-dice' === p + ? 1 & e.depth + ? c.dy + : c.dx + : Math.min(c.dx, c.dy); + for (n(h, (c.dx * c.dy) / e.value), f.area = 0; (l = h.length) > 0; ) + f.push((o = h[l - 1])), + (f.area += o.area), + 'squarify' !== p || (a = r(f, v)) <= g + ? (h.pop(), (g = a)) + : ((f.area -= f.pop().area), + i(f, v, c, !1), + (v = Math.min(c.dx, c.dy)), + (f.length = f.area = 0), + (g = 1 / 0)); + f.length && (i(f, v, c, !0), (f.length = f.area = 0)), u.forEach(t); + } + } + function e(t) { + var r = t.children; + if (r && r.length) { + var u, + o = s(t), + a = r.slice(), + l = []; + for (n(a, (o.dx * o.dy) / t.value), l.area = 0; (u = a.pop()); ) + l.push(u), + (l.area += u.area), + null != u.z && + (i(l, u.z ? o.dx : o.dy, o, !a.length), + (l.length = l.area = 0)); + r.forEach(e); + } + } + function r(n, t) { + for ( + var e, r = n.area, i = 0, u = 1 / 0, o = -1, a = n.length; + ++o < a; + + ) + (e = n[o].area) && (u > e && (u = e), e > i && (i = e)); + return ( + (r *= r), + (t *= t), + r ? Math.max((t * i * g) / r, r / (t * u * g)) : 1 / 0 + ); + } + function i(n, t, e, r) { + var i, + u = -1, + o = n.length, + a = e.x, + c = e.y, + f = t ? l(n.area / t) : 0; + if (t == e.dx) { + for ((r || f > e.dy) && (f = e.dy); ++u < o; ) + (i = n[u]), + (i.x = a), + (i.y = c), + (i.dy = f), + (a += i.dx = Math.min(e.x + e.dx - a, f ? l(i.area / f) : 0)); + (i.z = !0), (i.dx += e.x + e.dx - a), (e.y += f), (e.dy -= f); + } else { + for ((r || f > e.dx) && (f = e.dx); ++u < o; ) + (i = n[u]), + (i.x = a), + (i.y = c), + (i.dx = f), + (c += i.dy = Math.min(e.y + e.dy - c, f ? l(i.area / f) : 0)); + (i.z = !1), (i.dy += e.y + e.dy - c), (e.x += f), (e.dx -= f); + } + } + function u(r) { + var i = o || a(r), + u = i[0]; + return ( + (u.x = u.y = 0), + u.value ? ((u.dx = c[0]), (u.dy = c[1])) : (u.dx = u.dy = 0), + o && a.revalue(u), + n([u], (u.dx * u.dy) / u.value), + (o ? e : t)(u), + h && (o = i), + i + ); + } + var o, + a = ao.layout.hierarchy(), + l = Math.round, + c = [1, 1], + f = null, + s = Oi, + h = !1, + p = 'squarify', + g = 0.5 * (1 + Math.sqrt(5)); + return ( + (u.size = function(n) { + return arguments.length ? ((c = n), u) : c; + }), + (u.padding = function(n) { + function t(t) { + var e = n.call(u, t, t.depth); + return null == e + ? Oi(t) + : Ii(t, 'number' == typeof e ? [e, e, e, e] : e); + } + function e(t) { + return Ii(t, n); + } + if (!arguments.length) return f; + var r; + return ( + (s = + null == (f = n) + ? Oi + : 'function' == (r = typeof n) + ? t + : 'number' === r + ? ((n = [n, n, n, n]), e) + : e), + u + ); + }), + (u.round = function(n) { + return arguments.length + ? ((l = n ? Math.round : Number), u) + : l != Number; + }), + (u.sticky = function(n) { + return arguments.length ? ((h = n), (o = null), u) : h; + }), + (u.ratio = function(n) { + return arguments.length ? ((g = n), u) : g; + }), + (u.mode = function(n) { + return arguments.length ? ((p = n + ''), u) : p; + }), + ii(u, a) + ); + }), + (ao.random = { + normal: function(n, t) { + var e = arguments.length; + return ( + 2 > e && (t = 1), + 1 > e && (n = 0), + function() { + var e, r, i; + do + (e = 2 * Math.random() - 1), + (r = 2 * Math.random() - 1), + (i = e * e + r * r); + while (!i || i > 1); + return n + t * e * Math.sqrt((-2 * Math.log(i)) / i); + } + ); + }, + logNormal: function() { + var n = ao.random.normal.apply(ao, arguments); + return function() { + return Math.exp(n()); + }; + }, + bates: function(n) { + var t = ao.random.irwinHall(n); + return function() { + return t() / n; + }; + }, + irwinHall: function(n) { + return function() { + for (var t = 0, e = 0; n > e; e++) t += Math.random(); + return t; + }; + } + }), + (ao.scale = {}); + var Sl = { floor: m, ceil: m }; + ao.scale.linear = function() { + return Wi([0, 1], [0, 1], Mr, !1); + }; + var kl = { s: 1, g: 1, p: 1, r: 1, e: 1 }; + ao.scale.log = function() { + return ru(ao.scale.linear().domain([0, 1]), 10, !0, [1, 10]); + }; + var Nl = ao.format('.0e'), + El = { + floor: function(n) { + return -Math.ceil(-n); + }, + ceil: function(n) { + return -Math.floor(-n); + } + }; + (ao.scale.pow = function() { + return iu(ao.scale.linear(), 1, [0, 1]); + }), + (ao.scale.sqrt = function() { + return ao.scale.pow().exponent(0.5); + }), + (ao.scale.ordinal = function() { + return ou([], { t: 'range', a: [[]] }); + }), + (ao.scale.category10 = function() { + return ao.scale.ordinal().range(Al); + }), + (ao.scale.category20 = function() { + return ao.scale.ordinal().range(Cl); + }), + (ao.scale.category20b = function() { + return ao.scale.ordinal().range(zl); + }), + (ao.scale.category20c = function() { + return ao.scale.ordinal().range(Ll); + }); + var Al = [ + 2062260, + 16744206, + 2924588, + 14034728, + 9725885, + 9197131, + 14907330, + 8355711, + 12369186, + 1556175 + ].map(xn), + Cl = [ + 2062260, + 11454440, + 16744206, + 16759672, + 2924588, + 10018698, + 14034728, + 16750742, + 9725885, + 12955861, + 9197131, + 12885140, + 14907330, + 16234194, + 8355711, + 13092807, + 12369186, + 14408589, + 1556175, + 10410725 + ].map(xn), + zl = [ + 3750777, + 5395619, + 7040719, + 10264286, + 6519097, + 9216594, + 11915115, + 13556636, + 9202993, + 12426809, + 15186514, + 15190932, + 8666169, + 11356490, + 14049643, + 15177372, + 8077683, + 10834324, + 13528509, + 14589654 + ].map(xn), + Ll = [ + 3244733, + 7057110, + 10406625, + 13032431, + 15095053, + 16616764, + 16625259, + 16634018, + 3253076, + 7652470, + 10607003, + 13101504, + 7695281, + 10394312, + 12369372, + 14342891, + 6513507, + 9868950, + 12434877, + 14277081 + ].map(xn); + (ao.scale.quantile = function() { + return au([], []); + }), + (ao.scale.quantize = function() { + return lu(0, 1, [0, 1]); + }), + (ao.scale.threshold = function() { + return cu([0.5], [0, 1]); + }), + (ao.scale.identity = function() { + return fu([0, 1]); + }), + (ao.svg = {}), + (ao.svg.arc = function() { + function n() { + var n = Math.max(0, +e.apply(this, arguments)), + c = Math.max(0, +r.apply(this, arguments)), + f = o.apply(this, arguments) - Io, + s = a.apply(this, arguments) - Io, + h = Math.abs(s - f), + p = f > s ? 0 : 1; + if ((n > c && ((g = c), (c = n), (n = g)), h >= Oo)) + return t(c, p) + (n ? t(n, 1 - p) : '') + 'Z'; + var g, + v, + d, + y, + m, + M, + x, + b, + _, + w, + S, + k, + N = 0, + E = 0, + A = []; + if ( + ((y = (+l.apply(this, arguments) || 0) / 2) && + ((d = + u === ql ? Math.sqrt(n * n + c * c) : +u.apply(this, arguments)), + p || (E *= -1), + c && (E = tn((d / c) * Math.sin(y))), + n && (N = tn((d / n) * Math.sin(y)))), + c) + ) { + (m = c * Math.cos(f + E)), + (M = c * Math.sin(f + E)), + (x = c * Math.cos(s - E)), + (b = c * Math.sin(s - E)); + var C = Math.abs(s - f - 2 * E) <= Fo ? 0 : 1; + if (E && (yu(m, M, x, b) === p) ^ C) { + var z = (f + s) / 2; + (m = c * Math.cos(z)), (M = c * Math.sin(z)), (x = b = null); + } + } else m = M = 0; + if (n) { + (_ = n * Math.cos(s - N)), + (w = n * Math.sin(s - N)), + (S = n * Math.cos(f + N)), + (k = n * Math.sin(f + N)); + var L = Math.abs(f - s + 2 * N) <= Fo ? 0 : 1; + if (N && (yu(_, w, S, k) === 1 - p) ^ L) { + var q = (f + s) / 2; + (_ = n * Math.cos(q)), (w = n * Math.sin(q)), (S = k = null); + } + } else _ = w = 0; + if ( + h > Uo && + (g = Math.min(Math.abs(c - n) / 2, +i.apply(this, arguments))) > 0.001 + ) { + v = (c > n) ^ p ? 0 : 1; + var T = g, + R = g; + if (Fo > h) { + var D = + null == S + ? [_, w] + : null == x + ? [m, M] + : Re([m, M], [S, k], [x, b], [_, w]), + P = m - D[0], + U = M - D[1], + j = x - D[0], + F = b - D[1], + H = + 1 / + Math.sin( + Math.acos( + (P * j + U * F) / + (Math.sqrt(P * P + U * U) * Math.sqrt(j * j + F * F)) + ) / 2 + ), + O = Math.sqrt(D[0] * D[0] + D[1] * D[1]); + (R = Math.min(g, (n - O) / (H - 1))), + (T = Math.min(g, (c - O) / (H + 1))); + } + if (null != x) { + var I = mu(null == S ? [_, w] : [S, k], [m, M], c, T, p), + Y = mu([x, b], [_, w], c, T, p); + g === T + ? A.push( + 'M', + I[0], + 'A', + T, + ',', + T, + ' 0 0,', + v, + ' ', + I[1], + 'A', + c, + ',', + c, + ' 0 ', + (1 - p) ^ yu(I[1][0], I[1][1], Y[1][0], Y[1][1]), + ',', + p, + ' ', + Y[1], + 'A', + T, + ',', + T, + ' 0 0,', + v, + ' ', + Y[0] + ) + : A.push('M', I[0], 'A', T, ',', T, ' 0 1,', v, ' ', Y[0]); + } else A.push('M', m, ',', M); + if (null != S) { + var Z = mu([m, M], [S, k], n, -R, p), + V = mu([_, w], null == x ? [m, M] : [x, b], n, -R, p); + g === R + ? A.push( + 'L', + V[0], + 'A', + R, + ',', + R, + ' 0 0,', + v, + ' ', + V[1], + 'A', + n, + ',', + n, + ' 0 ', + p ^ yu(V[1][0], V[1][1], Z[1][0], Z[1][1]), + ',', + 1 - p, + ' ', + Z[1], + 'A', + R, + ',', + R, + ' 0 0,', + v, + ' ', + Z[0] + ) + : A.push('L', V[0], 'A', R, ',', R, ' 0 0,', v, ' ', Z[0]); + } else A.push('L', _, ',', w); + } else + A.push('M', m, ',', M), + null != x && + A.push('A', c, ',', c, ' 0 ', C, ',', p, ' ', x, ',', b), + A.push('L', _, ',', w), + null != S && + A.push('A', n, ',', n, ' 0 ', L, ',', 1 - p, ' ', S, ',', k); + return A.push('Z'), A.join(''); + } + function t(n, t) { + return ( + 'M0,' + + n + + 'A' + + n + + ',' + + n + + ' 0 1,' + + t + + ' 0,' + + -n + + 'A' + + n + + ',' + + n + + ' 0 1,' + + t + + ' 0,' + + n + ); + } + var e = hu, + r = pu, + i = su, + u = ql, + o = gu, + a = vu, + l = du; + return ( + (n.innerRadius = function(t) { + return arguments.length ? ((e = En(t)), n) : e; + }), + (n.outerRadius = function(t) { + return arguments.length ? ((r = En(t)), n) : r; + }), + (n.cornerRadius = function(t) { + return arguments.length ? ((i = En(t)), n) : i; + }), + (n.padRadius = function(t) { + return arguments.length ? ((u = t == ql ? ql : En(t)), n) : u; + }), + (n.startAngle = function(t) { + return arguments.length ? ((o = En(t)), n) : o; + }), + (n.endAngle = function(t) { + return arguments.length ? ((a = En(t)), n) : a; + }), + (n.padAngle = function(t) { + return arguments.length ? ((l = En(t)), n) : l; + }), + (n.centroid = function() { + var n = (+e.apply(this, arguments) + +r.apply(this, arguments)) / 2, + t = + (+o.apply(this, arguments) + +a.apply(this, arguments)) / 2 - Io; + return [Math.cos(t) * n, Math.sin(t) * n]; + }), + n + ); + }); + var ql = 'auto'; + ao.svg.line = function() { + return Mu(m); + }; + var Tl = ao.map({ + linear: xu, + 'linear-closed': bu, + step: _u, + 'step-before': wu, + 'step-after': Su, + basis: zu, + 'basis-open': Lu, + 'basis-closed': qu, + bundle: Tu, + cardinal: Eu, + 'cardinal-open': ku, + 'cardinal-closed': Nu, + monotone: Fu + }); + Tl.forEach(function(n, t) { + (t.key = n), (t.closed = /-closed$/.test(n)); + }); + var Rl = [0, 2 / 3, 1 / 3, 0], + Dl = [0, 1 / 3, 2 / 3, 0], + Pl = [0, 1 / 6, 2 / 3, 1 / 6]; + (ao.svg.line.radial = function() { + var n = Mu(Hu); + return (n.radius = n.x), delete n.x, (n.angle = n.y), delete n.y, n; + }), + (wu.reverse = Su), + (Su.reverse = wu), + (ao.svg.area = function() { + return Ou(m); + }), + (ao.svg.area.radial = function() { + var n = Ou(Hu); + return ( + (n.radius = n.x), + delete n.x, + (n.innerRadius = n.x0), + delete n.x0, + (n.outerRadius = n.x1), + delete n.x1, + (n.angle = n.y), + delete n.y, + (n.startAngle = n.y0), + delete n.y0, + (n.endAngle = n.y1), + delete n.y1, + n + ); + }), + (ao.svg.chord = function() { + function n(n, a) { + var l = t(this, u, n, a), + c = t(this, o, n, a); + return ( + 'M' + + l.p0 + + r(l.r, l.p1, l.a1 - l.a0) + + (e(l, c) + ? i(l.r, l.p1, l.r, l.p0) + : i(l.r, l.p1, c.r, c.p0) + + r(c.r, c.p1, c.a1 - c.a0) + + i(c.r, c.p1, l.r, l.p0)) + + 'Z' + ); + } + function t(n, t, e, r) { + var i = t.call(n, e, r), + u = a.call(n, i, r), + o = l.call(n, i, r) - Io, + f = c.call(n, i, r) - Io; + return { + r: u, + a0: o, + a1: f, + p0: [u * Math.cos(o), u * Math.sin(o)], + p1: [u * Math.cos(f), u * Math.sin(f)] + }; + } + function e(n, t) { + return n.a0 == t.a0 && n.a1 == t.a1; + } + function r(n, t, e) { + return 'A' + n + ',' + n + ' 0 ' + +(e > Fo) + ',1 ' + t; + } + function i(n, t, e, r) { + return 'Q 0,0 ' + r; + } + var u = Me, + o = xe, + a = Iu, + l = gu, + c = vu; + return ( + (n.radius = function(t) { + return arguments.length ? ((a = En(t)), n) : a; + }), + (n.source = function(t) { + return arguments.length ? ((u = En(t)), n) : u; + }), + (n.target = function(t) { + return arguments.length ? ((o = En(t)), n) : o; + }), + (n.startAngle = function(t) { + return arguments.length ? ((l = En(t)), n) : l; + }), + (n.endAngle = function(t) { + return arguments.length ? ((c = En(t)), n) : c; + }), + n + ); + }), + (ao.svg.diagonal = function() { + function n(n, i) { + var u = t.call(this, n, i), + o = e.call(this, n, i), + a = (u.y + o.y) / 2, + l = [u, { x: u.x, y: a }, { x: o.x, y: a }, o]; + return ( + (l = l.map(r)), 'M' + l[0] + 'C' + l[1] + ' ' + l[2] + ' ' + l[3] + ); + } + var t = Me, + e = xe, + r = Yu; + return ( + (n.source = function(e) { + return arguments.length ? ((t = En(e)), n) : t; + }), + (n.target = function(t) { + return arguments.length ? ((e = En(t)), n) : e; + }), + (n.projection = function(t) { + return arguments.length ? ((r = t), n) : r; + }), + n + ); + }), + (ao.svg.diagonal.radial = function() { + var n = ao.svg.diagonal(), + t = Yu, + e = n.projection; + return ( + (n.projection = function(n) { + return arguments.length ? e(Zu((t = n))) : t; + }), + n + ); + }), + (ao.svg.symbol = function() { + function n(n, r) { + return (Ul.get(t.call(this, n, r)) || $u)(e.call(this, n, r)); + } + var t = Xu, + e = Vu; + return ( + (n.type = function(e) { + return arguments.length ? ((t = En(e)), n) : t; + }), + (n.size = function(t) { + return arguments.length ? ((e = En(t)), n) : e; + }), + n + ); + }); + var Ul = ao.map({ + circle: $u, + cross: function(n) { + var t = Math.sqrt(n / 5) / 2; + return ( + 'M' + + -3 * t + + ',' + + -t + + 'H' + + -t + + 'V' + + -3 * t + + 'H' + + t + + 'V' + + -t + + 'H' + + 3 * t + + 'V' + + t + + 'H' + + t + + 'V' + + 3 * t + + 'H' + + -t + + 'V' + + t + + 'H' + + -3 * t + + 'Z' + ); + }, + diamond: function(n) { + var t = Math.sqrt(n / (2 * Fl)), + e = t * Fl; + return 'M0,' + -t + 'L' + e + ',0 0,' + t + ' ' + -e + ',0Z'; + }, + square: function(n) { + var t = Math.sqrt(n) / 2; + return ( + 'M' + + -t + + ',' + + -t + + 'L' + + t + + ',' + + -t + + ' ' + + t + + ',' + + t + + ' ' + + -t + + ',' + + t + + 'Z' + ); + }, + 'triangle-down': function(n) { + var t = Math.sqrt(n / jl), + e = (t * jl) / 2; + return 'M0,' + e + 'L' + t + ',' + -e + ' ' + -t + ',' + -e + 'Z'; + }, + 'triangle-up': function(n) { + var t = Math.sqrt(n / jl), + e = (t * jl) / 2; + return 'M0,' + -e + 'L' + t + ',' + e + ' ' + -t + ',' + e + 'Z'; + } + }); + ao.svg.symbolTypes = Ul.keys(); + var jl = Math.sqrt(3), + Fl = Math.tan(30 * Yo); + (Co.transition = function(n) { + for ( + var t, + e, + r = Hl || ++Zl, + i = Ku(n), + u = [], + o = Ol || { time: Date.now(), ease: Nr, delay: 0, duration: 250 }, + a = -1, + l = this.length; + ++a < l; + + ) { + u.push((t = [])); + for (var c = this[a], f = -1, s = c.length; ++f < s; ) + (e = c[f]) && Qu(e, f, i, r, o), t.push(e); + } + return Wu(u, i, r); + }), + (Co.interrupt = function(n) { + return this.each(null == n ? Il : Bu(Ku(n))); + }); + var Hl, + Ol, + Il = Bu(Ku()), + Yl = [], + Zl = 0; + (Yl.call = Co.call), + (Yl.empty = Co.empty), + (Yl.node = Co.node), + (Yl.size = Co.size), + (ao.transition = function(n, t) { + return n && n.transition + ? Hl + ? n.transition(t) + : n + : ao.selection().transition(n); + }), + (ao.transition.prototype = Yl), + (Yl.select = function(n) { + var t, + e, + r, + i = this.id, + u = this.namespace, + o = []; + n = A(n); + for (var a = -1, l = this.length; ++a < l; ) { + o.push((t = [])); + for (var c = this[a], f = -1, s = c.length; ++f < s; ) + (r = c[f]) && (e = n.call(r, r.__data__, f, a)) + ? ('__data__' in r && (e.__data__ = r.__data__), + Qu(e, f, u, i, r[u][i]), + t.push(e)) + : t.push(null); + } + return Wu(o, u, i); + }), + (Yl.selectAll = function(n) { + var t, + e, + r, + i, + u, + o = this.id, + a = this.namespace, + l = []; + n = C(n); + for (var c = -1, f = this.length; ++c < f; ) + for (var s = this[c], h = -1, p = s.length; ++h < p; ) + if ((r = s[h])) { + (u = r[a][o]), (e = n.call(r, r.__data__, h, c)), l.push((t = [])); + for (var g = -1, v = e.length; ++g < v; ) + (i = e[g]) && Qu(i, g, a, o, u), t.push(i); + } + return Wu(l, a, o); + }), + (Yl.filter = function(n) { + var t, + e, + r, + i = []; + 'function' != typeof n && (n = O(n)); + for (var u = 0, o = this.length; o > u; u++) { + i.push((t = [])); + for (var e = this[u], a = 0, l = e.length; l > a; a++) + (r = e[a]) && n.call(r, r.__data__, a, u) && t.push(r); + } + return Wu(i, this.namespace, this.id); + }), + (Yl.tween = function(n, t) { + var e = this.id, + r = this.namespace; + return arguments.length < 2 + ? this.node()[r][e].tween.get(n) + : Y( + this, + null == t + ? function(t) { + t[r][e].tween.remove(n); + } + : function(i) { + i[r][e].tween.set(n, t); + } + ); + }), + (Yl.attr = function(n, t) { + function e() { + this.removeAttribute(a); + } + function r() { + this.removeAttributeNS(a.space, a.local); + } + function i(n) { + return null == n + ? e + : ((n += ''), + function() { + var t, + e = this.getAttribute(a); + return ( + e !== n && + ((t = o(e, n)), + function(n) { + this.setAttribute(a, t(n)); + }) + ); + }); + } + function u(n) { + return null == n + ? r + : ((n += ''), + function() { + var t, + e = this.getAttributeNS(a.space, a.local); + return ( + e !== n && + ((t = o(e, n)), + function(n) { + this.setAttributeNS(a.space, a.local, t(n)); + }) + ); + }); + } + if (arguments.length < 2) { + for (t in n) this.attr(t, n[t]); + return this; + } + var o = 'transform' == n ? $r : Mr, + a = ao.ns.qualify(n); + return Ju(this, 'attr.' + n, t, a.local ? u : i); + }), + (Yl.attrTween = function(n, t) { + function e(n, e) { + var r = t.call(this, n, e, this.getAttribute(i)); + return ( + r && + function(n) { + this.setAttribute(i, r(n)); + } + ); + } + function r(n, e) { + var r = t.call(this, n, e, this.getAttributeNS(i.space, i.local)); + return ( + r && + function(n) { + this.setAttributeNS(i.space, i.local, r(n)); + } + ); + } + var i = ao.ns.qualify(n); + return this.tween('attr.' + n, i.local ? r : e); + }), + (Yl.style = function(n, e, r) { + function i() { + this.style.removeProperty(n); + } + function u(e) { + return null == e + ? i + : ((e += ''), + function() { + var i, + u = t(this) + .getComputedStyle(this, null) + .getPropertyValue(n); + return ( + u !== e && + ((i = Mr(u, e)), + function(t) { + this.style.setProperty(n, i(t), r); + }) + ); + }); + } + var o = arguments.length; + if (3 > o) { + if ('string' != typeof n) { + 2 > o && (e = ''); + for (r in n) this.style(r, n[r], e); + return this; + } + r = ''; + } + return Ju(this, 'style.' + n, e, u); + }), + (Yl.styleTween = function(n, e, r) { + function i(i, u) { + var o = e.call( + this, + i, + u, + t(this) + .getComputedStyle(this, null) + .getPropertyValue(n) + ); + return ( + o && + function(t) { + this.style.setProperty(n, o(t), r); + } + ); + } + return arguments.length < 3 && (r = ''), this.tween('style.' + n, i); + }), + (Yl.text = function(n) { + return Ju(this, 'text', n, Gu); + }), + (Yl.remove = function() { + var n = this.namespace; + return this.each('end.transition', function() { + var t; + this[n].count < 2 && (t = this.parentNode) && t.removeChild(this); + }); + }), + (Yl.ease = function(n) { + var t = this.id, + e = this.namespace; + return arguments.length < 1 + ? this.node()[e][t].ease + : ('function' != typeof n && (n = ao.ease.apply(ao, arguments)), + Y(this, function(r) { + r[e][t].ease = n; + })); + }), + (Yl.delay = function(n) { + var t = this.id, + e = this.namespace; + return arguments.length < 1 + ? this.node()[e][t].delay + : Y( + this, + 'function' == typeof n + ? function(r, i, u) { + r[e][t].delay = +n.call(r, r.__data__, i, u); + } + : ((n = +n), + function(r) { + r[e][t].delay = n; + }) + ); + }), + (Yl.duration = function(n) { + var t = this.id, + e = this.namespace; + return arguments.length < 1 + ? this.node()[e][t].duration + : Y( + this, + 'function' == typeof n + ? function(r, i, u) { + r[e][t].duration = Math.max(1, n.call(r, r.__data__, i, u)); + } + : ((n = Math.max(1, n)), + function(r) { + r[e][t].duration = n; + }) + ); + }), + (Yl.each = function(n, t) { + var e = this.id, + r = this.namespace; + if (arguments.length < 2) { + var i = Ol, + u = Hl; + try { + (Hl = e), + Y(this, function(t, i, u) { + (Ol = t[r][e]), n.call(t, t.__data__, i, u); + }); + } finally { + (Ol = i), (Hl = u); + } + } else + Y(this, function(i) { + var u = i[r][e]; + (u.event || (u.event = ao.dispatch('start', 'end', 'interrupt'))).on( + n, + t + ); + }); + return this; + }), + (Yl.transition = function() { + for ( + var n, + t, + e, + r, + i = this.id, + u = ++Zl, + o = this.namespace, + a = [], + l = 0, + c = this.length; + c > l; + l++ + ) { + a.push((n = [])); + for (var t = this[l], f = 0, s = t.length; s > f; f++) + (e = t[f]) && + ((r = e[o][i]), + Qu(e, f, o, u, { + time: r.time, + ease: r.ease, + delay: r.delay + r.duration, + duration: r.duration + })), + n.push(e); + } + return Wu(a, o, u); + }), + (ao.svg.axis = function() { + function n(n) { + n.each(function() { + var n, + c = ao.select(this), + f = this.__chart__ || e, + s = (this.__chart__ = e.copy()), + h = null == l ? (s.ticks ? s.ticks.apply(s, a) : s.domain()) : l, + p = null == t ? (s.tickFormat ? s.tickFormat.apply(s, a) : m) : t, + g = c.selectAll('.tick').data(h, s), + v = g + .enter() + .insert('g', '.domain') + .attr('class', 'tick') + .style('opacity', Uo), + d = ao + .transition(g.exit()) + .style('opacity', Uo) + .remove(), + y = ao.transition(g.order()).style('opacity', 1), + M = Math.max(i, 0) + o, + x = Zi(s), + b = c.selectAll('.domain').data([0]), + _ = (b + .enter() + .append('path') + .attr('class', 'domain'), + ao.transition(b)); + v.append('line'), v.append('text'); + var w, + S, + k, + N, + E = v.select('line'), + A = y.select('line'), + C = g.select('text').text(p), + z = v.select('text'), + L = y.select('text'), + q = 'top' === r || 'left' === r ? -1 : 1; + if ( + ('bottom' === r || 'top' === r + ? ((n = no), + (w = 'x'), + (k = 'y'), + (S = 'x2'), + (N = 'y2'), + C.attr('dy', 0 > q ? '0em' : '.71em').style( + 'text-anchor', + 'middle' + ), + _.attr( + 'd', + 'M' + x[0] + ',' + q * u + 'V0H' + x[1] + 'V' + q * u + )) + : ((n = to), + (w = 'y'), + (k = 'x'), + (S = 'y2'), + (N = 'x2'), + C.attr('dy', '.32em').style( + 'text-anchor', + 0 > q ? 'end' : 'start' + ), + _.attr( + 'd', + 'M' + q * u + ',' + x[0] + 'H0V' + x[1] + 'H' + q * u + )), + E.attr(N, q * i), + z.attr(k, q * M), + A.attr(S, 0).attr(N, q * i), + L.attr(w, 0).attr(k, q * M), + s.rangeBand) + ) { + var T = s, + R = T.rangeBand() / 2; + f = s = function(n) { + return T(n) + R; + }; + } else f.rangeBand ? (f = s) : d.call(n, s, f); + v.call(n, f, s), y.call(n, s, s); + }); + } + var t, + e = ao.scale.linear(), + r = Vl, + i = 6, + u = 6, + o = 3, + a = [10], + l = null; + return ( + (n.scale = function(t) { + return arguments.length ? ((e = t), n) : e; + }), + (n.orient = function(t) { + return arguments.length ? ((r = t in Xl ? t + '' : Vl), n) : r; + }), + (n.ticks = function() { + return arguments.length ? ((a = co(arguments)), n) : a; + }), + (n.tickValues = function(t) { + return arguments.length ? ((l = t), n) : l; + }), + (n.tickFormat = function(e) { + return arguments.length ? ((t = e), n) : t; + }), + (n.tickSize = function(t) { + var e = arguments.length; + return e ? ((i = +t), (u = +arguments[e - 1]), n) : i; + }), + (n.innerTickSize = function(t) { + return arguments.length ? ((i = +t), n) : i; + }), + (n.outerTickSize = function(t) { + return arguments.length ? ((u = +t), n) : u; + }), + (n.tickPadding = function(t) { + return arguments.length ? ((o = +t), n) : o; + }), + (n.tickSubdivide = function() { + return arguments.length && n; + }), + n + ); + }); + var Vl = 'bottom', + Xl = { top: 1, right: 1, bottom: 1, left: 1 }; + ao.svg.brush = function() { + function n(t) { + t.each(function() { + var t = ao + .select(this) + .style('pointer-events', 'all') + .style('-webkit-tap-highlight-color', 'rgba(0,0,0,0)') + .on('mousedown.brush', u) + .on('touchstart.brush', u), + o = t.selectAll('.background').data([0]); + o + .enter() + .append('rect') + .attr('class', 'background') + .style('visibility', 'hidden') + .style('cursor', 'crosshair'), + t + .selectAll('.extent') + .data([0]) + .enter() + .append('rect') + .attr('class', 'extent') + .style('cursor', 'move'); + var a = t.selectAll('.resize').data(v, m); + a.exit().remove(), + a + .enter() + .append('g') + .attr('class', function(n) { + return 'resize ' + n; + }) + .style('cursor', function(n) { + return $l[n]; + }) + .append('rect') + .attr('x', function(n) { + return /[ew]$/.test(n) ? -3 : null; + }) + .attr('y', function(n) { + return /^[ns]/.test(n) ? -3 : null; + }) + .attr('width', 6) + .attr('height', 6) + .style('visibility', 'hidden'), + a.style('display', n.empty() ? 'none' : null); + var l, + s = ao.transition(t), + h = ao.transition(o); + c && ((l = Zi(c)), h.attr('x', l[0]).attr('width', l[1] - l[0]), r(s)), + f && + ((l = Zi(f)), h.attr('y', l[0]).attr('height', l[1] - l[0]), i(s)), + e(s); + }); + } + function e(n) { + n.selectAll('.resize').attr('transform', function(n) { + return 'translate(' + s[+/e$/.test(n)] + ',' + h[+/^s/.test(n)] + ')'; + }); + } + function r(n) { + n.select('.extent').attr('x', s[0]), + n.selectAll('.extent,.n>rect,.s>rect').attr('width', s[1] - s[0]); + } + function i(n) { + n.select('.extent').attr('y', h[0]), + n.selectAll('.extent,.e>rect,.w>rect').attr('height', h[1] - h[0]); + } + function u() { + function u() { + 32 == ao.event.keyCode && + (C || ((M = null), (L[0] -= s[1]), (L[1] -= h[1]), (C = 2)), S()); + } + function v() { + 32 == ao.event.keyCode && + 2 == C && + ((L[0] += s[1]), (L[1] += h[1]), (C = 0), S()); + } + function d() { + var n = ao.mouse(b), + t = !1; + x && ((n[0] += x[0]), (n[1] += x[1])), + C || + (ao.event.altKey + ? (M || (M = [(s[0] + s[1]) / 2, (h[0] + h[1]) / 2]), + (L[0] = s[+(n[0] < M[0])]), + (L[1] = h[+(n[1] < M[1])])) + : (M = null)), + E && y(n, c, 0) && (r(k), (t = !0)), + A && y(n, f, 1) && (i(k), (t = !0)), + t && (e(k), w({ type: 'brush', mode: C ? 'move' : 'resize' })); + } + function y(n, t, e) { + var r, + i, + u = Zi(t), + l = u[0], + c = u[1], + f = L[e], + v = e ? h : s, + d = v[1] - v[0]; + return ( + C && ((l -= f), (c -= d + f)), + (r = (e ? g : p) ? Math.max(l, Math.min(c, n[e])) : n[e]), + C + ? (i = (r += f) + d) + : (M && (f = Math.max(l, Math.min(c, 2 * M[e] - r))), + r > f ? ((i = r), (r = f)) : (i = f)), + v[0] != r || v[1] != i + ? (e ? (a = null) : (o = null), (v[0] = r), (v[1] = i), !0) + : void 0 + ); + } + function m() { + d(), + k + .style('pointer-events', 'all') + .selectAll('.resize') + .style('display', n.empty() ? 'none' : null), + ao.select('body').style('cursor', null), + q + .on('mousemove.brush', null) + .on('mouseup.brush', null) + .on('touchmove.brush', null) + .on('touchend.brush', null) + .on('keydown.brush', null) + .on('keyup.brush', null), + z(), + w({ type: 'brushend' }); + } + var M, + x, + b = this, + _ = ao.select(ao.event.target), + w = l.of(b, arguments), + k = ao.select(b), + N = _.datum(), + E = !/^(n|s)$/.test(N) && c, + A = !/^(e|w)$/.test(N) && f, + C = _.classed('extent'), + z = W(b), + L = ao.mouse(b), + q = ao + .select(t(b)) + .on('keydown.brush', u) + .on('keyup.brush', v); + if ( + (ao.event.changedTouches + ? q.on('touchmove.brush', d).on('touchend.brush', m) + : q.on('mousemove.brush', d).on('mouseup.brush', m), + k + .interrupt() + .selectAll('*') + .interrupt(), + C) + ) + (L[0] = s[0] - L[0]), (L[1] = h[0] - L[1]); + else if (N) { + var T = +/w$/.test(N), + R = +/^n/.test(N); + (x = [s[1 - T] - L[0], h[1 - R] - L[1]]), (L[0] = s[T]), (L[1] = h[R]); + } else ao.event.altKey && (M = L.slice()); + k + .style('pointer-events', 'none') + .selectAll('.resize') + .style('display', null), + ao.select('body').style('cursor', _.style('cursor')), + w({ type: 'brushstart' }), + d(); + } + var o, + a, + l = N(n, 'brushstart', 'brush', 'brushend'), + c = null, + f = null, + s = [0, 0], + h = [0, 0], + p = !0, + g = !0, + v = Bl[0]; + return ( + (n.event = function(n) { + n.each(function() { + var n = l.of(this, arguments), + t = { x: s, y: h, i: o, j: a }, + e = this.__chart__ || t; + (this.__chart__ = t), + Hl + ? ao + .select(this) + .transition() + .each('start.brush', function() { + (o = e.i), + (a = e.j), + (s = e.x), + (h = e.y), + n({ type: 'brushstart' }); + }) + .tween('brush:brush', function() { + var e = xr(s, t.x), + r = xr(h, t.y); + return ( + (o = a = null), + function(i) { + (s = t.x = e(i)), + (h = t.y = r(i)), + n({ type: 'brush', mode: 'resize' }); + } + ); + }) + .each('end.brush', function() { + (o = t.i), + (a = t.j), + n({ type: 'brush', mode: 'resize' }), + n({ type: 'brushend' }); + }) + : (n({ type: 'brushstart' }), + n({ type: 'brush', mode: 'resize' }), + n({ type: 'brushend' })); + }); + }), + (n.x = function(t) { + return arguments.length ? ((c = t), (v = Bl[(!c << 1) | !f]), n) : c; + }), + (n.y = function(t) { + return arguments.length ? ((f = t), (v = Bl[(!c << 1) | !f]), n) : f; + }), + (n.clamp = function(t) { + return arguments.length + ? (c && f + ? ((p = !!t[0]), (g = !!t[1])) + : c + ? (p = !!t) + : f && (g = !!t), + n) + : c && f + ? [p, g] + : c + ? p + : f + ? g + : null; + }), + (n.extent = function(t) { + var e, r, i, u, l; + return arguments.length + ? (c && + ((e = t[0]), + (r = t[1]), + f && ((e = e[0]), (r = r[0])), + (o = [e, r]), + c.invert && ((e = c(e)), (r = c(r))), + e > r && ((l = e), (e = r), (r = l)), + (e == s[0] && r == s[1]) || (s = [e, r])), + f && + ((i = t[0]), + (u = t[1]), + c && ((i = i[1]), (u = u[1])), + (a = [i, u]), + f.invert && ((i = f(i)), (u = f(u))), + i > u && ((l = i), (i = u), (u = l)), + (i == h[0] && u == h[1]) || (h = [i, u])), + n) + : (c && + (o + ? ((e = o[0]), (r = o[1])) + : ((e = s[0]), + (r = s[1]), + c.invert && ((e = c.invert(e)), (r = c.invert(r))), + e > r && ((l = e), (e = r), (r = l)))), + f && + (a + ? ((i = a[0]), (u = a[1])) + : ((i = h[0]), + (u = h[1]), + f.invert && ((i = f.invert(i)), (u = f.invert(u))), + i > u && ((l = i), (i = u), (u = l)))), + c && f ? [[e, i], [r, u]] : c ? [e, r] : f && [i, u]); + }), + (n.clear = function() { + return n.empty() || ((s = [0, 0]), (h = [0, 0]), (o = a = null)), n; + }), + (n.empty = function() { + return (!!c && s[0] == s[1]) || (!!f && h[0] == h[1]); + }), + ao.rebind(n, l, 'on') + ); + }; + var $l = { + n: 'ns-resize', + e: 'ew-resize', + s: 'ns-resize', + w: 'ew-resize', + nw: 'nwse-resize', + ne: 'nesw-resize', + se: 'nwse-resize', + sw: 'nesw-resize' + }, + Bl = [ + ['n', 'e', 's', 'w', 'nw', 'ne', 'se', 'sw'], + ['e', 'w'], + ['n', 's'], + [] + ], + Wl = (ga.format = xa.timeFormat), + Jl = Wl.utc, + Gl = Jl('%Y-%m-%dT%H:%M:%S.%LZ'); + (Wl.iso = + Date.prototype.toISOString && +new Date('2000-01-01T00:00:00.000Z') + ? eo + : Gl), + (eo.parse = function(n) { + var t = new Date(n); + return isNaN(t) ? null : t; + }), + (eo.toString = Gl.toString), + (ga.second = On( + function(n) { + return new va(1e3 * Math.floor(n / 1e3)); + }, + function(n, t) { + n.setTime(n.getTime() + 1e3 * Math.floor(t)); + }, + function(n) { + return n.getSeconds(); + } + )), + (ga.seconds = ga.second.range), + (ga.seconds.utc = ga.second.utc.range), + (ga.minute = On( + function(n) { + return new va(6e4 * Math.floor(n / 6e4)); + }, + function(n, t) { + n.setTime(n.getTime() + 6e4 * Math.floor(t)); + }, + function(n) { + return n.getMinutes(); + } + )), + (ga.minutes = ga.minute.range), + (ga.minutes.utc = ga.minute.utc.range), + (ga.hour = On( + function(n) { + var t = n.getTimezoneOffset() / 60; + return new va(36e5 * (Math.floor(n / 36e5 - t) + t)); + }, + function(n, t) { + n.setTime(n.getTime() + 36e5 * Math.floor(t)); + }, + function(n) { + return n.getHours(); + } + )), + (ga.hours = ga.hour.range), + (ga.hours.utc = ga.hour.utc.range), + (ga.month = On( + function(n) { + return (n = ga.day(n)), n.setDate(1), n; + }, + function(n, t) { + n.setMonth(n.getMonth() + t); + }, + function(n) { + return n.getMonth(); + } + )), + (ga.months = ga.month.range), + (ga.months.utc = ga.month.utc.range); + var Kl = [ + 1e3, + 5e3, + 15e3, + 3e4, + 6e4, + 3e5, + 9e5, + 18e5, + 36e5, + 108e5, + 216e5, + 432e5, + 864e5, + 1728e5, + 6048e5, + 2592e6, + 7776e6, + 31536e6 + ], + Ql = [ + [ga.second, 1], + [ga.second, 5], + [ga.second, 15], + [ga.second, 30], + [ga.minute, 1], + [ga.minute, 5], + [ga.minute, 15], + [ga.minute, 30], + [ga.hour, 1], + [ga.hour, 3], + [ga.hour, 6], + [ga.hour, 12], + [ga.day, 1], + [ga.day, 2], + [ga.week, 1], + [ga.month, 1], + [ga.month, 3], + [ga.year, 1] + ], + nc = Wl.multi([ + [ + '.%L', + function(n) { + return n.getMilliseconds(); + } + ], + [ + ':%S', + function(n) { + return n.getSeconds(); + } + ], + [ + '%I:%M', + function(n) { + return n.getMinutes(); + } + ], + [ + '%I %p', + function(n) { + return n.getHours(); + } + ], + [ + '%a %d', + function(n) { + return n.getDay() && 1 != n.getDate(); + } + ], + [ + '%b %d', + function(n) { + return 1 != n.getDate(); + } + ], + [ + '%B', + function(n) { + return n.getMonth(); + } + ], + ['%Y', zt] + ]), + tc = { + range: function(n, t, e) { + return ao.range(Math.ceil(n / e) * e, +t, e).map(io); + }, + floor: m, + ceil: m + }; + (Ql.year = ga.year), + (ga.scale = function() { + return ro(ao.scale.linear(), Ql, nc); + }); + var ec = Ql.map(function(n) { + return [n[0].utc, n[1]]; + }), + rc = Jl.multi([ + [ + '.%L', + function(n) { + return n.getUTCMilliseconds(); + } + ], + [ + ':%S', + function(n) { + return n.getUTCSeconds(); + } + ], + [ + '%I:%M', + function(n) { + return n.getUTCMinutes(); + } + ], + [ + '%I %p', + function(n) { + return n.getUTCHours(); + } + ], + [ + '%a %d', + function(n) { + return n.getUTCDay() && 1 != n.getUTCDate(); + } + ], + [ + '%b %d', + function(n) { + return 1 != n.getUTCDate(); + } + ], + [ + '%B', + function(n) { + return n.getUTCMonth(); + } + ], + ['%Y', zt] + ]); + (ec.year = ga.year.utc), + (ga.scale.utc = function() { + return ro(ao.scale.linear(), ec, rc); + }), + (ao.text = An(function(n) { + return n.responseText; + })), + (ao.json = function(n, t) { + return Cn(n, 'application/json', uo, t); + }), + (ao.html = function(n, t) { + return Cn(n, 'text/html', oo, t); + }), + (ao.xml = An(function(n) { + return n.responseXML; + })), + 'function' == typeof define && define.amd + ? ((this.d3 = ao), define(ao)) + : 'object' == typeof module && module.exports + ? (module.exports = ao) + : (this.d3 = ao); +})(); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/package.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/package.js new file mode 100644 index 000000000..ccc24e3dc --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/package.js @@ -0,0 +1,14 @@ +// Package metadata for Meteor.js. + +Package.describe({ + name: 'd3js:d3', // http://atmospherejs.com/d3js/d3 + summary: + 'D3 (official): A JavaScript visualization library for HTML and SVG.', + version: '3.5.17', + git: 'https://github.com/mbostock/d3.git' +}); + +Package.onUse(function(api) { + api.versionsFrom(['METEOR@1.0']); + api.addFiles('d3.js', 'client'); +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/package.json b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/package.json new file mode 100644 index 000000000..9daca23c1 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/package.json @@ -0,0 +1,137 @@ +{ + "_args": [ + [ + { + "raw": "d3@^3.5.9", + "scope": null, + "escapedName": "d3", + "name": "d3", + "rawSpec": "^3.5.9", + "spec": ">=3.5.9 <4.0.0", + "type": "range" + }, + "/Users/bclinkinbeard/Code/idyll-lang/idyll/test/test-project/src/node_modules/vega" + ] + ], + "_from": "d3@>=3.5.9 <4.0.0", + "_id": "d3@3.5.17", + "_inCache": true, + "_location": "/d3", + "_nodeVersion": "0.12.7", + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/d3-3.5.17.tgz_1462408194546_0.654020820511505" + }, + "_npmUser": { + "name": "mbostock", + "email": "mbostock@gmail.com" + }, + "_npmVersion": "2.11.3", + "_phantomChildren": {}, + "_requested": { + "raw": "d3@^3.5.9", + "scope": null, + "escapedName": "d3", + "name": "d3", + "rawSpec": "^3.5.9", + "spec": ">=3.5.9 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/react-micro-bar-chart", + "/topojson", + "/vega", + "/vega-scenegraph" + ], + "_resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", + "_shasum": "bc46748004378b21a360c9fc7cf5231790762fb8", + "_shrinkwrap": null, + "_spec": "d3@^3.5.9", + "_where": "/Users/bclinkinbeard/Code/idyll-lang/idyll/test/test-project/src/node_modules/vega", + "author": { + "name": "Mike Bostock", + "url": "http://bost.ocks.org/mike" + }, + "browser": "d3.js", + "bugs": { + "url": "https://github.com/mbostock/d3/issues" + }, + "contributors": [ + { + "name": "Jason Davies", + "url": "http://jasondavies.com" + } + ], + "dependencies": {}, + "description": "A JavaScript visualization library for HTML and SVG.", + "devDependencies": { + "jsdom": "3", + "seedrandom": "2", + "smash": "0.0", + "uglify-js": "2.6.2", + "vows": "0.8" + }, + "directories": {}, + "dist": { + "shasum": "bc46748004378b21a360c9fc7cf5231790762fb8", + "tarball": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz" + }, + "gitHead": "9cc9a875e636a1dcf36cc1e07bdf77e1ad6e2c74", + "homepage": "http://d3js.org", + "jam": { + "main": "d3.js", + "shim": { + "exports": "d3" + } + }, + "jspm": { + "main": "d3", + "shim": { + "d3": { + "exports": "d3" + } + }, + "files": [ + "d3.js" + ], + "buildConfig": { + "uglify": true + } + }, + "keywords": [ + "dom", + "w3c", + "visualization", + "svg", + "animation", + "canvas" + ], + "license": "BSD-3-Clause", + "main": "d3.js", + "maintainers": [ + { + "name": "mbostock", + "email": "mbostock@gmail.com" + }, + { + "name": "jasondavies", + "email": "jason@jasondavies.com" + } + ], + "name": "d3", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+https://github.com/mbostock/d3.git" + }, + "scripts": { + "postpublish": "VERSION=`node -e 'console.log(require(\"./package.json\").version)'`; git push && git push --tags && cp -v README.md LICENSE d3.js d3.min.js ../d3-bower && cd ../d3-bower && git add README.md LICENSE d3.js d3.min.js && git commit -m \"Release $VERSION.\" && git tag -am \"Release $VERSION.\" v${VERSION} && git push && git push --tags && cd - && cp -v d3.js ../d3.github.com/d3.v3.js && cp -v d3.min.js ../d3.github.com/d3.v3.min.js && cd ../d3.github.com && git add d3.v3.js d3.v3.min.js && git commit -m \"d3 ${VERSION}\" && git push", + "prepublish": "npm test && rm -f package.js src/start.js d3.js d3.min.js d3.zip && bin/start > src/start.js && bin/meteor > package.js && smash src/d3.js | uglifyjs - -b indent-level=2 -o d3.js && bin/uglify d3.js > d3.min.js && chmod a-w d3.js d3.min.js package.js && zip d3.zip LICENSE d3.js d3.min.js", + "test": "vows && echo" + }, + "spm": { + "main": "d3.js" + }, + "version": "3.5.17" +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/ascending.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/ascending.js new file mode 100644 index 000000000..067c17aa6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/ascending.js @@ -0,0 +1,5 @@ +d3.ascending = d3_ascending; + +function d3_ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/bisect.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/bisect.js new file mode 100644 index 000000000..883be0510 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/bisect.js @@ -0,0 +1,40 @@ +import 'ascending'; + +function d3_bisector(compare) { + return { + left: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = (lo + hi) >>> 1; + if (compare(a[mid], x) < 0) lo = mid + 1; + else hi = mid; + } + return lo; + }, + right: function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = (lo + hi) >>> 1; + if (compare(a[mid], x) > 0) hi = mid; + else lo = mid + 1; + } + return lo; + } + }; +} + +var d3_bisect = d3_bisector(d3_ascending); +d3.bisectLeft = d3_bisect.left; +d3.bisect = d3.bisectRight = d3_bisect.right; + +d3.bisector = function(f) { + return d3_bisector( + f.length === 1 + ? function(d, x) { + return d3_ascending(f(d), x); + } + : f + ); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/descending.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/descending.js new file mode 100644 index 000000000..05034586f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/descending.js @@ -0,0 +1,3 @@ +d3.descending = function(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/deviation.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/deviation.js new file mode 100644 index 000000000..406eae3d0 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/deviation.js @@ -0,0 +1,6 @@ +import 'variance'; + +d3.deviation = function() { + var v = d3.variance.apply(this, arguments); + return v ? Math.sqrt(v) : v; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/entries.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/entries.js new file mode 100644 index 000000000..73bde2a8e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/entries.js @@ -0,0 +1,5 @@ +d3.entries = function(map) { + var entries = []; + for (var key in map) entries.push({ key: key, value: map[key] }); + return entries; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/extent.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/extent.js new file mode 100644 index 000000000..bae805d8e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/extent.js @@ -0,0 +1,31 @@ +d3.extent = function(array, f) { + var i = -1, + n = array.length, + a, + b, + c; + if (arguments.length === 1) { + while (++i < n) + if ((b = array[i]) != null && b >= b) { + a = c = b; + break; + } + while (++i < n) + if ((b = array[i]) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } else { + while (++i < n) + if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = c = b; + break; + } + while (++i < n) + if ((b = f.call(array, array[i], i)) != null) { + if (a > b) a = b; + if (c < b) c = b; + } + } + return [a, c]; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/index.js new file mode 100644 index 000000000..a2c0786d8 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/index.js @@ -0,0 +1,25 @@ +import 'ascending'; +import 'descending'; +import 'min'; +import 'max'; +import 'extent'; +import 'sum'; +import 'mean'; +import 'median'; +import 'quantile'; +import 'variance'; +import 'deviation'; +import 'bisect'; +import 'shuffle'; +import 'permute'; +import 'pairs'; +import 'zip'; +import 'transpose'; +import 'keys'; +import 'values'; +import 'entries'; +import 'merge'; +import 'range'; +import 'nest'; +import 'map'; +import 'set'; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/keys.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/keys.js new file mode 100644 index 000000000..c83ec8e15 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/keys.js @@ -0,0 +1,5 @@ +d3.keys = function(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/map.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/map.js new file mode 100644 index 000000000..43dfb7e40 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/map.js @@ -0,0 +1,89 @@ +import '../core/class'; + +d3.map = function(object, f) { + var map = new d3_Map(); + if (object instanceof d3_Map) { + object.forEach(function(key, value) { + map.set(key, value); + }); + } else if (Array.isArray(object)) { + var i = -1, + n = object.length, + o; + if (arguments.length === 1) while (++i < n) map.set(i, object[i]); + else while (++i < n) map.set(f.call(object, (o = object[i]), i), o); + } else { + for (var key in object) map.set(key, object[key]); + } + return map; +}; + +function d3_Map() { + this._ = Object.create(null); +} + +var d3_map_proto = '__proto__', + d3_map_zero = '\0'; + +d3_class(d3_Map, { + has: d3_map_has, + get: function(key) { + return this._[d3_map_escape(key)]; + }, + set: function(key, value) { + return (this._[d3_map_escape(key)] = value); + }, + remove: d3_map_remove, + keys: d3_map_keys, + values: function() { + var values = []; + for (var key in this._) values.push(this._[key]); + return values; + }, + entries: function() { + var entries = []; + for (var key in this._) + entries.push({ key: d3_map_unescape(key), value: this._[key] }); + return entries; + }, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]); + } +}); + +function d3_map_escape(key) { + return (key += '') === d3_map_proto || key[0] === d3_map_zero + ? d3_map_zero + key + : key; +} + +function d3_map_unescape(key) { + return (key += '')[0] === d3_map_zero ? key.slice(1) : key; +} + +function d3_map_has(key) { + return d3_map_escape(key) in this._; +} + +function d3_map_remove(key) { + return (key = d3_map_escape(key)) in this._ && delete this._[key]; +} + +function d3_map_keys() { + var keys = []; + for (var key in this._) keys.push(d3_map_unescape(key)); + return keys; +} + +function d3_map_size() { + var size = 0; + for (var key in this._) ++size; + return size; +} + +function d3_map_empty() { + for (var key in this._) return false; + return true; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/max.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/max.js new file mode 100644 index 000000000..40f5e6257 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/max.js @@ -0,0 +1,23 @@ +d3.max = function(array, f) { + var i = -1, + n = array.length, + a, + b; + if (arguments.length === 1) { + while (++i < n) + if ((b = array[i]) != null && b >= b) { + a = b; + break; + } + while (++i < n) if ((b = array[i]) != null && b > a) a = b; + } else { + while (++i < n) + if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = b; + break; + } + while (++i < n) + if ((b = f.call(array, array[i], i)) != null && b > a) a = b; + } + return a; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/mean.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/mean.js new file mode 100644 index 000000000..a3f1b23a2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/mean.js @@ -0,0 +1,19 @@ +import '../math/number'; + +d3.mean = function(array, f) { + var s = 0, + n = array.length, + a, + i = -1, + j = n; + if (arguments.length === 1) { + while (++i < n) + if (d3_numeric((a = d3_number(array[i])))) s += a; + else --j; + } else { + while (++i < n) + if (d3_numeric((a = d3_number(f.call(array, array[i], i))))) s += a; + else --j; + } + if (j) return s / j; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/median.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/median.js new file mode 100644 index 000000000..b9e179a3b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/median.js @@ -0,0 +1,18 @@ +import '../math/number'; +import 'ascending'; +import 'quantile'; + +d3.median = function(array, f) { + var numbers = [], + n = array.length, + a, + i = -1; + if (arguments.length === 1) { + while (++i < n) if (d3_numeric((a = d3_number(array[i])))) numbers.push(a); + } else { + while (++i < n) + if (d3_numeric((a = d3_number(f.call(array, array[i], i))))) + numbers.push(a); + } + if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), 0.5); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/merge.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/merge.js new file mode 100644 index 000000000..3bd8354ee --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/merge.js @@ -0,0 +1,21 @@ +d3.merge = function(arrays) { + var n = arrays.length, + m, + i = -1, + j = 0, + merged, + array; + + while (++i < n) j += arrays[i].length; + merged = new Array(j); + + while (--n >= 0) { + array = arrays[n]; + m = array.length; + while (--m >= 0) { + merged[--j] = array[m]; + } + } + + return merged; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/min.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/min.js new file mode 100644 index 000000000..1b90452f3 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/min.js @@ -0,0 +1,23 @@ +d3.min = function(array, f) { + var i = -1, + n = array.length, + a, + b; + if (arguments.length === 1) { + while (++i < n) + if ((b = array[i]) != null && b >= b) { + a = b; + break; + } + while (++i < n) if ((b = array[i]) != null && a > b) a = b; + } else { + while (++i < n) + if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = b; + break; + } + while (++i < n) + if ((b = f.call(array, array[i], i)) != null && a > b) a = b; + } + return a; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/nest.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/nest.js new file mode 100644 index 000000000..898e57669 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/nest.js @@ -0,0 +1,101 @@ +import 'map'; + +d3.nest = function() { + var nest = {}, + keys = [], + sortKeys = [], + sortValues, + rollup; + + function map(mapType, array, depth) { + if (depth >= keys.length) + return rollup + ? rollup.call(nest, array) + : sortValues + ? array.sort(sortValues) + : array; + + var i = -1, + n = array.length, + key = keys[depth++], + keyValue, + object, + setter, + valuesByKey = new d3_Map(), + values; + + while (++i < n) { + if ((values = valuesByKey.get((keyValue = key((object = array[i])))))) { + values.push(object); + } else { + valuesByKey.set(keyValue, [object]); + } + } + + if (mapType) { + object = mapType(); + setter = function(keyValue, values) { + object.set(keyValue, map(mapType, values, depth)); + }; + } else { + object = {}; + setter = function(keyValue, values) { + object[keyValue] = map(mapType, values, depth); + }; + } + + valuesByKey.forEach(setter); + return object; + } + + function entries(map, depth) { + if (depth >= keys.length) return map; + + var array = [], + sortKey = sortKeys[depth++]; + + map.forEach(function(key, keyMap) { + array.push({ key: key, values: entries(keyMap, depth) }); + }); + + return sortKey + ? array.sort(function(a, b) { + return sortKey(a.key, b.key); + }) + : array; + } + + nest.map = function(array, mapType) { + return map(mapType, array, 0); + }; + + nest.entries = function(array) { + return entries(map(d3.map, array, 0), 0); + }; + + nest.key = function(d) { + keys.push(d); + return nest; + }; + + // Specifies the order for the most-recently specified key. + // Note: only applies to entries. Map keys are unordered! + nest.sortKeys = function(order) { + sortKeys[keys.length - 1] = order; + return nest; + }; + + // Specifies the order for leaf values. + // Applies to both maps and entries array. + nest.sortValues = function(order) { + sortValues = order; + return nest; + }; + + nest.rollup = function(f) { + rollup = f; + return nest; + }; + + return nest; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/pairs.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/pairs.js new file mode 100644 index 000000000..ed532d0b7 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/pairs.js @@ -0,0 +1,9 @@ +d3.pairs = function(array) { + var i = 0, + n = array.length - 1, + p0, + p1 = array[0], + pairs = new Array(n < 0 ? 0 : n); + while (i < n) pairs[i] = [(p0 = p1), (p1 = array[++i])]; + return pairs; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/permute.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/permute.js new file mode 100644 index 000000000..80e255900 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/permute.js @@ -0,0 +1,6 @@ +d3.permute = function(array, indexes) { + var i = indexes.length, + permutes = new Array(i); + while (i--) permutes[i] = array[indexes[i]]; + return permutes; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/quantile.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/quantile.js new file mode 100644 index 000000000..53498a0d6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/quantile.js @@ -0,0 +1,8 @@ +// R-7 per +d3.quantile = function(values, p) { + var H = (values.length - 1) * p + 1, + h = Math.floor(H), + v = +values[h - 1], + e = H - h; + return e ? v + e * (values[h] - v) : v; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/range.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/range.js new file mode 100644 index 000000000..7e2fc2e7b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/range.js @@ -0,0 +1,26 @@ +import '../math/abs'; + +d3.range = function(start, stop, step) { + if (arguments.length < 3) { + step = 1; + if (arguments.length < 2) { + stop = start; + start = 0; + } + } + if ((stop - start) / step === Infinity) throw new Error('infinite range'); + var range = [], + k = d3_range_integerScale(abs(step)), + i = -1, + j; + (start *= k), (stop *= k), (step *= k); + if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); + else while ((j = start + step * ++i) < stop) range.push(j / k); + return range; +}; + +function d3_range_integerScale(x) { + var k = 1; + while ((x * k) % 1) k *= 10; + return k; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/set.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/set.js new file mode 100644 index 000000000..1d7936921 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/set.js @@ -0,0 +1,27 @@ +import '../core/class'; +import 'map'; + +d3.set = function(array) { + var set = new d3_Set(); + if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]); + return set; +}; + +function d3_Set() { + this._ = Object.create(null); +} + +d3_class(d3_Set, { + has: d3_map_has, + add: function(key) { + this._[d3_map_escape((key += ''))] = true; + return key; + }, + remove: d3_map_remove, + values: d3_map_keys, + size: d3_map_size, + empty: d3_map_empty, + forEach: function(f) { + for (var key in this._) f.call(this, d3_map_unescape(key)); + } +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/shuffle.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/shuffle.js new file mode 100644 index 000000000..d6f5d07af --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/shuffle.js @@ -0,0 +1,14 @@ +d3.shuffle = function(array, i0, i1) { + if ((m = arguments.length) < 3) { + i1 = array.length; + if (m < 2) i0 = 0; + } + var m = i1 - i0, + t, + i; + while (m) { + i = (Math.random() * m--) | 0; + (t = array[m + i0]), (array[m + i0] = array[i + i0]), (array[i + i0] = t); + } + return array; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/sum.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/sum.js new file mode 100644 index 000000000..a3692bb31 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/sum.js @@ -0,0 +1,14 @@ +import '../math/number'; + +d3.sum = function(array, f) { + var s = 0, + n = array.length, + a, + i = -1; + if (arguments.length === 1) { + while (++i < n) if (d3_numeric((a = +array[i]))) s += a; // zero and null are equivalent + } else { + while (++i < n) if (d3_numeric((a = +f.call(array, array[i], i)))) s += a; + } + return s; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/transpose.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/transpose.js new file mode 100644 index 000000000..dff85778a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/transpose.js @@ -0,0 +1,21 @@ +import 'min'; + +d3.transpose = function(matrix) { + if (!(n = matrix.length)) return []; + for ( + var i = -1, + m = d3.min(matrix, d3_transposeLength), + transpose = new Array(m); + ++i < m; + + ) { + for (var j = -1, n, row = (transpose[i] = new Array(n)); ++j < n; ) { + row[j] = matrix[j][i]; + } + } + return transpose; +}; + +function d3_transposeLength(d) { + return d.length; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/values.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/values.js new file mode 100644 index 000000000..299d30433 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/values.js @@ -0,0 +1,5 @@ +d3.values = function(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/variance.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/variance.js new file mode 100644 index 000000000..b16b5d390 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/variance.js @@ -0,0 +1,29 @@ +import '../math/number'; + +d3.variance = function(array, f) { + var n = array.length, + m = 0, + a, + d, + s = 0, + i = -1, + j = 0; + if (arguments.length === 1) { + while (++i < n) { + if (d3_numeric((a = d3_number(array[i])))) { + d = a - m; + m += d / ++j; + s += d * (a - m); + } + } + } else { + while (++i < n) { + if (d3_numeric((a = d3_number(f.call(array, array[i], i))))) { + d = a - m; + m += d / ++j; + s += d * (a - m); + } + } + } + if (j > 1) return s / (j - 1); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/zip.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/zip.js new file mode 100644 index 000000000..4d6a5ff66 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/arrays/zip.js @@ -0,0 +1,5 @@ +import 'transpose'; + +d3.zip = function() { + return d3.transpose(arguments); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/behavior.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/behavior.js new file mode 100644 index 000000000..39633b105 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/behavior.js @@ -0,0 +1 @@ +d3.behavior = {}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/drag.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/drag.js new file mode 100644 index 000000000..437f65bc1 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/drag.js @@ -0,0 +1,98 @@ +import '../core/document'; +import '../core/identity'; +import '../core/rebind'; +import '../event/drag'; +import '../event/event'; +import '../event/mouse'; +import '../event/touch'; +import 'behavior'; + +d3.behavior.drag = function() { + var event = d3_eventDispatch(drag, 'drag', 'dragstart', 'dragend'), + origin = null, + mousedown = dragstart(d3_noop, d3.mouse, d3_window, 'mousemove', 'mouseup'), + touchstart = dragstart( + d3_behavior_dragTouchId, + d3.touch, + d3_identity, + 'touchmove', + 'touchend' + ); + + function drag() { + this.on('mousedown.drag', mousedown).on('touchstart.drag', touchstart); + } + + function dragstart(id, position, subject, move, end) { + return function() { + var that = this, + target = d3.event.target.correspondingElement || d3.event.target, + parent = that.parentNode, + dispatch = event.of(that, arguments), + dragged = 0, + dragId = id(), + dragName = '.drag' + (dragId == null ? '' : '-' + dragId), + dragOffset, + dragSubject = d3 + .select(subject(target)) + .on(move + dragName, moved) + .on(end + dragName, ended), + dragRestore = d3_event_dragSuppress(target), + position0 = position(parent, dragId); + + if (origin) { + dragOffset = origin.apply(that, arguments); + dragOffset = [dragOffset.x - position0[0], dragOffset.y - position0[1]]; + } else { + dragOffset = [0, 0]; + } + + dispatch({ type: 'dragstart' }); + + function moved() { + var position1 = position(parent, dragId), + dx, + dy; + if (!position1) return; // this touch didn’t move + + dx = position1[0] - position0[0]; + dy = position1[1] - position0[1]; + dragged |= dx | dy; + position0 = position1; + + dispatch({ + type: 'drag', + x: position1[0] + dragOffset[0], + y: position1[1] + dragOffset[1], + dx: dx, + dy: dy + }); + } + + function ended() { + if (!position(parent, dragId)) return; // this touch didn’t end + dragSubject.on(move + dragName, null).on(end + dragName, null); + dragRestore(dragged); + dispatch({ type: 'dragend' }); + } + }; + } + + drag.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return drag; + }; + + return d3.rebind(drag, event, 'on'); +}; + +// While it is possible to receive a touchstart event with more than one changed +// touch, the event is only shared by touches on the same target; for new +// touches targetting different elements, multiple touchstart events are +// received even when the touches start simultaneously. Since multiple touches +// cannot move the same target to different locations concurrently without +// tearing the fabric of spacetime, we allow the first touch to win. +function d3_behavior_dragTouchId() { + return d3.event.changedTouches[0].identifier; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/index.js new file mode 100644 index 000000000..5b5a0d71e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/index.js @@ -0,0 +1,3 @@ +import 'behavior'; +import 'drag'; +import 'zoom'; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/zoom.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/zoom.js new file mode 100644 index 000000000..b9a6ff2b0 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/behavior/zoom.js @@ -0,0 +1,413 @@ +import '../core/document'; +import '../core/rebind'; +import '../event/drag'; +import '../event/event'; +import '../event/mouse'; +import '../event/touches'; +import '../selection/selection'; +import '../interpolate/zoom'; +import 'behavior'; + +d3.behavior.zoom = function() { + var view = { x: 0, y: 0, k: 1 }, + translate0, // translate when we started zooming (to avoid drift) + center0, // implicit desired position of translate0 after zooming + center, // explicit desired position of translate0 after zooming + size = [960, 500], // viewport size; required for zoom interpolation + scaleExtent = d3_behavior_zoomInfinity, + duration = 250, + zooming = 0, + mousedown = 'mousedown.zoom', + mousemove = 'mousemove.zoom', + mouseup = 'mouseup.zoom', + mousewheelTimer, + touchstart = 'touchstart.zoom', + touchtime, // time of last touchstart (to detect double-tap) + event = d3_eventDispatch(zoom, 'zoomstart', 'zoom', 'zoomend'), + x0, + x1, + y0, + y1; + + // Lazily determine the DOM’s support for Wheel events. + // https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/wheel + if (!d3_behavior_zoomWheel) { + d3_behavior_zoomWheel = + 'onwheel' in d3_document + ? ((d3_behavior_zoomDelta = function() { + return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); + }), + 'wheel') + : 'onmousewheel' in d3_document + ? ((d3_behavior_zoomDelta = function() { + return d3.event.wheelDelta; + }), + 'mousewheel') + : ((d3_behavior_zoomDelta = function() { + return -d3.event.detail; + }), + 'MozMousePixelScroll'); + } + + function zoom(g) { + g.on(mousedown, mousedowned) + .on(d3_behavior_zoomWheel + '.zoom', mousewheeled) + .on('dblclick.zoom', dblclicked) + .on(touchstart, touchstarted); + } + + zoom.event = function(g) { + g.each(function() { + var dispatch = event.of(this, arguments), + view1 = view; + if (d3_transitionInheritId) { + d3.select(this) + .transition() + .each('start.zoom', function() { + view = this.__chart__ || { x: 0, y: 0, k: 1 }; // pre-transition state + zoomstarted(dispatch); + }) + .tween('zoom:zoom', function() { + var dx = size[0], + dy = size[1], + cx = center0 ? center0[0] : dx / 2, + cy = center0 ? center0[1] : dy / 2, + i = d3.interpolateZoom( + [(cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k], + [ + (cx - view1.x) / view1.k, + (cy - view1.y) / view1.k, + dx / view1.k + ] + ); + return function(t) { + var l = i(t), + k = dx / l[2]; + this.__chart__ = view = { + x: cx - l[0] * k, + y: cy - l[1] * k, + k: k + }; + zoomed(dispatch); + }; + }) + .each('interrupt.zoom', function() { + zoomended(dispatch); + }) + .each('end.zoom', function() { + zoomended(dispatch); + }); + } else { + this.__chart__ = view; + zoomstarted(dispatch); + zoomed(dispatch); + zoomended(dispatch); + } + }); + }; + + zoom.translate = function(_) { + if (!arguments.length) return [view.x, view.y]; + view = { x: +_[0], y: +_[1], k: view.k }; // copy-on-write + rescale(); + return zoom; + }; + + zoom.scale = function(_) { + if (!arguments.length) return view.k; + view = { x: view.x, y: view.y, k: null }; // copy-on-write + scaleTo(+_); + rescale(); + return zoom; + }; + + zoom.scaleExtent = function(_) { + if (!arguments.length) return scaleExtent; + scaleExtent = _ == null ? d3_behavior_zoomInfinity : [+_[0], +_[1]]; + return zoom; + }; + + zoom.center = function(_) { + if (!arguments.length) return center; + center = _ && [+_[0], +_[1]]; + return zoom; + }; + + zoom.size = function(_) { + if (!arguments.length) return size; + size = _ && [+_[0], +_[1]]; + return zoom; + }; + + zoom.duration = function(_) { + if (!arguments.length) return duration; + duration = +_; // TODO function based on interpolateZoom distance? + return zoom; + }; + + zoom.x = function(z) { + if (!arguments.length) return x1; + x1 = z; + x0 = z.copy(); + view = { x: 0, y: 0, k: 1 }; // copy-on-write + return zoom; + }; + + zoom.y = function(z) { + if (!arguments.length) return y1; + y1 = z; + y0 = z.copy(); + view = { x: 0, y: 0, k: 1 }; // copy-on-write + return zoom; + }; + + function location(p) { + return [(p[0] - view.x) / view.k, (p[1] - view.y) / view.k]; + } + + function point(l) { + return [l[0] * view.k + view.x, l[1] * view.k + view.y]; + } + + function scaleTo(s) { + view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s)); + } + + function translateTo(p, l) { + l = point(l); + view.x += p[0] - l[0]; + view.y += p[1] - l[1]; + } + + function zoomTo(that, p, l, k) { + that.__chart__ = { x: view.x, y: view.y, k: view.k }; + + scaleTo(Math.pow(2, k)); + translateTo((center0 = p), l); + + that = d3.select(that); + if (duration > 0) that = that.transition().duration(duration); + that.call(zoom.event); + } + + function rescale() { + if (x1) + x1.domain( + x0 + .range() + .map(function(x) { + return (x - view.x) / view.k; + }) + .map(x0.invert) + ); + if (y1) + y1.domain( + y0 + .range() + .map(function(y) { + return (y - view.y) / view.k; + }) + .map(y0.invert) + ); + } + + function zoomstarted(dispatch) { + if (!zooming++) dispatch({ type: 'zoomstart' }); + } + + function zoomed(dispatch) { + rescale(); + dispatch({ type: 'zoom', scale: view.k, translate: [view.x, view.y] }); + } + + function zoomended(dispatch) { + if (!--zooming) dispatch({ type: 'zoomend' }), (center0 = null); + } + + function mousedowned() { + var that = this, + dispatch = event.of(that, arguments), + dragged = 0, + subject = d3 + .select(d3_window(that)) + .on(mousemove, moved) + .on(mouseup, ended), + location0 = location(d3.mouse(that)), + dragRestore = d3_event_dragSuppress(that); + + d3_selection_interrupt.call(that); + zoomstarted(dispatch); + + function moved() { + dragged = 1; + translateTo(d3.mouse(that), location0); + zoomed(dispatch); + } + + function ended() { + subject.on(mousemove, null).on(mouseup, null); + dragRestore(dragged); + zoomended(dispatch); + } + } + + // These closures persist for as long as at least one touch is active. + function touchstarted() { + var that = this, + dispatch = event.of(that, arguments), + locations0 = {}, // touchstart locations + distance0 = 0, // distance² between initial touches + scale0, // scale when we started touching + zoomName = '.zoom-' + d3.event.changedTouches[0].identifier, + touchmove = 'touchmove' + zoomName, + touchend = 'touchend' + zoomName, + targets = [], + subject = d3.select(that), + dragRestore = d3_event_dragSuppress(that); + + started(); + zoomstarted(dispatch); + + // Workaround for Chrome issue 412723: the touchstart listener must be set + // after the touchmove listener. + subject.on(mousedown, null).on(touchstart, started); // prevent duplicate events + + // Updates locations of any touches in locations0. + function relocate() { + var touches = d3.touches(that); + scale0 = view.k; + touches.forEach(function(t) { + if (t.identifier in locations0) locations0[t.identifier] = location(t); + }); + return touches; + } + + // Temporarily override touchstart while gesture is active. + function started() { + // Listen for touchmove and touchend on the target of touchstart. + var target = d3.event.target; + d3.select(target) + .on(touchmove, moved) + .on(touchend, ended); + targets.push(target); + + // Only track touches started on the same subject element. + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + locations0[changed[i].identifier] = null; + } + + var touches = relocate(), + now = Date.now(); + + if (touches.length === 1) { + if (now - touchtime < 500) { + // dbltap + var p = touches[0]; + zoomTo( + that, + p, + locations0[p.identifier], + Math.floor(Math.log(view.k) / Math.LN2) + 1 + ); + d3_eventPreventDefault(); + } + touchtime = now; + } else if (touches.length > 1) { + var p = touches[0], + q = touches[1], + dx = p[0] - q[0], + dy = p[1] - q[1]; + distance0 = dx * dx + dy * dy; + } + } + + function moved() { + var touches = d3.touches(that), + p0, + l0, + p1, + l1; + + d3_selection_interrupt.call(that); + + for (var i = 0, n = touches.length; i < n; ++i, l1 = null) { + p1 = touches[i]; + if ((l1 = locations0[p1.identifier])) { + if (l0) break; + (p0 = p1), (l0 = l1); + } + } + + if (l1) { + var distance1 = + (distance1 = p1[0] - p0[0]) * distance1 + + (distance1 = p1[1] - p0[1]) * distance1, + scale1 = distance0 && Math.sqrt(distance1 / distance0); + p0 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2]; + l0 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2]; + scaleTo(scale1 * scale0); + } + + touchtime = null; + translateTo(p0, l0); + zoomed(dispatch); + } + + function ended() { + // If there are any globally-active touches remaining, remove the ended + // touches from locations0. + if (d3.event.touches.length) { + var changed = d3.event.changedTouches; + for (var i = 0, n = changed.length; i < n; ++i) { + delete locations0[changed[i].identifier]; + } + // If locations0 is not empty, then relocate and continue listening for + // touchmove and touchend. + for (var identifier in locations0) { + return void relocate(); // locations may have detached due to rotation + } + } + // Otherwise, remove touchmove and touchend listeners. + d3.selectAll(targets).on(zoomName, null); + subject.on(mousedown, mousedowned).on(touchstart, touchstarted); + dragRestore(); + zoomended(dispatch); + } + } + + function mousewheeled() { + var dispatch = event.of(this, arguments); + if (mousewheelTimer) clearTimeout(mousewheelTimer); + else + d3_selection_interrupt.call(this), + (translate0 = location((center0 = center || d3.mouse(this)))), + zoomstarted(dispatch); + mousewheelTimer = setTimeout(function() { + mousewheelTimer = null; + zoomended(dispatch); + }, 50); + d3_eventPreventDefault(); + scaleTo(Math.pow(2, d3_behavior_zoomDelta() * 0.002) * view.k); + translateTo(center0, translate0); + zoomed(dispatch); + } + + function dblclicked() { + var p = d3.mouse(this), + k = Math.log(view.k) / Math.LN2; + + zoomTo( + this, + p, + location(p), + d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1 + ); + } + + return d3.rebind(zoom, event, 'on'); +}; + +var d3_behavior_zoomInfinity = [0, Infinity], // default scale extent + d3_behavior_zoomDelta, // initialized lazily + d3_behavior_zoomWheel; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/color.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/color.js new file mode 100644 index 000000000..fa83830c4 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/color.js @@ -0,0 +1,7 @@ +d3.color = d3_color; + +function d3_color() {} + +d3_color.prototype.toString = function() { + return this.rgb() + ''; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/hcl.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/hcl.js new file mode 100644 index 000000000..96ead6071 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/hcl.js @@ -0,0 +1,46 @@ +import '../math/trigonometry'; +import 'color'; +import 'lab'; +import 'rgb'; + +d3.hcl = d3_hcl; + +function d3_hcl(h, c, l) { + return this instanceof d3_hcl + ? void ((this.h = +h), (this.c = +c), (this.l = +l)) + : arguments.length < 2 + ? h instanceof d3_hcl + ? new d3_hcl(h.h, h.c, h.l) + : h instanceof d3_lab + ? d3_lab_hcl(h.l, h.a, h.b) + : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) + : new d3_hcl(h, c, l); +} + +var d3_hclPrototype = (d3_hcl.prototype = new d3_color()); + +d3_hclPrototype.brighter = function(k) { + return new d3_hcl( + this.h, + this.c, + Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)) + ); +}; + +d3_hclPrototype.darker = function(k) { + return new d3_hcl( + this.h, + this.c, + Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)) + ); +}; + +d3_hclPrototype.rgb = function() { + return d3_hcl_lab(this.h, this.c, this.l).rgb(); +}; + +function d3_hcl_lab(h, c, l) { + if (isNaN(h)) h = 0; + if (isNaN(c)) c = 0; + return new d3_lab(l, Math.cos((h *= d3_radians)) * c, Math.sin(h) * c); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/hsl.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/hsl.js new file mode 100644 index 000000000..871f9d09e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/hsl.js @@ -0,0 +1,58 @@ +import 'color'; +import 'rgb'; + +d3.hsl = d3_hsl; + +function d3_hsl(h, s, l) { + return this instanceof d3_hsl + ? void ((this.h = +h), (this.s = +s), (this.l = +l)) + : arguments.length < 2 + ? h instanceof d3_hsl + ? new d3_hsl(h.h, h.s, h.l) + : d3_rgb_parse('' + h, d3_rgb_hsl, d3_hsl) + : new d3_hsl(h, s, l); +} + +var d3_hslPrototype = (d3_hsl.prototype = new d3_color()); + +d3_hslPrototype.brighter = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, this.l / k); +}; + +d3_hslPrototype.darker = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return new d3_hsl(this.h, this.s, k * this.l); +}; + +d3_hslPrototype.rgb = function() { + return d3_hsl_rgb(this.h, this.s, this.l); +}; + +function d3_hsl_rgb(h, s, l) { + var m1, m2; + + /* Some simple corrections for h, s and l. */ + h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h; + s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s; + l = l < 0 ? 0 : l > 1 ? 1 : l; + + /* From FvD 13.37, CSS Color Module Level 3 */ + m2 = l <= 0.5 ? l * (1 + s) : l + s - l * s; + m1 = 2 * l - m2; + + function v(h) { + if (h > 360) h -= 360; + else if (h < 0) h += 360; + if (h < 60) return m1 + ((m2 - m1) * h) / 60; + if (h < 180) return m2; + if (h < 240) return m1 + ((m2 - m1) * (240 - h)) / 60; + return m1; + } + + function vv(h) { + return Math.round(v(h) * 255); + } + + return new d3_rgb(vv(h + 120), vv(h), vv(h - 120)); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/index.js new file mode 100644 index 000000000..882fc08ba --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/index.js @@ -0,0 +1,6 @@ +import 'color'; +import 'rgb'; +import 'hsl'; +import 'hcl'; +import 'lab'; +import 'xyz'; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/lab.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/lab.js new file mode 100644 index 000000000..70d29a8c2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/lab.js @@ -0,0 +1,72 @@ +import '../math/trigonometry'; +import 'color'; +import 'hcl'; +import 'rgb'; + +d3.lab = d3_lab; + +function d3_lab(l, a, b) { + return this instanceof d3_lab + ? void ((this.l = +l), (this.a = +a), (this.b = +b)) + : arguments.length < 2 + ? l instanceof d3_lab + ? new d3_lab(l.l, l.a, l.b) + : l instanceof d3_hcl + ? d3_hcl_lab(l.h, l.c, l.l) + : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) + : new d3_lab(l, a, b); +} + +// Corresponds roughly to RGB brighter/darker +var d3_lab_K = 18; + +// D65 standard referent +var d3_lab_X = 0.95047, + d3_lab_Y = 1, + d3_lab_Z = 1.08883; + +var d3_labPrototype = (d3_lab.prototype = new d3_color()); + +d3_labPrototype.brighter = function(k) { + return new d3_lab( + Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), + this.a, + this.b + ); +}; + +d3_labPrototype.darker = function(k) { + return new d3_lab( + Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), + this.a, + this.b + ); +}; + +d3_labPrototype.rgb = function() { + return d3_lab_rgb(this.l, this.a, this.b); +}; + +function d3_lab_rgb(l, a, b) { + var y = (l + 16) / 116, + x = y + a / 500, + z = y - b / 200; + x = d3_lab_xyz(x) * d3_lab_X; + y = d3_lab_xyz(y) * d3_lab_Y; + z = d3_lab_xyz(z) * d3_lab_Z; + return new d3_rgb( + d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z), + d3_xyz_rgb(-0.969266 * x + 1.8760108 * y + 0.041556 * z), + d3_xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z) + ); +} + +function d3_lab_hcl(l, a, b) { + return l > 0 + ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) + : new d3_hcl(NaN, NaN, l); +} + +function d3_lab_xyz(x) { + return x > 0.206893034 ? x * x * x : (x - 4 / 29) / 7.787037; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/rgb.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/rgb.js new file mode 100644 index 000000000..09dfc7def --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/rgb.js @@ -0,0 +1,318 @@ +import '../arrays/map'; +import 'color'; +import 'hsl'; +import 'lab'; +import 'xyz'; + +d3.rgb = d3_rgb; + +function d3_rgb(r, g, b) { + return this instanceof d3_rgb + ? void ((this.r = ~~r), (this.g = ~~g), (this.b = ~~b)) + : arguments.length < 2 + ? r instanceof d3_rgb + ? new d3_rgb(r.r, r.g, r.b) + : d3_rgb_parse('' + r, d3_rgb, d3_hsl_rgb) + : new d3_rgb(r, g, b); +} + +function d3_rgbNumber(value) { + return new d3_rgb(value >> 16, (value >> 8) & 0xff, value & 0xff); +} + +function d3_rgbString(value) { + return d3_rgbNumber(value) + ''; +} + +var d3_rgbPrototype = (d3_rgb.prototype = new d3_color()); + +d3_rgbPrototype.brighter = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + var r = this.r, + g = this.g, + b = this.b, + i = 30; + if (!r && !g && !b) return new d3_rgb(i, i, i); + if (r && r < i) r = i; + if (g && g < i) g = i; + if (b && b < i) b = i; + return new d3_rgb( + Math.min(255, r / k), + Math.min(255, g / k), + Math.min(255, b / k) + ); +}; + +d3_rgbPrototype.darker = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return new d3_rgb(k * this.r, k * this.g, k * this.b); +}; + +d3_rgbPrototype.hsl = function() { + return d3_rgb_hsl(this.r, this.g, this.b); +}; + +d3_rgbPrototype.toString = function() { + return '#' + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); +}; + +function d3_rgb_hex(v) { + return v < 0x10 + ? '0' + Math.max(0, v).toString(16) + : Math.min(255, v).toString(16); +} + +function d3_rgb_parse(format, rgb, hsl) { + var r = 0, // red channel; int in [0, 255] + g = 0, // green channel; int in [0, 255] + b = 0, // blue channel; int in [0, 255] + m1, // CSS color specification match + m2, // CSS color specification type (e.g., rgb) + color; + + /* Handle hsl, rgb. */ + m1 = /([a-z]+)\((.*)\)/.exec((format = format.toLowerCase())); + if (m1) { + m2 = m1[2].split(','); + switch (m1[1]) { + case 'hsl': { + return hsl( + parseFloat(m2[0]), // degrees + parseFloat(m2[1]) / 100, // percentage + parseFloat(m2[2]) / 100 // percentage + ); + } + case 'rgb': { + return rgb( + d3_rgb_parseNumber(m2[0]), + d3_rgb_parseNumber(m2[1]), + d3_rgb_parseNumber(m2[2]) + ); + } + } + } + + /* Named colors. */ + if ((color = d3_rgb_names.get(format))) { + return rgb(color.r, color.g, color.b); + } + + /* Hexadecimal colors: #rgb and #rrggbb. */ + if ( + format != null && + format.charAt(0) === '#' && + !isNaN((color = parseInt(format.slice(1), 16))) + ) { + if (format.length === 4) { + r = (color & 0xf00) >> 4; + r = (r >> 4) | r; + g = color & 0xf0; + g = (g >> 4) | g; + b = color & 0xf; + b = (b << 4) | b; + } else if (format.length === 7) { + r = (color & 0xff0000) >> 16; + g = (color & 0xff00) >> 8; + b = color & 0xff; + } + } + + return rgb(r, g, b); +} + +function d3_rgb_hsl(r, g, b) { + var min = Math.min((r /= 255), (g /= 255), (b /= 255)), + max = Math.max(r, g, b), + d = max - min, + h, + s, + l = (max + min) / 2; + if (d) { + s = l < 0.5 ? d / (max + min) : d / (2 - max - min); + if (r == max) h = (g - b) / d + (g < b ? 6 : 0); + else if (g == max) h = (b - r) / d + 2; + else h = (r - g) / d + 4; + h *= 60; + } else { + h = NaN; + s = l > 0 && l < 1 ? 0 : h; + } + return new d3_hsl(h, s, l); +} + +function d3_rgb_lab(r, g, b) { + r = d3_rgb_xyz(r); + g = d3_rgb_xyz(g); + b = d3_rgb_xyz(b); + var x = d3_xyz_lab( + (0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / d3_lab_X + ), + y = d3_xyz_lab((0.2126729 * r + 0.7151522 * g + 0.072175 * b) / d3_lab_Y), + z = d3_xyz_lab((0.0193339 * r + 0.119192 * g + 0.9503041 * b) / d3_lab_Z); + return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z)); +} + +function d3_rgb_xyz(r) { + return (r /= 255) <= 0.04045 ? r / 12.92 : Math.pow((r + 0.055) / 1.055, 2.4); +} + +function d3_rgb_parseNumber(c) { + // either integer or percentage + var f = parseFloat(c); + return c.charAt(c.length - 1) === '%' ? Math.round(f * 2.55) : f; +} + +var d3_rgb_names = d3.map({ + aliceblue: 0xf0f8ff, + antiquewhite: 0xfaebd7, + aqua: 0x00ffff, + aquamarine: 0x7fffd4, + azure: 0xf0ffff, + beige: 0xf5f5dc, + bisque: 0xffe4c4, + black: 0x000000, + blanchedalmond: 0xffebcd, + blue: 0x0000ff, + blueviolet: 0x8a2be2, + brown: 0xa52a2a, + burlywood: 0xdeb887, + cadetblue: 0x5f9ea0, + chartreuse: 0x7fff00, + chocolate: 0xd2691e, + coral: 0xff7f50, + cornflowerblue: 0x6495ed, + cornsilk: 0xfff8dc, + crimson: 0xdc143c, + cyan: 0x00ffff, + darkblue: 0x00008b, + darkcyan: 0x008b8b, + darkgoldenrod: 0xb8860b, + darkgray: 0xa9a9a9, + darkgreen: 0x006400, + darkgrey: 0xa9a9a9, + darkkhaki: 0xbdb76b, + darkmagenta: 0x8b008b, + darkolivegreen: 0x556b2f, + darkorange: 0xff8c00, + darkorchid: 0x9932cc, + darkred: 0x8b0000, + darksalmon: 0xe9967a, + darkseagreen: 0x8fbc8f, + darkslateblue: 0x483d8b, + darkslategray: 0x2f4f4f, + darkslategrey: 0x2f4f4f, + darkturquoise: 0x00ced1, + darkviolet: 0x9400d3, + deeppink: 0xff1493, + deepskyblue: 0x00bfff, + dimgray: 0x696969, + dimgrey: 0x696969, + dodgerblue: 0x1e90ff, + firebrick: 0xb22222, + floralwhite: 0xfffaf0, + forestgreen: 0x228b22, + fuchsia: 0xff00ff, + gainsboro: 0xdcdcdc, + ghostwhite: 0xf8f8ff, + gold: 0xffd700, + goldenrod: 0xdaa520, + gray: 0x808080, + green: 0x008000, + greenyellow: 0xadff2f, + grey: 0x808080, + honeydew: 0xf0fff0, + hotpink: 0xff69b4, + indianred: 0xcd5c5c, + indigo: 0x4b0082, + ivory: 0xfffff0, + khaki: 0xf0e68c, + lavender: 0xe6e6fa, + lavenderblush: 0xfff0f5, + lawngreen: 0x7cfc00, + lemonchiffon: 0xfffacd, + lightblue: 0xadd8e6, + lightcoral: 0xf08080, + lightcyan: 0xe0ffff, + lightgoldenrodyellow: 0xfafad2, + lightgray: 0xd3d3d3, + lightgreen: 0x90ee90, + lightgrey: 0xd3d3d3, + lightpink: 0xffb6c1, + lightsalmon: 0xffa07a, + lightseagreen: 0x20b2aa, + lightskyblue: 0x87cefa, + lightslategray: 0x778899, + lightslategrey: 0x778899, + lightsteelblue: 0xb0c4de, + lightyellow: 0xffffe0, + lime: 0x00ff00, + limegreen: 0x32cd32, + linen: 0xfaf0e6, + magenta: 0xff00ff, + maroon: 0x800000, + mediumaquamarine: 0x66cdaa, + mediumblue: 0x0000cd, + mediumorchid: 0xba55d3, + mediumpurple: 0x9370db, + mediumseagreen: 0x3cb371, + mediumslateblue: 0x7b68ee, + mediumspringgreen: 0x00fa9a, + mediumturquoise: 0x48d1cc, + mediumvioletred: 0xc71585, + midnightblue: 0x191970, + mintcream: 0xf5fffa, + mistyrose: 0xffe4e1, + moccasin: 0xffe4b5, + navajowhite: 0xffdead, + navy: 0x000080, + oldlace: 0xfdf5e6, + olive: 0x808000, + olivedrab: 0x6b8e23, + orange: 0xffa500, + orangered: 0xff4500, + orchid: 0xda70d6, + palegoldenrod: 0xeee8aa, + palegreen: 0x98fb98, + paleturquoise: 0xafeeee, + palevioletred: 0xdb7093, + papayawhip: 0xffefd5, + peachpuff: 0xffdab9, + peru: 0xcd853f, + pink: 0xffc0cb, + plum: 0xdda0dd, + powderblue: 0xb0e0e6, + purple: 0x800080, + rebeccapurple: 0x663399, + red: 0xff0000, + rosybrown: 0xbc8f8f, + royalblue: 0x4169e1, + saddlebrown: 0x8b4513, + salmon: 0xfa8072, + sandybrown: 0xf4a460, + seagreen: 0x2e8b57, + seashell: 0xfff5ee, + sienna: 0xa0522d, + silver: 0xc0c0c0, + skyblue: 0x87ceeb, + slateblue: 0x6a5acd, + slategray: 0x708090, + slategrey: 0x708090, + snow: 0xfffafa, + springgreen: 0x00ff7f, + steelblue: 0x4682b4, + tan: 0xd2b48c, + teal: 0x008080, + thistle: 0xd8bfd8, + tomato: 0xff6347, + turquoise: 0x40e0d0, + violet: 0xee82ee, + wheat: 0xf5deb3, + white: 0xffffff, + whitesmoke: 0xf5f5f5, + yellow: 0xffff00, + yellowgreen: 0x9acd32 +}); + +d3_rgb_names.forEach(function(key, value) { + d3_rgb_names.set(key, d3_rgbNumber(value)); +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/xyz.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/xyz.js new file mode 100644 index 000000000..c209d0b8c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/color/xyz.js @@ -0,0 +1,9 @@ +function d3_xyz_lab(x) { + return x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29; +} + +function d3_xyz_rgb(r) { + return Math.round( + 255 * (r <= 0.00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - 0.055) + ); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/array.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/array.js new file mode 100644 index 000000000..c900e868d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/array.js @@ -0,0 +1,16 @@ +import '../core/array'; +import '../core/document'; + +// Redefine d3_array if the browser doesn’t support slice-based conversion. +if (d3_document) { + try { + d3_array(d3_document.documentElement.childNodes)[0].nodeType; + } catch (e) { + d3_array = function(list) { + var i = list.length, + array = new Array(i); + while (i--) array[i] = list[i]; + return array; + }; + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/date.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/date.js new file mode 100644 index 000000000..3e2ba33f8 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/date.js @@ -0,0 +1,4 @@ +if (!Date.now) + Date.now = function() { + return +new Date(); + }; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/index.js new file mode 100644 index 000000000..14c5281ba --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/index.js @@ -0,0 +1,3 @@ +import 'array'; +import 'date'; +import 'style'; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/style.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/style.js new file mode 100644 index 000000000..d2096832e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/compat/style.js @@ -0,0 +1,23 @@ +import '../core/document'; + +// Redefine style.setProperty et al. if the browser doesn’t coerce arguments. +if (d3_document) { + try { + d3_document.createElement('DIV').style.setProperty('opacity', 0, ''); + } catch (error) { + var d3_element_prototype = this.Element.prototype, + d3_element_setAttribute = d3_element_prototype.setAttribute, + d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, + d3_style_prototype = this.CSSStyleDeclaration.prototype, + d3_style_setProperty = d3_style_prototype.setProperty; + d3_element_prototype.setAttribute = function(name, value) { + d3_element_setAttribute.call(this, name, value + ''); + }; + d3_element_prototype.setAttributeNS = function(space, local, value) { + d3_element_setAttributeNS.call(this, space, local, value + ''); + }; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + '', priority); + }; + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/array.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/array.js new file mode 100644 index 000000000..532327181 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/array.js @@ -0,0 +1,4 @@ +var d3_arraySlice = [].slice, + d3_array = function(list) { + return d3_arraySlice.call(list); + }; // conversion for NodeLists diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/class.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/class.js new file mode 100644 index 000000000..7f1d7439f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/class.js @@ -0,0 +1,8 @@ +function d3_class(ctor, properties) { + for (var key in properties) { + Object.defineProperty(ctor.prototype, key, { + value: properties[key], + enumerable: false + }); + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/document.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/document.js new file mode 100644 index 000000000..beea694b1 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/document.js @@ -0,0 +1,21 @@ +var d3_document = this.document; + +function d3_documentElement(node) { + return ( + node && + ( + node.ownerDocument || // node is a Node + node.document || // node is a Window + node + ).documentElement + ); // node is a Document +} + +function d3_window(node) { + return ( + node && + ((node.ownerDocument && node.ownerDocument.defaultView) || // node is a Node + (node.document && node) || // node is a Window + node.defaultView) + ); // node is a Document +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/functor.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/functor.js new file mode 100644 index 000000000..cc3bea0f0 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/functor.js @@ -0,0 +1,9 @@ +function d3_functor(v) { + return typeof v === 'function' + ? v + : function() { + return v; + }; +} + +d3.functor = d3_functor; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/identity.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/identity.js new file mode 100644 index 000000000..73893f862 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/identity.js @@ -0,0 +1,3 @@ +function d3_identity(d) { + return d; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/index.js new file mode 100644 index 000000000..eb5bd0255 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/index.js @@ -0,0 +1,3 @@ +import 'functor'; +import 'ns'; +import 'rebind'; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/noop.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/noop.js new file mode 100644 index 000000000..35f91d114 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/noop.js @@ -0,0 +1 @@ +function d3_noop() {} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/ns.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/ns.js new file mode 100644 index 000000000..07b8c6b5e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/ns.js @@ -0,0 +1,22 @@ +var d3_nsXhtml = 'http://www.w3.org/1999/xhtml'; + +var d3_nsPrefix = { + svg: 'http://www.w3.org/2000/svg', + xhtml: d3_nsXhtml, + xlink: 'http://www.w3.org/1999/xlink', + xml: 'http://www.w3.org/XML/1998/namespace', + xmlns: 'http://www.w3.org/2000/xmlns/' +}; + +d3.ns = { + prefix: d3_nsPrefix, + qualify: function(name) { + var i = name.indexOf(':'), + prefix = name; + if (i >= 0 && (prefix = name.slice(0, i)) !== 'xmlns') + name = name.slice(i + 1); + return d3_nsPrefix.hasOwnProperty(prefix) + ? { space: d3_nsPrefix[prefix], local: name } + : name; + } +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/rebind.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/rebind.js new file mode 100644 index 000000000..bfba36cf6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/rebind.js @@ -0,0 +1,19 @@ +// Copies a variable number of methods from source to target. +d3.rebind = function(target, source) { + var i = 1, + n = arguments.length, + method; + while (++i < n) + target[(method = arguments[i])] = d3_rebind(target, source, source[method]); + return target; +}; + +// Method is assumed to be a standard D3 getter-setter: +// If passed with no arguments, gets the value. +// If passed with arguments, sets the value and returns the target. +function d3_rebind(target, source, method) { + return function() { + var value = method.apply(source, arguments); + return value === source ? target : value; + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/source.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/source.js new file mode 100644 index 000000000..f56f50138 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/source.js @@ -0,0 +1,3 @@ +function d3_source(d) { + return d.source; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/subclass.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/subclass.js new file mode 100644 index 000000000..b455ce4e5 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/subclass.js @@ -0,0 +1,9 @@ +var d3_subclass = {}.__proto__ + ? // Until ECMAScript supports array subclassing, prototype injection works well. + function(object, prototype) { + object.__proto__ = prototype; + } + : // And if your browser doesn't support __proto__, we'll use direct extension. + function(object, prototype) { + for (var property in prototype) object[property] = prototype[property]; + }; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/target.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/target.js new file mode 100644 index 000000000..766ba7ee2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/target.js @@ -0,0 +1,3 @@ +function d3_target(d) { + return d.target; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/true.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/true.js new file mode 100644 index 000000000..0900faf20 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/true.js @@ -0,0 +1,3 @@ +function d3_true() { + return true; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/vendor.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/vendor.js new file mode 100644 index 000000000..fcb9bd1ee --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/vendor.js @@ -0,0 +1,10 @@ +function d3_vendorSymbol(object, name) { + if (name in object) return name; + name = name.charAt(0).toUpperCase() + name.slice(1); + for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) { + var prefixName = d3_vendorPrefixes[i] + name; + if (prefixName in object) return prefixName; + } +} + +var d3_vendorPrefixes = ['webkit', 'ms', 'moz', 'Moz', 'o', 'O']; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/zero.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/zero.js new file mode 100644 index 000000000..18b52afe7 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/core/zero.js @@ -0,0 +1,3 @@ +function d3_zero() { + return 0; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/d3.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/d3.js new file mode 100644 index 000000000..576a0bf62 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/d3.js @@ -0,0 +1,23 @@ +import 'start'; +import 'compat/'; + +import 'arrays/'; +import 'behavior/'; +import 'color/'; +import 'core/'; +import 'dsv/'; +import 'event/'; +import 'format/'; +import 'geo/'; +import 'geom/'; +import 'interpolate/'; +import 'layout/'; +import 'math/'; +import 'scale/'; +import 'selection/'; +import 'svg/'; +import 'time/'; +import 'transition/'; +import 'xhr/'; + +import 'end'; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/csv.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/csv.js new file mode 100644 index 000000000..9e22f78f9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/csv.js @@ -0,0 +1,3 @@ +import 'dsv'; + +d3.csv = d3.dsv(',', 'text/csv'); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/dsv.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/dsv.js new file mode 100644 index 000000000..6f1470a6e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/dsv.js @@ -0,0 +1,164 @@ +import '../arrays/set'; +import '../xhr/xhr'; + +d3.dsv = function(delimiter, mimeType) { + var reFormat = new RegExp('["' + delimiter + '\n]'), + delimiterCode = delimiter.charCodeAt(0); + + function dsv(url, row, callback) { + if (arguments.length < 3) (callback = row), (row = null); + var xhr = d3_xhr( + url, + mimeType, + row == null ? response : typedResponse(row), + callback + ); + + xhr.row = function(_) { + return arguments.length + ? xhr.response((row = _) == null ? response : typedResponse(_)) + : row; + }; + + return xhr; + } + + function response(request) { + return dsv.parse(request.responseText); + } + + function typedResponse(f) { + return function(request) { + return dsv.parse(request.responseText, f); + }; + } + + dsv.parse = function(text, f) { + var o; + return dsv.parseRows(text, function(row, i) { + if (o) return o(row, i - 1); + var a = new Function( + 'd', + 'return {' + + row + .map(function(name, i) { + return JSON.stringify(name) + ': d[' + i + ']'; + }) + .join(',') + + '}' + ); + o = f + ? function(row, i) { + return f(a(row), i); + } + : a; + }); + }; + + dsv.parseRows = function(text, f) { + var EOL = {}, // sentinel value for end-of-line + EOF = {}, // sentinel value for end-of-file + rows = [], // output rows + N = text.length, + I = 0, // current character index + n = 0, // the current line number + t, // the current token + eol; // is the current token followed by EOL? + + function token() { + if (I >= N) return EOF; // special case: end of file + if (eol) return (eol = false), EOL; // special case: end of line + + // special case: quotes + var j = I; + if (text.charCodeAt(j) === 34) { + var i = j; + while (i++ < N) { + if (text.charCodeAt(i) === 34) { + if (text.charCodeAt(i + 1) !== 34) break; + ++i; + } + } + I = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) ++I; + } else if (c === 10) { + eol = true; + } + return text.slice(j + 1, i).replace(/""/g, '"'); + } + + // common case: find next delimiter or newline + while (I < N) { + var c = text.charCodeAt(I++), + k = 1; + if (c === 10) eol = true; + // \n + else if (c === 13) { + eol = true; + if (text.charCodeAt(I) === 10) ++I, ++k; + } // \r|\r\n + else if (c !== delimiterCode) continue; + return text.slice(j, I - k); + } + + // special case: last token before EOF + return text.slice(j); + } + + while ((t = token()) !== EOF) { + var a = []; + while (t !== EOL && t !== EOF) { + a.push(t); + t = token(); + } + if (f && (a = f(a, n++)) == null) continue; + rows.push(a); + } + + return rows; + }; + + dsv.format = function(rows) { + if (Array.isArray(rows[0])) return dsv.formatRows(rows); // deprecated; use formatRows + var fieldSet = new d3_Set(), + fields = []; + + // Compute unique fields in order of discovery. + rows.forEach(function(row) { + for (var field in row) { + if (!fieldSet.has(field)) { + fields.push(fieldSet.add(field)); + } + } + }); + + return [fields.map(formatValue).join(delimiter)] + .concat( + rows.map(function(row) { + return fields + .map(function(field) { + return formatValue(row[field]); + }) + .join(delimiter); + }) + ) + .join('\n'); + }; + + dsv.formatRows = function(rows) { + return rows.map(formatRow).join('\n'); + }; + + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + + function formatValue(text) { + return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text; + } + + return dsv; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/index.js new file mode 100644 index 000000000..a44acd79d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/index.js @@ -0,0 +1,3 @@ +import 'dsv'; +import 'csv'; +import 'tsv'; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/tsv.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/tsv.js new file mode 100644 index 000000000..efd3dec49 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/dsv/tsv.js @@ -0,0 +1,3 @@ +import 'dsv'; + +d3.tsv = d3.dsv('\t', 'text/tab-separated-values'); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/end.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/end.js new file mode 100644 index 000000000..f24b8581a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/end.js @@ -0,0 +1,4 @@ + if (typeof define === "function" && define.amd) this.d3 = d3, define(d3); + else if (typeof module === "object" && module.exports) module.exports = d3; + else this.d3 = d3; +}(); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/dispatch.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/dispatch.js new file mode 100644 index 000000000..9b85ccdb6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/dispatch.js @@ -0,0 +1,69 @@ +import "../arrays/map"; + +d3.dispatch = function() { + var dispatch = new d3_dispatch, + i = -1, + n = arguments.length; + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + return dispatch; +}; + +function d3_dispatch() {} + +d3_dispatch.prototype.on = function(type, listener) { + var i = type.indexOf("."), + name = ""; + + // Extract optional namespace, e.g., "click.foo" + if (i >= 0) { + name = type.slice(i + 1); + type = type.slice(0, i); + } + + if (type) return arguments.length < 2 + ? this[type].on(name) + : this[type].on(name, listener); + + if (arguments.length === 2) { + if (listener == null) for (type in this) { + if (this.hasOwnProperty(type)) this[type].on(name, null); + } + return this; + } +}; + +function d3_dispatch_event(dispatch) { + var listeners = [], + listenerByName = new d3_Map; + + function event() { + var z = listeners, // defensive reference + i = -1, + n = z.length, + l; + while (++i < n) if (l = z[i].on) l.apply(this, arguments); + return dispatch; + } + + event.on = function(name, listener) { + var l = listenerByName.get(name), + i; + + // return the current listener, if any + if (arguments.length < 2) return l && l.on; + + // remove the old listener, if any (with copy-on-write) + if (l) { + l.on = null; + listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1)); + listenerByName.remove(name); + } + + // add the new listener, if any + if (listener) listeners.push(listenerByName.set(name, {on: listener})); + + return dispatch; + }; + + return event; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/drag.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/drag.js new file mode 100644 index 000000000..8687ccf7f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/drag.js @@ -0,0 +1,36 @@ +import "../core/document"; +import "../core/vendor"; +import "../selection/on"; + +var d3_event_dragSelect, + d3_event_dragId = 0; + +function d3_event_dragSuppress(node) { + var name = ".dragsuppress-" + ++d3_event_dragId, + click = "click" + name, + w = d3.select(d3_window(node)) + .on("touchmove" + name, d3_eventPreventDefault) + .on("dragstart" + name, d3_eventPreventDefault) + .on("selectstart" + name, d3_eventPreventDefault); + + if (d3_event_dragSelect == null) { + d3_event_dragSelect = "onselectstart" in node ? false + : d3_vendorSymbol(node.style, "userSelect"); + } + + if (d3_event_dragSelect) { + var style = d3_documentElement(node).style, + select = style[d3_event_dragSelect]; + style[d3_event_dragSelect] = "none"; + } + + return function(suppressClick) { + w.on(name, null); + if (d3_event_dragSelect) style[d3_event_dragSelect] = select; + if (suppressClick) { // suppress the next click, but only if it’s immediate + var off = function() { w.on(click, null); }; + w.on(click, function() { d3_eventPreventDefault(); off(); }, true); + setTimeout(off, 0); + } + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/event.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/event.js new file mode 100644 index 000000000..71e676ee9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/event.js @@ -0,0 +1,50 @@ +import "dispatch"; + +d3.event = null; + +function d3_eventPreventDefault() { + d3.event.preventDefault(); +} + +function d3_eventSource() { + var e = d3.event, s; + while (s = e.sourceEvent) e = s; + return e; +} + +// Like d3.dispatch, but for custom events abstracting native UI events. These +// events have a target component (such as a brush), a target element (such as +// the svg:g element containing the brush) and the standard arguments `d` (the +// target element's data) and `i` (the selection index of the target element). +function d3_eventDispatch(target) { + var dispatch = new d3_dispatch, + i = 0, + n = arguments.length; + + while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); + + // Creates a dispatch context for the specified `thiz` (typically, the target + // DOM element that received the source event) and `argumentz` (typically, the + // data `d` and index `i` of the target element). The returned function can be + // used to dispatch an event to any registered listeners; the function takes a + // single argument as input, being the event to dispatch. The event must have + // a "type" attribute which corresponds to a type registered in the + // constructor. This context will automatically populate the "sourceEvent" and + // "target" attributes of the event, as well as setting the `d3.event` global + // for the duration of the notification. + dispatch.of = function(thiz, argumentz) { + return function(e1) { + try { + var e0 = + e1.sourceEvent = d3.event; + e1.target = target; + d3.event = e1; + dispatch[e1.type].apply(thiz, argumentz); + } finally { + d3.event = e0; + } + }; + }; + + return dispatch; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/index.js new file mode 100644 index 000000000..4bb5a45b6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/index.js @@ -0,0 +1,6 @@ +import "dispatch"; +import "event"; +import "mouse"; +import "touch"; +import "touches"; +import "timer"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/mouse.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/mouse.js new file mode 100644 index 000000000..a6994b93f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/mouse.js @@ -0,0 +1,39 @@ +import "../core/document"; +import "event"; + +d3.mouse = function(container) { + return d3_mousePoint(container, d3_eventSource()); +}; + +// https://bugs.webkit.org/show_bug.cgi?id=44083 +var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0; + +function d3_mousePoint(container, e) { + if (e.changedTouches) e = e.changedTouches[0]; + var svg = container.ownerSVGElement || container; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + if (d3_mouse_bug44083 < 0) { + var window = d3_window(container); + if (window.scrollX || window.scrollY) { + svg = d3.select("body").append("svg").style({ + position: "absolute", + top: 0, + left: 0, + margin: 0, + padding: 0, + border: "none" + }, "important"); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + } + if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; + else point.x = e.clientX, point.y = e.clientY; + point = point.matrixTransform(container.getScreenCTM().inverse()); + return [point.x, point.y]; + } + var rect = container.getBoundingClientRect(); + return [e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop]; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/timer.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/timer.js new file mode 100644 index 000000000..e6dd6ab97 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/timer.js @@ -0,0 +1,82 @@ +import "../core/document"; +import "../core/vendor"; + +var d3_timer_queueHead, + d3_timer_queueTail, + d3_timer_interval, // is an interval (or frame) active? + d3_timer_timeout, // is a timeout active? + d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) { setTimeout(callback, 17); }; + +// The timer will continue to fire until callback returns true. +d3.timer = function() { + d3_timer.apply(this, arguments); +}; + +function d3_timer(callback, delay, then) { + var n = arguments.length; + if (n < 2) delay = 0; + if (n < 3) then = Date.now(); + + // Add the callback to the tail of the queue. + var time = then + delay, timer = {c: callback, t: time, n: null}; + if (d3_timer_queueTail) d3_timer_queueTail.n = timer; + else d3_timer_queueHead = timer; + d3_timer_queueTail = timer; + + // Start animatin'! + if (!d3_timer_interval) { + d3_timer_timeout = clearTimeout(d3_timer_timeout); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } + + return timer; +} + +function d3_timer_step() { + var now = d3_timer_mark(), + delay = d3_timer_sweep() - now; + if (delay > 24) { + if (isFinite(delay)) { + clearTimeout(d3_timer_timeout); + d3_timer_timeout = setTimeout(d3_timer_step, delay); + } + d3_timer_interval = 0; + } else { + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } +} + +d3.timer.flush = function() { + d3_timer_mark(); + d3_timer_sweep(); +}; + +function d3_timer_mark() { + var now = Date.now(), + timer = d3_timer_queueHead; + while (timer) { + if (now >= timer.t && timer.c(now - timer.t)) timer.c = null; + timer = timer.n; + } + return now; +} + +// Flush after callbacks to avoid concurrent queue modification. +// Returns the time of the earliest active timer, post-sweep. +function d3_timer_sweep() { + var t0, + t1 = d3_timer_queueHead, + time = Infinity; + while (t1) { + if (t1.c) { + if (t1.t < time) time = t1.t; + t1 = (t0 = t1).n; + } else { + t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; + } + } + d3_timer_queueTail = t0; + return time; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/touch.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/touch.js new file mode 100644 index 000000000..b9828ca26 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/touch.js @@ -0,0 +1,11 @@ +import "event"; +import "mouse"; + +d3.touch = function(container, touches, identifier) { + if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches; + if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) { + if ((touch = touches[i]).identifier === identifier) { + return d3_mousePoint(container, touch); + } + } +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/touches.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/touches.js new file mode 100644 index 000000000..a7cbaa5f9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/event/touches.js @@ -0,0 +1,12 @@ +import "../core/array"; +import "event"; +import "mouse"; + +d3.touches = function(container, touches) { + if (arguments.length < 2) touches = d3_eventSource().touches; + return touches ? d3_array(touches).map(function(touch) { + var point = d3_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) : []; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/collapse.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/collapse.js new file mode 100644 index 000000000..08adc3a69 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/collapse.js @@ -0,0 +1,3 @@ +function d3_collapse(s) { + return s.trim().replace(/\s+/g, " "); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/format.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/format.js new file mode 100644 index 000000000..bf740dbde --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/format.js @@ -0,0 +1,3 @@ +import "../locale/en-US"; + +d3.format = d3_locale_enUS.numberFormat; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/formatPrefix.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/formatPrefix.js new file mode 100644 index 000000000..b5a8bab1e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/formatPrefix.js @@ -0,0 +1,24 @@ +import "precision"; +import "round"; +import "../math/abs"; + +var d3_formatPrefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(d3_formatPrefix); + +d3.formatPrefix = function(value, precision) { + var i = 0; + if (value = +value) { + if (value < 0) value *= -1; + if (precision) value = d3.round(value, d3_format_precision(value, precision)); + i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); + i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3)); + } + return d3_formatPrefixes[8 + i / 3]; +}; + +function d3_formatPrefix(d, i) { + var k = Math.pow(10, abs(8 - i) * 3); + return { + scale: i > 8 ? function(d) { return d / k; } : function(d) { return d * k; }, + symbol: d + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/index.js new file mode 100644 index 000000000..21d7e9de2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/index.js @@ -0,0 +1,4 @@ +import "format"; +import "formatPrefix"; +import "requote"; +import "round"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/precision.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/precision.js new file mode 100644 index 000000000..24e32a1e6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/precision.js @@ -0,0 +1,3 @@ +function d3_format_precision(x, p) { + return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/requote.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/requote.js new file mode 100644 index 000000000..99dbf15a7 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/requote.js @@ -0,0 +1,5 @@ +d3.requote = function(s) { + return s.replace(d3_requote_re, "\\$&"); +}; + +var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/round.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/round.js new file mode 100644 index 000000000..44e957429 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/format/round.js @@ -0,0 +1,5 @@ +d3.round = function(x, n) { + return n + ? Math.round(x * (n = Math.pow(10, n))) / n + : Math.round(x); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/albers-usa.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/albers-usa.js new file mode 100644 index 000000000..6de6c7101 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/albers-usa.js @@ -0,0 +1,129 @@ +import "albers"; +import "conic-equal-area"; +import "geo"; + +// A composite projection for the United States, configured by default for +// 960×500. Also works quite well at 960×600 with scale 1285. The set of +// standard parallels for each region comes from USGS, which is published here: +// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers +d3.geo.albersUsa = function() { + var lower48 = d3.geo.albers(); + + // EPSG:3338 + var alaska = d3.geo.conicEqualArea() + .rotate([154, 0]) + .center([-2, 58.5]) + .parallels([55, 65]); + + // ESRI:102007 + var hawaii = d3.geo.conicEqualArea() + .rotate([157, 0]) + .center([-3, 19.9]) + .parallels([8, 18]); + + var point, + pointStream = {point: function(x, y) { point = [x, y]; }}, + lower48Point, + alaskaPoint, + hawaiiPoint; + + function albersUsa(coordinates) { + var x = coordinates[0], y = coordinates[1]; + point = null; + (lower48Point(x, y), point) + || (alaskaPoint(x, y), point) + || hawaiiPoint(x, y); + return point; + } + + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), + t = lower48.translate(), + x = (coordinates[0] - t[0]) / k, + y = (coordinates[1] - t[1]) / k; + return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska + : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii + : lower48).invert(coordinates); + }; + + // A naïve multi-projection stream. + // The projections must have mutually exclusive clip regions on the sphere, + // as this will avoid emitting interleaving lines and polygons. + albersUsa.stream = function(stream) { + var lower48Stream = lower48.stream(stream), + alaskaStream = alaska.stream(stream), + hawaiiStream = hawaii.stream(stream); + return { + point: function(x, y) { + lower48Stream.point(x, y); + alaskaStream.point(x, y); + hawaiiStream.point(x, y); + }, + sphere: function() { + lower48Stream.sphere(); + alaskaStream.sphere(); + hawaiiStream.sphere(); + }, + lineStart: function() { + lower48Stream.lineStart(); + alaskaStream.lineStart(); + hawaiiStream.lineStart(); + }, + lineEnd: function() { + lower48Stream.lineEnd(); + alaskaStream.lineEnd(); + hawaiiStream.lineEnd(); + }, + polygonStart: function() { + lower48Stream.polygonStart(); + alaskaStream.polygonStart(); + hawaiiStream.polygonStart(); + }, + polygonEnd: function() { + lower48Stream.polygonEnd(); + alaskaStream.polygonEnd(); + hawaiiStream.polygonEnd(); + } + }; + }; + + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_); + alaska.precision(_); + hawaii.precision(_); + return albersUsa; + }; + + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_); + alaska.scale(_ * 0.35); + hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), x = +_[0], y = +_[1]; + + lower48Point = lower48 + .translate(_) + .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]) + .stream(pointStream).point; + + alaskaPoint = alaska + .translate([x - 0.307 * k, y + 0.201 * k]) + .clipExtent([[x - 0.425 * k + ε, y + 0.120 * k + ε], [x - 0.214 * k - ε, y + 0.234 * k - ε]]) + .stream(pointStream).point; + + hawaiiPoint = hawaii + .translate([x - 0.205 * k, y + 0.212 * k]) + .clipExtent([[x - 0.214 * k + ε, y + 0.166 * k + ε], [x - 0.115 * k - ε, y + 0.234 * k - ε]]) + .stream(pointStream).point; + + return albersUsa; + }; + + return albersUsa.scale(1070); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/albers.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/albers.js new file mode 100644 index 000000000..a9c688633 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/albers.js @@ -0,0 +1,11 @@ +import "conic-equal-area"; +import "geo"; + +// ESRI:102003 +d3.geo.albers = function() { + return d3.geo.conicEqualArea() + .rotate([96, 0]) + .center([-0.6, 38.7]) + .parallels([29.5, 45.5]) + .scale(1070); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/area.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/area.js new file mode 100644 index 000000000..32f2c1c9c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/area.js @@ -0,0 +1,69 @@ +import "../core/noop"; +import "../math/adder"; +import "../math/trigonometry"; +import "geo"; +import "stream"; + +d3.geo.area = function(object) { + d3_geo_areaSum = 0; + d3.geo.stream(object, d3_geo_area); + return d3_geo_areaSum; +}; + +var d3_geo_areaSum, + d3_geo_areaRingSum = new d3_adder; + +var d3_geo_area = { + sphere: function() { d3_geo_areaSum += 4 * π; }, + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + + // Only count area for polygon rings. + polygonStart: function() { + d3_geo_areaRingSum.reset(); + d3_geo_area.lineStart = d3_geo_areaRingStart; + }, + polygonEnd: function() { + var area = 2 * d3_geo_areaRingSum; + d3_geo_areaSum += area < 0 ? 4 * π + area : area; + d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop; + } +}; + +function d3_geo_areaRingStart() { + var λ00, φ00, λ0, cosφ0, sinφ0; // start point and previous point + + // For the first point, … + d3_geo_area.point = function(λ, φ) { + d3_geo_area.point = nextPoint; + λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), sinφ0 = Math.sin(φ); + }; + + // For subsequent points, … + function nextPoint(λ, φ) { + λ *= d3_radians; + φ = φ * d3_radians / 2 + π / 4; // half the angular distance from south pole + + // Spherical excess E for a spherical triangle with vertices: south pole, + // previous point, current point. Uses a formula derived from Cagnoli’s + // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2). + var dλ = λ - λ0, + sdλ = dλ >= 0 ? 1 : -1, + adλ = sdλ * dλ, + cosφ = Math.cos(φ), + sinφ = Math.sin(φ), + k = sinφ0 * sinφ, + u = cosφ0 * cosφ + k * Math.cos(adλ), + v = k * sdλ * Math.sin(adλ); + d3_geo_areaRingSum.add(Math.atan2(v, u)); + + // Advance the previous points. + λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ; + } + + // For the last point, return to the start. + d3_geo_area.lineEnd = function() { + nextPoint(λ00, φ00); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal-equal-area.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal-equal-area.js new file mode 100644 index 000000000..91bdcd66c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal-equal-area.js @@ -0,0 +1,12 @@ +import "azimuthal"; +import "geo"; +import "projection"; + +var d3_geo_azimuthalEqualArea = d3_geo_azimuthal( + function(cosλcosφ) { return Math.sqrt(2 / (1 + cosλcosφ)); }, + function(ρ) { return 2 * Math.asin(ρ / 2); } +); + +(d3.geo.azimuthalEqualArea = function() { + return d3_geo_projection(d3_geo_azimuthalEqualArea); +}).raw = d3_geo_azimuthalEqualArea; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal-equidistant.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal-equidistant.js new file mode 100644 index 000000000..80b14a941 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal-equidistant.js @@ -0,0 +1,13 @@ +import "../core/identity"; +import "azimuthal"; +import "geo"; +import "projection"; + +var d3_geo_azimuthalEquidistant = d3_geo_azimuthal( + function(cosλcosφ) { var c = Math.acos(cosλcosφ); return c && c / Math.sin(c); }, + d3_identity +); + +(d3.geo.azimuthalEquidistant = function() { + return d3_geo_projection(d3_geo_azimuthalEquidistant); +}).raw = d3_geo_azimuthalEquidistant; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal.js new file mode 100644 index 000000000..5c0d9f5a9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/azimuthal.js @@ -0,0 +1,25 @@ +// Abstract azimuthal projection. +function d3_geo_azimuthal(scale, angle) { + function azimuthal(λ, φ) { + var cosλ = Math.cos(λ), + cosφ = Math.cos(φ), + k = scale(cosλ * cosφ); + return [ + k * cosφ * Math.sin(λ), + k * Math.sin(φ) + ]; + } + + azimuthal.invert = function(x, y) { + var ρ = Math.sqrt(x * x + y * y), + c = angle(ρ), + sinc = Math.sin(c), + cosc = Math.cos(c); + return [ + Math.atan2(x * sinc, ρ * cosc), + Math.asin(ρ && y * sinc / ρ) + ]; + }; + + return azimuthal; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/bounds.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/bounds.js new file mode 100644 index 000000000..2248d85b7 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/bounds.js @@ -0,0 +1,168 @@ +import "../math/abs"; +import "geo"; +import "stream"; +import "area"; +import "cartesian"; +import "spherical"; + +d3.geo.bounds = (function() { + var λ0, φ0, λ1, φ1, // bounds + λ_, // previous λ-coordinate + λ__, φ__, // first point + p0, // previous 3D point + dλSum, + ranges, + range; + + var bound = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + + polygonStart: function() { + bound.point = ringPoint; + bound.lineStart = ringStart; + bound.lineEnd = ringEnd; + dλSum = 0; + d3_geo_area.polygonStart(); + }, + polygonEnd: function() { + d3_geo_area.polygonEnd(); + bound.point = point; + bound.lineStart = lineStart; + bound.lineEnd = lineEnd; + if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); + else if (dλSum > ε) φ1 = 90; + else if (dλSum < -ε) φ0 = -90; + range[0] = λ0, range[1] = λ1; + } + }; + + function point(λ, φ) { + ranges.push(range = [λ0 = λ, λ1 = λ]); + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + + function linePoint(λ, φ) { + var p = d3_geo_cartesian([λ * d3_radians, φ * d3_radians]); + if (p0) { + var normal = d3_geo_cartesianCross(p0, p), + equatorial = [normal[1], -normal[0], 0], + inflection = d3_geo_cartesianCross(equatorial, normal); + d3_geo_cartesianNormalize(inflection); + inflection = d3_geo_spherical(inflection); + var dλ = λ - λ_, + s = dλ > 0 ? 1 : -1, + λi = inflection[0] * d3_degrees * s, + antimeridian = abs(dλ) > 180; + if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = inflection[1] * d3_degrees; + if (φi > φ1) φ1 = φi; + } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) { + var φi = -inflection[1] * d3_degrees; + if (φi < φ0) φ0 = φi; + } else { + if (φ < φ0) φ0 = φ; + if (φ > φ1) φ1 = φ; + } + if (antimeridian) { + if (λ < λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } else { + if (λ1 >= λ0) { + if (λ < λ0) λ0 = λ; + if (λ > λ1) λ1 = λ; + } else { + if (λ > λ_) { + if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ; + } else { + if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ; + } + } + } + } else { + point(λ, φ); + } + p0 = p, λ_ = λ; + } + + function lineStart() { bound.point = linePoint; } + function lineEnd() { + range[0] = λ0, range[1] = λ1; + bound.point = point; + p0 = null; + } + + function ringPoint(λ, φ) { + if (p0) { + var dλ = λ - λ_; + dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ; + } else λ__ = λ, φ__ = φ; + d3_geo_area.point(λ, φ); + linePoint(λ, φ); + } + + function ringStart() { + d3_geo_area.lineStart(); + } + + function ringEnd() { + ringPoint(λ__, φ__); + d3_geo_area.lineEnd(); + if (abs(dλSum) > ε) λ0 = -(λ1 = 180); + range[0] = λ0, range[1] = λ1; + p0 = null; + } + + // Finds the left-right distance between two longitudes. + // This is almost the same as (λ1 - λ0 + 360°) % 360°, except that we want + // the distance between ±180° to be 360°. + function angle(λ0, λ1) { return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1; } + + function compareRanges(a, b) { return a[0] - b[0]; } + + function withinRange(x, range) { + return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; + } + + return function(feature) { + φ1 = λ1 = -(λ0 = φ0 = Infinity); + ranges = []; + + d3.geo.stream(feature, bound); + + var n = ranges.length; + if (n) { + // First, sort ranges by their minimum longitudes. + ranges.sort(compareRanges); + + // Then, merge any ranges that overlap. + for (var i = 1, a = ranges[0], b, merged = [a]; i < n; ++i) { + b = ranges[i]; + if (withinRange(b[0], a) || withinRange(b[1], a)) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push(a = b); + } + } + + // Finally, find the largest gap between the merged ranges. + // The final bounding box will be the inverse of this gap. + var best = -Infinity, dλ; + for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) { + b = merged[i]; + if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1]; + } + } + ranges = range = null; + + return λ0 === Infinity || φ0 === Infinity + ? [[NaN, NaN], [NaN, NaN]] + : [[λ0, φ0], [λ1, φ1]]; + }; +})(); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/cartesian.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/cartesian.js new file mode 100644 index 000000000..f365a3dd0 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/cartesian.js @@ -0,0 +1,47 @@ +// TODO +// cross and scale return new vectors, +// whereas add and normalize operate in-place + +function d3_geo_cartesian(spherical) { + var λ = spherical[0], + φ = spherical[1], + cosφ = Math.cos(φ); + return [ + cosφ * Math.cos(λ), + cosφ * Math.sin(λ), + Math.sin(φ) + ]; +} + +function d3_geo_cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; +} + +function d3_geo_cartesianCross(a, b) { + return [ + a[1] * b[2] - a[2] * b[1], + a[2] * b[0] - a[0] * b[2], + a[0] * b[1] - a[1] * b[0] + ]; +} + +function d3_geo_cartesianAdd(a, b) { + a[0] += b[0]; + a[1] += b[1]; + a[2] += b[2]; +} + +function d3_geo_cartesianScale(vector, k) { + return [ + vector[0] * k, + vector[1] * k, + vector[2] * k + ]; +} + +function d3_geo_cartesianNormalize(d) { + var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l; + d[1] /= l; + d[2] /= l; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/centroid.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/centroid.js new file mode 100644 index 000000000..b764e9fd8 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/centroid.js @@ -0,0 +1,149 @@ +import "../core/noop"; +import "../math/trigonometry"; +import "geo"; +import "stream"; + +d3.geo.centroid = function(object) { + d3_geo_centroidW0 = d3_geo_centroidW1 = + d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = + d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = + d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, d3_geo_centroid); + + var x = d3_geo_centroidX2, + y = d3_geo_centroidY2, + z = d3_geo_centroidZ2, + m = x * x + y * y + z * z; + + // If the area-weighted centroid is undefined, fall back to length-weighted centroid. + if (m < ε2) { + x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1; + // If the feature has zero length, fall back to arithmetic mean of point vectors. + if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0; + m = x * x + y * y + z * z; + // If the feature still has an undefined centroid, then return. + if (m < ε2) return [NaN, NaN]; + } + + return [Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees]; +}; + +var d3_geo_centroidW0, + d3_geo_centroidW1, + d3_geo_centroidX0, + d3_geo_centroidY0, + d3_geo_centroidZ0, + d3_geo_centroidX1, + d3_geo_centroidY1, + d3_geo_centroidZ1, + d3_geo_centroidX2, + d3_geo_centroidY2, + d3_geo_centroidZ2; + +var d3_geo_centroid = { + sphere: d3_noop, + point: d3_geo_centroidPoint, + lineStart: d3_geo_centroidLineStart, + lineEnd: d3_geo_centroidLineEnd, + polygonStart: function() { + d3_geo_centroid.lineStart = d3_geo_centroidRingStart; + }, + polygonEnd: function() { + d3_geo_centroid.lineStart = d3_geo_centroidLineStart; + } +}; + +// Arithmetic mean of Cartesian vectors. +function d3_geo_centroidPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ)); +} + +function d3_geo_centroidPointXYZ(x, y, z) { + ++d3_geo_centroidW0; + d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0; + d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0; + d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0; +} + +function d3_geo_centroidLineStart() { + var x0, y0, z0; // previous point + + d3_geo_centroid.point = function(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroid.point = nextPoint; + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), + x = cosφ * Math.cos(λ), + y = cosφ * Math.sin(λ), + z = Math.sin(φ), + w = Math.atan2( + Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), + x0 * x + y0 * y + z0 * z); + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } +} + +function d3_geo_centroidLineEnd() { + d3_geo_centroid.point = d3_geo_centroidPoint; +} + +// See J. E. Brock, The Inertia Tensor for a Spherical Triangle, +// J. Applied Mechanics 42, 239 (1975). +function d3_geo_centroidRingStart() { + var λ00, φ00, // first point + x0, y0, z0; // previous point + + d3_geo_centroid.point = function(λ, φ) { + λ00 = λ, φ00 = φ; + d3_geo_centroid.point = nextPoint; + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians); + x0 = cosφ * Math.cos(λ); + y0 = cosφ * Math.sin(λ); + z0 = Math.sin(φ); + d3_geo_centroidPointXYZ(x0, y0, z0); + }; + + d3_geo_centroid.lineEnd = function() { + nextPoint(λ00, φ00); + d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd; + d3_geo_centroid.point = d3_geo_centroidPoint; + }; + + function nextPoint(λ, φ) { + λ *= d3_radians; + var cosφ = Math.cos(φ *= d3_radians), + x = cosφ * Math.cos(λ), + y = cosφ * Math.sin(λ), + z = Math.sin(φ), + cx = y0 * z - z0 * y, + cy = z0 * x - x0 * z, + cz = x0 * y - y0 * x, + m = Math.sqrt(cx * cx + cy * cy + cz * cz), + u = x0 * x + y0 * y + z0 * z, + v = m && -d3_acos(u) / m, // area weight + w = Math.atan2(m, u); // line weight + d3_geo_centroidX2 += v * cx; + d3_geo_centroidY2 += v * cy; + d3_geo_centroidZ2 += v * cz; + d3_geo_centroidW1 += w; + d3_geo_centroidX1 += w * (x0 + (x0 = x)); + d3_geo_centroidY1 += w * (y0 + (y0 = y)); + d3_geo_centroidZ1 += w * (z0 + (z0 = z)); + d3_geo_centroidPointXYZ(x0, y0, z0); + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/circle.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/circle.js new file mode 100644 index 000000000..e1d1186cb --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/circle.js @@ -0,0 +1,81 @@ +import "../math/trigonometry"; +import "cartesian"; +import "geo"; +import "rotation"; +import "spherical"; + +d3.geo.circle = function() { + var origin = [0, 0], + angle, + precision = 6, + interpolate; + + function circle() { + var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, + rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, + ring = []; + + interpolate(null, null, 1, { + point: function(x, y) { + ring.push(x = rotate(x, y)); + x[0] *= d3_degrees, x[1] *= d3_degrees; + } + }); + + return {type: "Polygon", coordinates: [ring]}; + } + + circle.origin = function(x) { + if (!arguments.length) return origin; + origin = x; + return circle; + }; + + circle.angle = function(x) { + if (!arguments.length) return angle; + interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians); + return circle; + }; + + circle.precision = function(_) { + if (!arguments.length) return precision; + interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians); + return circle; + }; + + return circle.angle(90); +}; + +// Interpolates along a circle centered at [0°, 0°], with a given radius and +// precision. +function d3_geo_circleInterpolate(radius, precision) { + var cr = Math.cos(radius), + sr = Math.sin(radius); + return function(from, to, direction, listener) { + var step = direction * precision; + if (from != null) { + from = d3_geo_circleAngle(cr, from); + to = d3_geo_circleAngle(cr, to); + if (direction > 0 ? from < to: from > to) from += direction * τ; + } else { + from = radius + direction * τ; + to = radius - 0.5 * step; + } + for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) { + listener.point((point = d3_geo_spherical([ + cr, + -sr * Math.cos(t), + -sr * Math.sin(t) + ]))[0], point[1]); + } + }; +} + +// Signed angle of a cartesian point relative to [cr, 0, 0]. +function d3_geo_circleAngle(cr, point) { + var a = d3_geo_cartesian(point); + a[0] -= cr; + d3_geo_cartesianNormalize(a); + var angle = d3_acos(-a[1]); + return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-antimeridian.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-antimeridian.js new file mode 100644 index 000000000..144a35d65 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-antimeridian.js @@ -0,0 +1,95 @@ +import "../core/true"; +import "../math/abs"; +import "../math/trigonometry"; +import "clip"; + +var d3_geo_clipAntimeridian = d3_geo_clip( + d3_true, + d3_geo_clipAntimeridianLine, + d3_geo_clipAntimeridianInterpolate, + [-π, -π / 2]); + +// Takes a line and cuts into visible segments. Return values: +// 0: there were intersections or the line was empty. +// 1: no intersections. +// 2: there were intersections, and the first and last segments should be +// rejoined. +function d3_geo_clipAntimeridianLine(listener) { + var λ0 = NaN, + φ0 = NaN, + sλ0 = NaN, + clean; // no intersections + + return { + lineStart: function() { + listener.lineStart(); + clean = 1; + }, + point: function(λ1, φ1) { + var sλ1 = λ1 > 0 ? π : -π, + dλ = abs(λ1 - λ0); + if (abs(dλ - π) < ε) { // line crosses a pole + listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + listener.point(λ1, φ0); + clean = 0; + } else if (sλ0 !== sλ1 && dλ >= π) { // line crosses antimeridian + // handle degeneracies + if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε; + if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε; + φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1); + listener.point(sλ0, φ0); + listener.lineEnd(); + listener.lineStart(); + listener.point(sλ1, φ0); + clean = 0; + } + listener.point(λ0 = λ1, φ0 = φ1); + sλ0 = sλ1; + }, + lineEnd: function() { + listener.lineEnd(); + λ0 = φ0 = NaN; + }, + // if there are intersections, we always rejoin the first and last segments. + clean: function() { return 2 - clean; } + }; +} + +function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) { + var cosφ0, + cosφ1, + sinλ0_λ1 = Math.sin(λ0 - λ1); + return abs(sinλ0_λ1) > ε + ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) + - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) + / (cosφ0 * cosφ1 * sinλ0_λ1)) + : (φ0 + φ1) / 2; +} + +function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) { + var φ; + if (from == null) { + φ = direction * halfπ; + listener.point(-π, φ); + listener.point( 0, φ); + listener.point( π, φ); + listener.point( π, 0); + listener.point( π, -φ); + listener.point( 0, -φ); + listener.point(-π, -φ); + listener.point(-π, 0); + listener.point(-π, φ); + } else if (abs(from[0] - to[0]) > ε) { + var s = from[0] < to[0] ? π : -π; + φ = direction * s / 2; + listener.point(-s, φ); + listener.point( 0, φ); + listener.point( s, φ); + } else { + listener.point(to[0], to[1]); + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-circle.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-circle.js new file mode 100644 index 000000000..d204a51a2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-circle.js @@ -0,0 +1,178 @@ +import "../math/abs"; +import "../math/trigonometry"; +import "cartesian"; +import "clip"; +import "circle"; +import "spherical"; +import "point-in-polygon"; + +// Clip features against a small circle centered at [0°, 0°]. +function d3_geo_clipCircle(radius) { + var cr = Math.cos(radius), + smallRadius = cr > 0, + notHemisphere = abs(cr) > ε, // TODO optimise for this common case + interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); + + return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-π, radius - π]); + + function visible(λ, φ) { + return Math.cos(λ) * Math.cos(φ) > cr; + } + + // Takes a line and cuts into visible segments. Return values used for + // polygon clipping: + // 0: there were intersections or the line was empty. + // 1: no intersections. + // 2: there were intersections, and the first and last segments should be + // rejoined. + function clipLine(listener) { + var point0, // previous point + c0, // code for previous point + v0, // visibility of previous point + v00, // visibility of first point + clean; // no intersections + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(λ, φ) { + var point1 = [λ, φ], + point2, + v = visible(λ, φ), + c = smallRadius + ? v ? 0 : code(λ, φ) + : v ? code(λ + (λ < 0 ? π : -π), φ) : 0; + if (!point0 && (v00 = v0 = v)) listener.lineStart(); + // Handle degeneracies. + // TODO ignore if not clipping polygons. + if (v !== v0) { + point2 = intersect(point0, point1); + if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) { + point1[0] += ε; + point1[1] += ε; + v = visible(point1[0], point1[1]); + } + } + if (v !== v0) { + clean = 0; + if (v) { + // outside going in + listener.lineStart(); + point2 = intersect(point1, point0); + listener.point(point2[0], point2[1]); + } else { + // inside going out + point2 = intersect(point0, point1); + listener.point(point2[0], point2[1]); + listener.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + // If the codes for two points are different, or are both zero, + // and there this segment intersects with the small circle. + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + } else { + listener.point(t[1][0], t[1][1]); + listener.lineEnd(); + listener.lineStart(); + listener.point(t[0][0], t[0][1]); + } + } + } + if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) { + listener.point(point1[0], point1[1]); + } + point0 = point1, v0 = v, c0 = c; + }, + lineEnd: function() { + if (v0) listener.lineEnd(); + point0 = null; + }, + // Rejoin first and last segments if there were intersections and the first + // and last points were visible. + clean: function() { return clean | ((v00 && v0) << 1); } + }; + } + + // Intersects the great circle between a and b with the clip circle. + function intersect(a, b, two) { + var pa = d3_geo_cartesian(a), + pb = d3_geo_cartesian(b); + + // We have two planes, n1.p = d1 and n2.p = d2. + // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2). + var n1 = [1, 0, 0], // normal + n2 = d3_geo_cartesianCross(pa, pb), + n2n2 = d3_geo_cartesianDot(n2, n2), + n1n2 = n2[0], // d3_geo_cartesianDot(n1, n2), + determinant = n2n2 - n1n2 * n1n2; + + // Two polar points. + if (!determinant) return !two && a; + + var c1 = cr * n2n2 / determinant, + c2 = -cr * n1n2 / determinant, + n1xn2 = d3_geo_cartesianCross(n1, n2), + A = d3_geo_cartesianScale(n1, c1), + B = d3_geo_cartesianScale(n2, c2); + d3_geo_cartesianAdd(A, B); + + // Solve |p(t)|^2 = 1. + var u = n1xn2, + w = d3_geo_cartesianDot(A, u), + uu = d3_geo_cartesianDot(u, u), + t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1); + + if (t2 < 0) return; + + var t = Math.sqrt(t2), + q = d3_geo_cartesianScale(u, (-w - t) / uu); + d3_geo_cartesianAdd(q, A); + q = d3_geo_spherical(q); + if (!two) return q; + + // Two intersection points. + var λ0 = a[0], + λ1 = b[0], + φ0 = a[1], + φ1 = b[1], + z; + if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z; + var δλ = λ1 - λ0, + polar = abs(δλ - π) < ε, + meridian = polar || δλ < ε; + + if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z; + + // Check that the first point is between a and b. + if (meridian + ? polar + ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) + : φ0 <= q[1] && q[1] <= φ1 + : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) { + var q1 = d3_geo_cartesianScale(u, (-w + t) / uu); + d3_geo_cartesianAdd(q1, A); + return [q, d3_geo_spherical(q1)]; + } + } + + // Generates a 4-bit vector representing the location of a point relative to + // the small circle's bounding box. + function code(λ, φ) { + var r = smallRadius ? radius : π - radius, + code = 0; + if (λ < -r) code |= 1; // left + else if (λ > r) code |= 2; // right + if (φ < -r) code |= 4; // below + else if (φ > r) code |= 8; // above + return code; + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-extent.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-extent.js new file mode 100644 index 000000000..cc69dd0fc --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-extent.js @@ -0,0 +1,196 @@ +import "../arrays/merge"; +import "../math/abs"; +import "../math/trigonometry"; +import "../geom/clip-line"; +import "geo"; +import "clip"; +import "clip-polygon"; + +var d3_geo_clipExtentMAX = 1e9; + +d3.geo.clipExtent = function() { + var x0, y0, x1, y1, + stream, + clip, + clipExtent = { + stream: function(output) { + if (stream) stream.valid = false; + stream = clip(output); + stream.valid = true; // allow caching by d3.geo.path + return stream; + }, + extent: function(_) { + if (!arguments.length) return [[x0, y0], [x1, y1]]; + clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]); + if (stream) stream.valid = false, stream = null; + return clipExtent; + } + }; + return clipExtent.extent([[0, 0], [960, 500]]); +}; + +function d3_geo_clipExtent(x0, y0, x1, y1) { + return function(listener) { + var listener_ = listener, + bufferListener = d3_geo_clipBufferListener(), + clipLine = d3_geom_clipLine(x0, y0, x1, y1), + segments, + polygon, + ring; + + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + listener = bufferListener; + segments = []; + polygon = []; + clean = true; + }, + polygonEnd: function() { + listener = listener_; + segments = d3.merge(segments); + var clipStartInside = insidePolygon([x0, y1]), + inside = clean && clipStartInside, + visible = segments.length; + if (inside || visible) { + listener.polygonStart(); + if (inside) { + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (visible) { + d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener); + } + listener.polygonEnd(); + } + segments = polygon = ring = null; + } + }; + + function insidePolygon(p) { + var wn = 0, // the winding number counter + n = polygon.length, + y = p[1]; + + for (var i = 0; i < n; ++i) { + for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) { + b = v[j]; + if (a[1] <= y) { + if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn; + } else { + if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn; + } + a = b; + } + } + return wn !== 0; + } + + function interpolate(from, to, direction, listener) { + var a = 0, a1 = 0; + if (from == null || + (a = corner(from, direction)) !== (a1 = corner(to, direction)) || + comparePoints(from, to) < 0 ^ direction > 0) { + do { + listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + } while ((a = (a + direction + 4) % 4) !== a1); + } else { + listener.point(to[0], to[1]); + } + } + + function pointVisible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; + } + + function point(x, y) { + if (pointVisible(x, y)) listener.point(x, y); + } + + var x__, y__, v__, // first point + x_, y_, v_, // previous point + first, + clean; + + function lineStart() { + clip.point = linePoint; + if (polygon) polygon.push(ring = []); + first = true; + v_ = false; + x_ = y_ = NaN; + } + + function lineEnd() { + // TODO rather than special-case polygons, simply handle them separately. + // Ideally, coincident intersection points should be jittered to avoid + // clipping issues. + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferListener.rejoin(); + segments.push(bufferListener.buffer()); + } + clip.point = point; + if (v_) listener.lineEnd(); + } + + function linePoint(x, y) { + x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x)); + y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y)); + var v = pointVisible(x, y); + if (polygon) ring.push([x, y]); + if (first) { + x__ = x, y__ = y, v__ = v; + first = false; + if (v) { + listener.lineStart(); + listener.point(x, y); + } + } else { + if (v && v_) listener.point(x, y); + else { + var l = {a: {x: x_, y: y_}, b: {x: x, y: y}}; + if (clipLine(l)) { + if (!v_) { + listener.lineStart(); + listener.point(l.a.x, l.a.y); + } + listener.point(l.b.x, l.b.y); + if (!v) listener.lineEnd(); + clean = false; + } else if (v) { + listener.lineStart(); + listener.point(x, y); + clean = false; + } + } + } + x_ = x, y_ = y, v_ = v; + } + + return clip; + }; + + function corner(p, direction) { + return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 + : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 + : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 + : direction > 0 ? 3 : 2; // abs(p[1] - y1) < ε + } + + function compare(a, b) { + return comparePoints(a.x, b.x); + } + + function comparePoints(a, b) { + var ca = corner(a, 1), + cb = corner(b, 1); + return ca !== cb ? ca - cb + : ca === 0 ? b[1] - a[1] + : ca === 1 ? a[0] - b[0] + : ca === 2 ? a[1] - b[1] + : b[0] - a[0]; + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-polygon.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-polygon.js new file mode 100644 index 000000000..4dd960c64 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip-polygon.js @@ -0,0 +1,104 @@ +import "../math/trigonometry"; +import "spherical"; + +// General spherical polygon clipping algorithm: takes a polygon, cuts it into +// visible line segments and rejoins the segments by interpolating along the +// clip edge. +function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) { + var subject = [], + clip = []; + + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, p0 = segment[0], p1 = segment[n]; + + // If the first and last points of a segment are coincident, then treat as + // a closed ring. + // TODO if all rings are closed, then the winding order of the exterior + // ring should be checked. + if (d3_geo_sphericalEqual(p0, p1)) { + listener.lineStart(); + for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]); + listener.lineEnd(); + return; + } + + var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), + b = new d3_geo_clipPolygonIntersection(p0, null, a, false); + a.o = b; + subject.push(a); + clip.push(b); + a = new d3_geo_clipPolygonIntersection(p1, segment, null, false); + b = new d3_geo_clipPolygonIntersection(p1, null, a, true); + a.o = b; + subject.push(a); + clip.push(b); + }); + clip.sort(compare); + d3_geo_clipPolygonLinkCircular(subject); + d3_geo_clipPolygonLinkCircular(clip); + if (!subject.length) return; + + for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) { + clip[i].e = entry = !entry; + } + + var start = subject[0], + points, + point; + while (1) { + // Find first unvisited intersection. + var current = start, + isSubject = true; + while (current.v) if ((current = current.n) === start) return; + points = current.z; + listener.lineStart(); + do { + current.v = current.o.v = true; + if (current.e) { + if (isSubject) { + for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.n.x, 1, listener); + } + current = current.n; + } else { + if (isSubject) { + points = current.p.z; + for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.p.x, -1, listener); + } + current = current.p; + } + current = current.o; + points = current.z; + isSubject = !isSubject; + } while (!current.v); + listener.lineEnd(); + } +} + +function d3_geo_clipPolygonLinkCircular(array) { + if (!(n = array.length)) return; + var n, + i = 0, + a = array[0], + b; + while (++i < n) { + a.n = b = array[i]; + b.p = a; + a = b; + } + a.n = b = array[0]; + b.p = a; +} + +function d3_geo_clipPolygonIntersection(point, points, other, entry) { + this.x = point; + this.z = points; + this.o = other; // another intersection + this.e = entry; // is an entry? + this.v = false; // visited + this.n = this.p = null; // next & previous +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip.js new file mode 100644 index 000000000..9c54214e6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/clip.js @@ -0,0 +1,149 @@ +import "../arrays/merge"; +import "../core/noop"; +import "../math/trigonometry"; +import "clip-polygon"; + +function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) { + return function(rotate, listener) { + var line = clipLine(listener), + rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]); + + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + segments = []; + polygon = []; + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + + segments = d3.merge(segments); + var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon); + if (segments.length) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener); + } else if (clipStartInside) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + } + if (polygonStarted) listener.polygonEnd(), polygonStarted = false; + segments = polygon = null; + }, + sphere: function() { + listener.polygonStart(); + listener.lineStart(); + interpolate(null, null, 1, listener); + listener.lineEnd(); + listener.polygonEnd(); + } + }; + + function point(λ, φ) { + var point = rotate(λ, φ); + if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ); + } + function pointLine(λ, φ) { + var point = rotate(λ, φ); + line.point(point[0], point[1]); + } + function lineStart() { clip.point = pointLine; line.lineStart(); } + function lineEnd() { clip.point = point; line.lineEnd(); } + + var segments; + + var buffer = d3_geo_clipBufferListener(), + ringListener = clipLine(buffer), + polygonStarted = false, + polygon, + ring; + + function pointRing(λ, φ) { + ring.push([λ, φ]); + var point = rotate(λ, φ); + ringListener.point(point[0], point[1]); + } + + function ringStart() { + ringListener.lineStart(); + ring = []; + } + + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringListener.lineEnd(); + + var clean = ringListener.clean(), + ringSegments = buffer.buffer(), + segment, + n = ringSegments.length; + + ring.pop(); + polygon.push(ring); + ring = null; + + if (!n) return; + + // No intersections. + if (clean & 1) { + segment = ringSegments[0]; + var n = segment.length - 1, + i = -1, + point; + if (n > 0) { + if (!polygonStarted) listener.polygonStart(), polygonStarted = true; + listener.lineStart(); + while (++i < n) listener.point((point = segment[i])[0], point[1]); + listener.lineEnd(); + } + return; + } + + // Rejoin connected segments. + // TODO reuse bufferListener.rejoin()? + if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + + segments.push(ringSegments.filter(d3_geo_clipSegmentLength1)); + } + + return clip; + }; +} + +function d3_geo_clipSegmentLength1(segment) { + return segment.length > 1; +} + +function d3_geo_clipBufferListener() { + var lines = [], + line; + return { + lineStart: function() { lines.push(line = []); }, + point: function(λ, φ) { line.push([λ, φ]); }, + lineEnd: d3_noop, + buffer: function() { + var buffer = lines; + lines = []; + line = null; + return buffer; + }, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); + } + }; +} + +// Intersection points are sorted along the clip edge. For both antimeridian +// cutting and circle clipping, the same comparison is used. +function d3_geo_clipSort(a, b) { + return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) + - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/compose.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/compose.js new file mode 100644 index 000000000..fe374ef82 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/compose.js @@ -0,0 +1,12 @@ +function d3_geo_compose(a, b) { + + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); + } + + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + + return compose; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-conformal.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-conformal.js new file mode 100644 index 000000000..80023221c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-conformal.js @@ -0,0 +1,39 @@ +import "../math/abs"; +import "../math/trigonometry"; +import "conic"; +import "geo"; +import "projection"; + +function d3_geo_conicConformal(φ0, φ1) { + var cosφ0 = Math.cos(φ0), + t = function(φ) { return Math.tan(π / 4 + φ / 2); }, + n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), + F = cosφ0 * Math.pow(t(φ0), n) / n; + + if (!n) return d3_geo_mercator; + + function forward(λ, φ) { + if (F > 0) { if (φ < -halfπ + ε) φ = -halfπ + ε; } + else { if (φ > halfπ - ε) φ = halfπ - ε; } + var ρ = F / Math.pow(t(φ), n); + return [ + ρ * Math.sin(n * λ), + F - ρ * Math.cos(n * λ) + ]; + } + + forward.invert = function(x, y) { + var ρ0_y = F - y, + ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y); + return [ + Math.atan2(x, ρ0_y) / n, + 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ + ]; + }; + + return forward; +} + +(d3.geo.conicConformal = function() { + return d3_geo_conic(d3_geo_conicConformal); +}).raw = d3_geo_conicConformal; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-equal-area.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-equal-area.js new file mode 100644 index 000000000..7ccfb32eb --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-equal-area.js @@ -0,0 +1,33 @@ +import "../math/trigonometry"; +import "geo"; +import "conic"; +import "projection"; + +function d3_geo_conicEqualArea(φ0, φ1) { + var sinφ0 = Math.sin(φ0), + n = (sinφ0 + Math.sin(φ1)) / 2, + C = 1 + sinφ0 * (2 * n - sinφ0), + ρ0 = Math.sqrt(C) / n; + + function forward(λ, φ) { + var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n; + return [ + ρ * Math.sin(λ *= n), + ρ0 - ρ * Math.cos(λ) + ]; + } + + forward.invert = function(x, y) { + var ρ0_y = ρ0 - y; + return [ + Math.atan2(x, ρ0_y) / n, + d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) + ]; + }; + + return forward; +} + +(d3.geo.conicEqualArea = function() { + return d3_geo_conic(d3_geo_conicEqualArea); +}).raw = d3_geo_conicEqualArea; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-equidistant.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-equidistant.js new file mode 100644 index 000000000..24935b0e7 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic-equidistant.js @@ -0,0 +1,36 @@ +import "../math/abs"; +import "../math/trigonometry"; +import "conic"; +import "equirectangular"; +import "geo"; +import "projection"; + +function d3_geo_conicEquidistant(φ0, φ1) { + var cosφ0 = Math.cos(φ0), + n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), + G = cosφ0 / n + φ0; + + if (abs(n) < ε) return d3_geo_equirectangular; + + function forward(λ, φ) { + var ρ = G - φ; + return [ + ρ * Math.sin(n * λ), + G - ρ * Math.cos(n * λ) + ]; + } + + forward.invert = function(x, y) { + var ρ0_y = G - y; + return [ + Math.atan2(x, ρ0_y) / n, + G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) + ]; + }; + + return forward; +} + +(d3.geo.conicEquidistant = function() { + return d3_geo_conic(d3_geo_conicEquidistant); +}).raw = d3_geo_conicEquidistant; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic.js new file mode 100644 index 000000000..8377ec5bb --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/conic.js @@ -0,0 +1,16 @@ +import "../math/trigonometry"; +import "projection"; + +function d3_geo_conic(projectAt) { + var φ0 = 0, + φ1 = π / 3, + m = d3_geo_projectionMutator(projectAt), + p = m(φ0, φ1); + + p.parallels = function(_) { + if (!arguments.length) return [φ0 / π * 180, φ1 / π * 180]; + return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180); + }; + + return p; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/distance.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/distance.js new file mode 100644 index 000000000..805dda7b0 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/distance.js @@ -0,0 +1,13 @@ +import "../math/trigonometry"; +import "geo"; + +// Length returned in radians; multiply by radius for distance. +d3.geo.distance = function(a, b) { + var Δλ = (b[0] - a[0]) * d3_radians, + φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, + sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), + sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), + sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), + t; + return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/equirectangular.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/equirectangular.js new file mode 100644 index 000000000..eb9cfe08b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/equirectangular.js @@ -0,0 +1,10 @@ +import "geo"; +import "projection"; + +function d3_geo_equirectangular(λ, φ) { + return [λ, φ]; +} + +(d3.geo.equirectangular = function() { + return d3_geo_projection(d3_geo_equirectangular); +}).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/geo.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/geo.js new file mode 100644 index 000000000..cf220ceb0 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/geo.js @@ -0,0 +1 @@ +d3.geo = {}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/gnomonic.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/gnomonic.js new file mode 100644 index 000000000..8878ad810 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/gnomonic.js @@ -0,0 +1,12 @@ +import "azimuthal"; +import "geo"; +import "projection"; + +var d3_geo_gnomonic = d3_geo_azimuthal( + function(cosλcosφ) { return 1 / cosλcosφ; }, + Math.atan +); + +(d3.geo.gnomonic = function() { + return d3_geo_projection(d3_geo_gnomonic); +}).raw = d3_geo_gnomonic; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/graticule.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/graticule.js new file mode 100644 index 000000000..2522059e5 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/graticule.js @@ -0,0 +1,103 @@ +import "../arrays/range"; +import "../math/abs"; +import "../math/trigonometry"; +import "geo"; + +d3.geo.graticule = function() { + var x1, x0, X1, X0, + y1, y0, Y1, Y0, + dx = 10, dy = dx, DX = 90, DY = 360, + x, y, X, Y, + precision = 2.5; + + function graticule() { + return {type: "MultiLineString", coordinates: lines()}; + } + + function lines() { + return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X) + .concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)) + .concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > ε; }).map(x)) + .concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > ε; }).map(y)); + } + + graticule.lines = function() { + return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; }); + }; + + graticule.outline = function() { + return { + type: "Polygon", + coordinates: [ + X(X0).concat( + Y(Y1).slice(1), + X(X1).reverse().slice(1), + Y(Y0).reverse().slice(1)) + ] + }; + }; + + graticule.extent = function(_) { + if (!arguments.length) return graticule.minorExtent(); + return graticule.majorExtent(_).minorExtent(_); + }; + + graticule.majorExtent = function(_) { + if (!arguments.length) return [[X0, Y0], [X1, Y1]]; + X0 = +_[0][0], X1 = +_[1][0]; + Y0 = +_[0][1], Y1 = +_[1][1]; + if (X0 > X1) _ = X0, X0 = X1, X1 = _; + if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; + return graticule.precision(precision); + }; + + graticule.minorExtent = function(_) { + if (!arguments.length) return [[x0, y0], [x1, y1]]; + x0 = +_[0][0], x1 = +_[1][0]; + y0 = +_[0][1], y1 = +_[1][1]; + if (x0 > x1) _ = x0, x0 = x1, x1 = _; + if (y0 > y1) _ = y0, y0 = y1, y1 = _; + return graticule.precision(precision); + }; + + graticule.step = function(_) { + if (!arguments.length) return graticule.minorStep(); + return graticule.majorStep(_).minorStep(_); + }; + + graticule.majorStep = function(_) { + if (!arguments.length) return [DX, DY]; + DX = +_[0], DY = +_[1]; + return graticule; + }; + + graticule.minorStep = function(_) { + if (!arguments.length) return [dx, dy]; + dx = +_[0], dy = +_[1]; + return graticule; + }; + + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = d3_geo_graticuleX(y0, y1, 90); + y = d3_geo_graticuleY(x0, x1, precision); + X = d3_geo_graticuleX(Y0, Y1, 90); + Y = d3_geo_graticuleY(X0, X1, precision); + return graticule; + }; + + return graticule + .majorExtent([[-180, -90 + ε], [180, 90 - ε]]) + .minorExtent([[-180, -80 - ε], [180, 80 + ε]]); +}; + +function d3_geo_graticuleX(y0, y1, dy) { + var y = d3.range(y0, y1 - ε, dy).concat(y1); + return function(x) { return y.map(function(y) { return [x, y]; }); }; +} + +function d3_geo_graticuleY(x0, x1, dx) { + var x = d3.range(x0, x1 - ε, dx).concat(x1); + return function(y) { return x.map(function(x) { return [x, y]; }); }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/greatArc.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/greatArc.js new file mode 100644 index 000000000..a60a48888 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/greatArc.js @@ -0,0 +1,42 @@ +import "../core/source"; +import "../core/target"; +import "geo"; +import "distance"; + +// @deprecated use {type: "LineString"} or d3.geo.distance instead. +d3.geo.greatArc = function() { + var source = d3_source, source_, + target = d3_target, target_; + + function greatArc() { + return {type: "LineString", coordinates: [ + source_ || source.apply(this, arguments), + target_ || target.apply(this, arguments) + ]}; + } + + greatArc.distance = function() { + return d3.geo.distance( + source_ || source.apply(this, arguments), + target_ || target.apply(this, arguments) + ); + }; + + greatArc.source = function(_) { + if (!arguments.length) return source; + source = _, source_ = typeof _ === "function" ? null : _; + return greatArc; + }; + + greatArc.target = function(_) { + if (!arguments.length) return target; + target = _, target_ = typeof _ === "function" ? null : _; + return greatArc; + }; + + greatArc.precision = function() { + return arguments.length ? greatArc : 0; + }; + + return greatArc; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/index.js new file mode 100644 index 000000000..c95f34162 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/index.js @@ -0,0 +1,33 @@ +import "geo"; +import "area"; +import "bounds"; +import "centroid"; +import "circle"; +import "distance"; +import "graticule"; +import "greatArc"; +import "interpolate"; +import "length"; +import "path"; +import "path-area"; +import "path-buffer"; +import "path-centroid"; +import "path-context"; +import "projection"; +import "rotation"; +import "stream"; +import "transform"; +import "albers"; +import "albers-usa"; +import "azimuthal"; +import "azimuthal-equal-area"; +import "azimuthal-equidistant"; +import "conic-conformal"; +import "conic-equal-area"; +import "conic-equidistant"; +import "equirectangular"; +import "gnomonic"; +import "mercator"; +import "orthographic"; +import "stereographic"; +import "transverse-mercator"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/interpolate.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/interpolate.js new file mode 100644 index 000000000..dba105baa --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/interpolate.js @@ -0,0 +1,38 @@ +import "../math/trigonometry"; +import "geo"; + +d3.geo.interpolate = function(source, target) { + return d3_geo_interpolate( + source[0] * d3_radians, source[1] * d3_radians, + target[0] * d3_radians, target[1] * d3_radians + ); +}; + +function d3_geo_interpolate(x0, y0, x1, y1) { + var cy0 = Math.cos(y0), + sy0 = Math.sin(y0), + cy1 = Math.cos(y1), + sy1 = Math.sin(y1), + kx0 = cy0 * Math.cos(x0), + ky0 = cy0 * Math.sin(x0), + kx1 = cy1 * Math.cos(x1), + ky1 = cy1 * Math.sin(x1), + d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), + k = 1 / Math.sin(d); + + var interpolate = d ? function(t) { + var B = Math.sin(t *= d) * k, + A = Math.sin(d - t) * k, + x = A * kx0 + B * kx1, + y = A * ky0 + B * ky1, + z = A * sy0 + B * sy1; + return [ + Math.atan2(y, x) * d3_degrees, + Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees + ]; + } : function() { return [x0 * d3_degrees, y0 * d3_degrees]; }; + + interpolate.distance = d; + + return interpolate; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/length.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/length.js new file mode 100644 index 000000000..d977d0407 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/length.js @@ -0,0 +1,44 @@ +import "../core/noop"; +import "../math/abs"; +import "../math/trigonometry"; +import "geo"; +import "stream"; + +d3.geo.length = function(object) { + d3_geo_lengthSum = 0; + d3.geo.stream(object, d3_geo_length); + return d3_geo_lengthSum; +}; + +var d3_geo_lengthSum; + +var d3_geo_length = { + sphere: d3_noop, + point: d3_noop, + lineStart: d3_geo_lengthLineStart, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop +}; + +function d3_geo_lengthLineStart() { + var λ0, sinφ0, cosφ0; + + d3_geo_length.point = function(λ, φ) { + λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ); + d3_geo_length.point = nextPoint; + }; + + d3_geo_length.lineEnd = function() { + d3_geo_length.point = d3_geo_length.lineEnd = d3_noop; + }; + + function nextPoint(λ, φ) { + var sinφ = Math.sin(φ *= d3_radians), + cosφ = Math.cos(φ), + t = abs((λ *= d3_radians) - λ0), + cosΔλ = Math.cos(t); + d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ); + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ; + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/mercator.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/mercator.js new file mode 100644 index 000000000..7eb824d2a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/mercator.js @@ -0,0 +1,48 @@ +import "../math/trigonometry"; +import "geo"; +import "projection"; + +function d3_geo_mercator(λ, φ) { + return [λ, Math.log(Math.tan(π / 4 + φ / 2))]; +} + +d3_geo_mercator.invert = function(x, y) { + return [x, 2 * Math.atan(Math.exp(y)) - halfπ]; +}; + +function d3_geo_mercatorProjection(project) { + var m = d3_geo_projection(project), + scale = m.scale, + translate = m.translate, + clipExtent = m.clipExtent, + clipAuto; + + m.scale = function() { + var v = scale.apply(m, arguments); + return v === m ? (clipAuto ? m.clipExtent(null) : m) : v; + }; + + m.translate = function() { + var v = translate.apply(m, arguments); + return v === m ? (clipAuto ? m.clipExtent(null) : m) : v; + }; + + m.clipExtent = function(_) { + var v = clipExtent.apply(m, arguments); + if (v === m) { + if (clipAuto = _ == null) { + var k = π * scale(), t = translate(); + clipExtent([[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]]); + } + } else if (clipAuto) { + v = null; + } + return v; + }; + + return m.clipExtent(null); +} + +(d3.geo.mercator = function() { + return d3_geo_mercatorProjection(d3_geo_mercator); +}).raw = d3_geo_mercator; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/orthographic.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/orthographic.js new file mode 100644 index 000000000..f51b50063 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/orthographic.js @@ -0,0 +1,12 @@ +import "azimuthal"; +import "geo"; +import "projection"; + +var d3_geo_orthographic = d3_geo_azimuthal( + function() { return 1; }, + Math.asin +); + +(d3.geo.orthographic = function() { + return d3_geo_projection(d3_geo_orthographic); +}).raw = d3_geo_orthographic; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-area.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-area.js new file mode 100644 index 000000000..53b10e118 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-area.js @@ -0,0 +1,41 @@ +import "../core/noop"; +import "../math/abs"; + +// TODO Unify this code with d3.geom.polygon area? + +var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = { + point: d3_noop, + lineStart: d3_noop, + lineEnd: d3_noop, + + // Only count area for polygon rings. + polygonStart: function() { + d3_geo_pathAreaPolygon = 0; + d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart; + }, + polygonEnd: function() { + d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop; + d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2); + } +}; + +function d3_geo_pathAreaRingStart() { + var x00, y00, x0, y0; + + // For the first point, … + d3_geo_pathArea.point = function(x, y) { + d3_geo_pathArea.point = nextPoint; + x00 = x0 = x, y00 = y0 = y; + }; + + // For subsequent points, … + function nextPoint(x, y) { + d3_geo_pathAreaPolygon += y0 * x - x0 * y; + x0 = x, y0 = y; + } + + // For the last point, return to the start. + d3_geo_pathArea.lineEnd = function() { + nextPoint(x00, y00); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-bounds.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-bounds.js new file mode 100644 index 000000000..53c7a06b1 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-bounds.js @@ -0,0 +1,21 @@ +import "../core/noop"; + +var d3_geo_pathBoundsX0, + d3_geo_pathBoundsY0, + d3_geo_pathBoundsX1, + d3_geo_pathBoundsY1; + +var d3_geo_pathBounds = { + point: d3_geo_pathBoundsPoint, + lineStart: d3_noop, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop +}; + +function d3_geo_pathBoundsPoint(x, y) { + if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x; + if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x; + if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y; + if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-buffer.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-buffer.js new file mode 100644 index 000000000..d14a2fb2c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-buffer.js @@ -0,0 +1,59 @@ +function d3_geo_pathBuffer() { + var pointCircle = d3_geo_pathBufferCircle(4.5), + buffer = []; + + var stream = { + point: point, + + // While inside a line, override point to moveTo then lineTo. + lineStart: function() { stream.point = pointLineStart; }, + lineEnd: lineEnd, + + // While inside a polygon, override lineEnd to closePath. + polygonStart: function() { stream.lineEnd = lineEndPolygon; }, + polygonEnd: function() { stream.lineEnd = lineEnd; stream.point = point; }, + + pointRadius: function(_) { + pointCircle = d3_geo_pathBufferCircle(_); + return stream; + }, + + result: function() { + if (buffer.length) { + var result = buffer.join(""); + buffer = []; + return result; + } + } + }; + + function point(x, y) { + buffer.push("M", x, ",", y, pointCircle); + } + + function pointLineStart(x, y) { + buffer.push("M", x, ",", y); + stream.point = pointLine; + } + + function pointLine(x, y) { + buffer.push("L", x, ",", y); + } + + function lineEnd() { + stream.point = point; + } + + function lineEndPolygon() { + buffer.push("Z"); + } + + return stream; +} + +function d3_geo_pathBufferCircle(radius) { + return "m0," + radius + + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + + "z"; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-centroid.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-centroid.js new file mode 100644 index 000000000..cda589709 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-centroid.js @@ -0,0 +1,78 @@ +import "centroid"; + +// TODO Unify this code with d3.geom.polygon centroid? +// TODO Enforce positive area for exterior, negative area for interior? + +var d3_geo_pathCentroid = { + point: d3_geo_pathCentroidPoint, + + // For lines, weight by length. + lineStart: d3_geo_pathCentroidLineStart, + lineEnd: d3_geo_pathCentroidLineEnd, + + // For polygons, weight by area. + polygonStart: function() { + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart; + }, + polygonEnd: function() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; + d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart; + d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd; + } +}; + +function d3_geo_pathCentroidPoint(x, y) { + d3_geo_centroidX0 += x; + d3_geo_centroidY0 += y; + ++d3_geo_centroidZ0; +} + +function d3_geo_pathCentroidLineStart() { + var x0, y0; + + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + }; + + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + } +} + +function d3_geo_pathCentroidLineEnd() { + d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; +} + +function d3_geo_pathCentroidRingStart() { + var x00, y00, x0, y0; + + // For the first point, … + d3_geo_pathCentroid.point = function(x, y) { + d3_geo_pathCentroid.point = nextPoint; + d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y); + }; + + // For subsequent points, … + function nextPoint(x, y) { + var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); + d3_geo_centroidX1 += z * (x0 + x) / 2; + d3_geo_centroidY1 += z * (y0 + y) / 2; + d3_geo_centroidZ1 += z; + + z = y0 * x - x0 * y; + d3_geo_centroidX2 += z * (x0 + x); + d3_geo_centroidY2 += z * (y0 + y); + d3_geo_centroidZ2 += z * 3; + d3_geo_pathCentroidPoint(x0 = x, y0 = y); + } + + // For the last point, return to the start. + d3_geo_pathCentroid.lineEnd = function() { + nextPoint(x00, y00); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-context.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-context.js new file mode 100644 index 000000000..d92086c48 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path-context.js @@ -0,0 +1,49 @@ +import "../core/noop"; +import "../math/trigonometry"; + +function d3_geo_pathContext(context) { + var pointRadius = 4.5; + + var stream = { + point: point, + + // While inside a line, override point to moveTo then lineTo. + lineStart: function() { stream.point = pointLineStart; }, + lineEnd: lineEnd, + + // While inside a polygon, override lineEnd to closePath. + polygonStart: function() { stream.lineEnd = lineEndPolygon; }, + polygonEnd: function() { stream.lineEnd = lineEnd; stream.point = point; }, + + pointRadius: function(_) { + pointRadius = _; + return stream; + }, + + result: d3_noop + }; + + function point(x, y) { + context.moveTo(x + pointRadius, y); + context.arc(x, y, pointRadius, 0, τ); + } + + function pointLineStart(x, y) { + context.moveTo(x, y); + stream.point = pointLine; + } + + function pointLine(x, y) { + context.lineTo(x, y); + } + + function lineEnd() { + stream.point = point; + } + + function lineEndPolygon() { + context.closePath(); + } + + return stream; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path.js new file mode 100644 index 000000000..51d08be26 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/path.js @@ -0,0 +1,87 @@ +import "../core/identity"; +import "../math/trigonometry"; +import "albers-usa"; +import "area"; +import "bounds"; +import "centroid"; +import "geo"; +import "path-area"; +import "path-bounds"; +import "path-buffer"; +import "path-centroid"; +import "path-context"; +import "projection"; +import "resample"; +import "stream"; + +d3.geo.path = function() { + var pointRadius = 4.5, + projection, + context, + projectStream, + contextStream, + cacheStream; + + function path(object) { + if (object) { + if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); + if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream); + d3.geo.stream(object, cacheStream); + } + return contextStream.result(); + } + + path.area = function(object) { + d3_geo_pathAreaSum = 0; + d3.geo.stream(object, projectStream(d3_geo_pathArea)); + return d3_geo_pathAreaSum; + }; + + path.centroid = function(object) { + d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = + d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = + d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0; + d3.geo.stream(object, projectStream(d3_geo_pathCentroid)); + return d3_geo_centroidZ2 ? [d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2] + : d3_geo_centroidZ1 ? [d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1] + : d3_geo_centroidZ0 ? [d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0] + : [NaN, NaN]; + }; + + path.bounds = function(object) { + d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity); + d3.geo.stream(object, projectStream(d3_geo_pathBounds)); + return [[d3_geo_pathBoundsX0, d3_geo_pathBoundsY0], [d3_geo_pathBoundsX1, d3_geo_pathBoundsY1]]; + }; + + path.projection = function(_) { + if (!arguments.length) return projection; + projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity; + return reset(); + }; + + path.context = function(_) { + if (!arguments.length) return context; + contextStream = (context = _) == null ? new d3_geo_pathBuffer : new d3_geo_pathContext(_); + if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); + return reset(); + }; + + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); + return path; + }; + + function reset() { + cacheStream = null; + return path; + } + + return path.projection(d3.geo.albersUsa()).context(null); +}; + +function d3_geo_pathProjectStream(project) { + var resample = d3_geo_resample(function(x, y) { return project([x * d3_degrees, y * d3_degrees]); }); + return function(stream) { return d3_geo_projectionRadians(resample(stream)); }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/point-in-polygon.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/point-in-polygon.js new file mode 100644 index 000000000..3cc82972f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/point-in-polygon.js @@ -0,0 +1,71 @@ +import "geo"; +import "area"; +import "cartesian"; +import "../math/abs"; +import "../math/trigonometry"; + +function d3_geo_pointInPolygon(point, polygon) { + var meridian = point[0], + parallel = point[1], + meridianNormal = [Math.sin(meridian), -Math.cos(meridian), 0], + polarAngle = 0, + winding = 0; + d3_geo_areaRingSum.reset(); + + for (var i = 0, n = polygon.length; i < n; ++i) { + var ring = polygon[i], + m = ring.length; + if (!m) continue; + var point0 = ring[0], + λ0 = point0[0], + φ0 = point0[1] / 2 + π / 4, + sinφ0 = Math.sin(φ0), + cosφ0 = Math.cos(φ0), + j = 1; + + while (true) { + if (j === m) j = 0; + point = ring[j]; + var λ = point[0], + φ = point[1] / 2 + π / 4, + sinφ = Math.sin(φ), + cosφ = Math.cos(φ), + dλ = λ - λ0, + sdλ = dλ >= 0 ? 1 : -1, + adλ = sdλ * dλ, + antimeridian = adλ > π, + k = sinφ0 * sinφ; + d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ))); + + polarAngle += antimeridian ? dλ + sdλ * τ : dλ; + + // Are the longitudes either side of the point's meridian, and are the + // latitudes smaller than the parallel? + if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) { + var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point)); + d3_geo_cartesianNormalize(arc); + var intersection = d3_geo_cartesianCross(meridianNormal, arc); + d3_geo_cartesianNormalize(intersection); + var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]); + if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) { + winding += antimeridian ^ dλ >= 0 ? 1 : -1; + } + } + if (!j++) break; + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; + } + } + + // First, determine whether the South pole is inside or outside: + // + // It is inside if: + // * the polygon winds around it in a clockwise direction. + // * the polygon does not (cumulatively) wind around it, but has a negative + // (counter-clockwise) area. + // + // Second, count the (signed) number of times a segment crosses a meridian + // from the point to the South pole. If it is zero, then the point is the + // same side as the South pole. + + return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ (winding & 1); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/projection.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/projection.js new file mode 100644 index 000000000..fe493a8c2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/projection.js @@ -0,0 +1,121 @@ +import "../core/identity"; +import "../core/rebind"; +import "../math/trigonometry"; +import "clip-antimeridian"; +import "clip-circle"; +import "clip-extent"; +import "compose"; +import "geo"; +import "path"; +import "resample"; +import "rotation"; +import "transform"; + +d3.geo.projection = d3_geo_projection; +d3.geo.projectionMutator = d3_geo_projectionMutator; + +function d3_geo_projection(project) { + return d3_geo_projectionMutator(function() { return project; })(); +} + +function d3_geo_projectionMutator(projectAt) { + var project, + rotate, + projectRotate, + projectResample = d3_geo_resample(function(x, y) { x = project(x, y); return [x[0] * k + δx, δy - x[1] * k]; }), + k = 150, // scale + x = 480, y = 250, // translate + λ = 0, φ = 0, // center + δλ = 0, δφ = 0, δγ = 0, // rotate + δx, δy, // center + preclip = d3_geo_clipAntimeridian, + postclip = d3_identity, + clipAngle = null, + clipExtent = null, + stream; + + function projection(point) { + point = projectRotate(point[0] * d3_radians, point[1] * d3_radians); + return [point[0] * k + δx, δy - point[1] * k]; + } + + function invert(point) { + point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k); + return point && [point[0] * d3_degrees, point[1] * d3_degrees]; + } + + projection.stream = function(output) { + if (stream) stream.valid = false; + stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output)))); + stream.valid = true; // allow caching by d3.geo.path + return stream; + }; + + projection.clipAngle = function(_) { + if (!arguments.length) return clipAngle; + preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians); + return invalidate(); + }; + + projection.clipExtent = function(_) { + if (!arguments.length) return clipExtent; + clipExtent = _; + postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity; + return invalidate(); + }; + + projection.scale = function(_) { + if (!arguments.length) return k; + k = +_; + return reset(); + }; + + projection.translate = function(_) { + if (!arguments.length) return [x, y]; + x = +_[0]; + y = +_[1]; + return reset(); + }; + + projection.center = function(_) { + if (!arguments.length) return [λ * d3_degrees, φ * d3_degrees]; + λ = _[0] % 360 * d3_radians; + φ = _[1] % 360 * d3_radians; + return reset(); + }; + + projection.rotate = function(_) { + if (!arguments.length) return [δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees]; + δλ = _[0] % 360 * d3_radians; + δφ = _[1] % 360 * d3_radians; + δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0; + return reset(); + }; + + d3.rebind(projection, projectResample, "precision"); + + function reset() { + projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project); + var center = project(λ, φ); + δx = x - center[0] * k; + δy = y + center[1] * k; + return invalidate(); + } + + function invalidate() { + if (stream) stream.valid = false, stream = null; + return projection; + } + + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return reset(); + }; +} + +function d3_geo_projectionRadians(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + stream.point(x * d3_radians, y * d3_radians); + }); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/resample.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/resample.js new file mode 100644 index 000000000..ff6660ccc --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/resample.js @@ -0,0 +1,109 @@ +import "../math/abs"; +import "../math/trigonometry"; +import "cartesian"; + +function d3_geo_resample(project) { + var δ2 = 0.5, // precision, px² + cosMinDistance = Math.cos(30 * d3_radians), // cos(minimum angular distance) + maxDepth = 16; + + function resample(stream) { + return (maxDepth ? resampleRecursive : resampleNone)(stream); + } + + function resampleNone(stream) { + return d3_geo_transformPoint(stream, function(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + }); + } + + function resampleRecursive(stream) { + var λ00, φ00, x00, y00, a00, b00, c00, // first point + λ0, x0, y0, a0, b0, c0; // previous point + + var resample = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { stream.polygonStart(); resample.lineStart = ringStart; }, + polygonEnd: function() { stream.polygonEnd(); resample.lineStart = lineStart; } + }; + + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + + function lineStart() { + x0 = NaN; + resample.point = linePoint; + stream.lineStart(); + } + + function linePoint(λ, φ) { + var c = d3_geo_cartesian([λ, φ]), p = project(λ, φ); + resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); + stream.point(x0, y0); + } + + function lineEnd() { + resample.point = point; + stream.lineEnd(); + } + + function ringStart() { + lineStart(); + resample.point = ringPoint; + resample.lineEnd = ringEnd; + } + + function ringPoint(λ, φ) { + linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; + resample.point = linePoint; + } + + function ringEnd() { + resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream); + resample.lineEnd = lineEnd; + lineEnd(); + } + + return resample; + } + + function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) { + var dx = x1 - x0, + dy = y1 - y0, + d2 = dx * dx + dy * dy; + if (d2 > 4 * δ2 && depth--) { + var a = a0 + a1, + b = b0 + b1, + c = c0 + c1, + m = Math.sqrt(a * a + b * b + c * c), + φ2 = Math.asin(c /= m), + λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), + p = project(λ2, φ2), + x2 = p[0], + y2 = p[1], + dx2 = x2 - x0, + dy2 = y2 - y0, + dz = dy * dx2 - dx * dy2; + if (dz * dz / d2 > δ2 // perpendicular projected distance + || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end + || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance + resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream); + stream.point(x2, y2); + resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream); + } + } + } + + resample.precision = function(_) { + if (!arguments.length) return Math.sqrt(δ2); + maxDepth = (δ2 = _ * _) > 0 && 16; + return resample; + }; + + return resample; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/rotation.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/rotation.js new file mode 100644 index 000000000..46ea8b62a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/rotation.js @@ -0,0 +1,79 @@ +import "../math/trigonometry"; +import "compose"; +import "equirectangular"; +import "geo"; + +d3.geo.rotation = function(rotate) { + rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0); + + function forward(coordinates) { + coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + } + + forward.invert = function(coordinates) { + coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians); + return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates; + }; + + return forward; +}; + +function d3_geo_identityRotation(λ, φ) { + return [λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ]; +} + +d3_geo_identityRotation.invert = d3_geo_equirectangular; + +// Note: |δλ| must be < 2π +function d3_geo_rotation(δλ, δφ, δγ) { + return δλ ? (δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) + : d3_geo_rotationλ(δλ)) + : (δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) + : d3_geo_identityRotation); +} + +function d3_geo_forwardRotationλ(δλ) { + return function(λ, φ) { + return λ += δλ, [λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ]; + }; +} + +function d3_geo_rotationλ(δλ) { + var rotation = d3_geo_forwardRotationλ(δλ); + rotation.invert = d3_geo_forwardRotationλ(-δλ); + return rotation; +} + +function d3_geo_rotationφγ(δφ, δγ) { + var cosδφ = Math.cos(δφ), + sinδφ = Math.sin(δφ), + cosδγ = Math.cos(δγ), + sinδγ = Math.sin(δγ); + + function rotation(λ, φ) { + var cosφ = Math.cos(φ), + x = Math.cos(λ) * cosφ, + y = Math.sin(λ) * cosφ, + z = Math.sin(φ), + k = z * cosδφ + x * sinδφ; + return [ + Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), + d3_asin(k * cosδγ + y * sinδγ) + ]; + } + + rotation.invert = function(λ, φ) { + var cosφ = Math.cos(φ), + x = Math.cos(λ) * cosφ, + y = Math.sin(λ) * cosφ, + z = Math.sin(φ), + k = z * cosδγ - y * sinδγ; + return [ + Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), + d3_asin(k * cosδφ - x * sinδφ) + ]; + }; + + return rotation; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/spherical.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/spherical.js new file mode 100644 index 000000000..9790a5a06 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/spherical.js @@ -0,0 +1,13 @@ +import "../math/abs"; +import "../math/trigonometry"; + +function d3_geo_spherical(cartesian) { + return [ + Math.atan2(cartesian[1], cartesian[0]), + d3_asin(cartesian[2]) + ]; +} + +function d3_geo_sphericalEqual(a, b) { + return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/stereographic.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/stereographic.js new file mode 100644 index 000000000..052945f86 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/stereographic.js @@ -0,0 +1,12 @@ +import "azimuthal"; +import "geo"; +import "projection"; + +var d3_geo_stereographic = d3_geo_azimuthal( + function(cosλcosφ) { return 1 / (1 + cosλcosφ); }, + function(ρ) { return 2 * Math.atan(ρ); } +); + +(d3.geo.stereographic = function() { + return d3_geo_projection(d3_geo_stereographic); +}).raw = d3_geo_stereographic; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/stream.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/stream.js new file mode 100644 index 000000000..2119c5dd5 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/stream.js @@ -0,0 +1,71 @@ +import "geo"; + +d3.geo.stream = function(object, listener) { + if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { + d3_geo_streamObjectType[object.type](object, listener); + } else { + d3_geo_streamGeometry(object, listener); + } +}; + +function d3_geo_streamGeometry(geometry, listener) { + if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { + d3_geo_streamGeometryType[geometry.type](geometry, listener); + } +} + +var d3_geo_streamObjectType = { + Feature: function(feature, listener) { + d3_geo_streamGeometry(feature.geometry, listener); + }, + FeatureCollection: function(object, listener) { + var features = object.features, i = -1, n = features.length; + while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); + } +}; + +var d3_geo_streamGeometryType = { + Sphere: function(object, listener) { + listener.sphere(); + }, + Point: function(object, listener) { + object = object.coordinates; + listener.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]); + }, + LineString: function(object, listener) { + d3_geo_streamLine(object.coordinates, listener, 0); + }, + MultiLineString: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); + }, + Polygon: function(object, listener) { + d3_geo_streamPolygon(object.coordinates, listener); + }, + MultiPolygon: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); + }, + GeometryCollection: function(object, listener) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) d3_geo_streamGeometry(geometries[i], listener); + } +}; + +function d3_geo_streamLine(coordinates, listener, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + listener.lineStart(); + while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]); + listener.lineEnd(); +} + +function d3_geo_streamPolygon(coordinates, listener) { + var i = -1, n = coordinates.length; + listener.polygonStart(); + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); + listener.polygonEnd(); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/transform.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/transform.js new file mode 100644 index 000000000..a57af5084 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/transform.js @@ -0,0 +1,36 @@ +import "geo"; +import "../core/array"; + +d3.geo.transform = function(methods) { + return { + stream: function(stream) { + var transform = new d3_geo_transform(stream); + for (var k in methods) transform[k] = methods[k]; + return transform; + } + }; +}; + +function d3_geo_transform(stream) { + this.stream = stream; +} + +d3_geo_transform.prototype = { + point: function(x, y) { this.stream.point(x, y); }, + sphere: function() { this.stream.sphere(); }, + lineStart: function() { this.stream.lineStart(); }, + lineEnd: function() { this.stream.lineEnd(); }, + polygonStart: function() { this.stream.polygonStart(); }, + polygonEnd: function() { this.stream.polygonEnd(); } +}; + +function d3_geo_transformPoint(stream, point) { + return { + point: point, + sphere: function() { stream.sphere(); }, + lineStart: function() { stream.lineStart(); }, + lineEnd: function() { stream.lineEnd(); }, + polygonStart: function() { stream.polygonStart(); }, + polygonEnd: function() { stream.polygonEnd(); }, + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/transverse-mercator.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/transverse-mercator.js new file mode 100644 index 000000000..eb292030f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geo/transverse-mercator.js @@ -0,0 +1,31 @@ +import "../math/trigonometry"; +import "geo"; +import "mercator"; + +function d3_geo_transverseMercator(λ, φ) { + return [Math.log(Math.tan(π / 4 + φ / 2)), -λ]; +} + +d3_geo_transverseMercator.invert = function(x, y) { + return [-y, 2 * Math.atan(Math.exp(x)) - halfπ]; +}; + +(d3.geo.transverseMercator = function() { + var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), + center = projection.center, + rotate = projection.rotate; + + projection.center = function(_) { + return _ + ? center([-_[1], _[0]]) + : ((_ = center()), [_[1], -_[0]]); + }; + + projection.rotate = function(_) { + return _ + ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) + : ((_ = rotate()), [_[0], _[1], _[2] - 90]); + }; + + return rotate([0, 0, 90]); +}).raw = d3_geo_transverseMercator; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/clip-line.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/clip-line.js new file mode 100644 index 000000000..c83c412ed --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/clip-line.js @@ -0,0 +1,66 @@ +import "../math/trigonometry"; + +// Liang–Barsky line clipping. +function d3_geom_clipLine(x0, y0, x1, y1) { + return function(line) { + var a = line.a, + b = line.b, + ax = a.x, + ay = a.y, + bx = b.x, + by = b.y, + t0 = 0, + t1 = 1, + dx = bx - ax, + dy = by - ay, + r; + + r = x0 - ax; + if (!dx && r > 0) return; + r /= dx; + if (dx < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dx > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + + r = x1 - ax; + if (!dx && r < 0) return; + r /= dx; + if (dx < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dx > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + + r = y0 - ay; + if (!dy && r > 0) return; + r /= dy; + if (dy < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dy > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + + r = y1 - ay; + if (!dy && r < 0) return; + r /= dy; + if (dy < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dy > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + + if (t0 > 0) line.a = {x: ax + t0 * dx, y: ay + t0 * dy}; + if (t1 < 1) line.b = {x: ax + t1 * dx, y: ay + t1 * dy}; + return line; + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/delaunay.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/delaunay.js new file mode 100644 index 000000000..0a60cd11d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/delaunay.js @@ -0,0 +1,6 @@ +import "geom"; + +// @deprecated; use d3.geom.voronoi triangles instead. +d3.geom.delaunay = function(vertices) { + return d3.geom.voronoi().triangles(vertices); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/geom.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/geom.js new file mode 100644 index 000000000..b17c4fc30 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/geom.js @@ -0,0 +1 @@ +d3.geom = {}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/hull.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/hull.js new file mode 100644 index 000000000..7abce151e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/hull.js @@ -0,0 +1,91 @@ +import "../core/functor"; +import "../math/trigonometry"; +import "geom"; +import "point"; + +/** + * Computes the 2D convex hull of a set of points using the monotone chain + * algorithm: + * http://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain) + * + * The runtime of this algorithm is O(n log n), where n is the number of input + * points. However in practice it outperforms other O(n log n) hulls. + * + * @param vertices [[x1, y1], [x2, y2], ...] + * @returns polygon [[x1, y1], [x2, y2], ...] + */ +d3.geom.hull = function(vertices) { + var x = d3_geom_pointX, + y = d3_geom_pointY; + + if (arguments.length) return hull(vertices); + + function hull(data) { + // Hull of < 3 points is not well-defined + if (data.length < 3) return []; + + var fx = d3_functor(x), + fy = d3_functor(y), + i, + n = data.length, + points = [], // of the form [[x0, y0, 0], ..., [xn, yn, n]] + flippedPoints = []; + + for (i = 0 ; i < n; i++) { + points.push([+fx.call(this, data[i], i), +fy.call(this, data[i], i), i]); + } + + // sort ascending by x-coord first, y-coord second + points.sort(d3_geom_hullOrder); + + // we flip bottommost points across y axis so we can use the upper hull routine on both + for (i = 0; i < n; i++) flippedPoints.push([points[i][0], -points[i][1]]); + + var upper = d3_geom_hullUpper(points), + lower = d3_geom_hullUpper(flippedPoints); + + // construct the polygon, removing possible duplicate endpoints + var skipLeft = lower[0] === upper[0], + skipRight = lower[lower.length - 1] === upper[upper.length - 1], + polygon = []; + + // add upper hull in r->l order + // then add lower hull in l->r order + for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]); + for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]); + + return polygon; + } + + hull.x = function(_) { + return arguments.length ? (x = _, hull) : x; + }; + + hull.y = function(_) { + return arguments.length ? (y = _, hull) : y; + }; + + return hull; +}; + +// finds the 'upper convex hull' (see wiki link above) +// assumes points arg has >=3 elements, is sorted by x, unique in y +// returns array of indices into points in left to right order +function d3_geom_hullUpper(points) { + var n = points.length, + hull = [0, 1], + hs = 2; // hull size + + for (var i = 2; i < n; i++) { + while (hs > 1 && d3_cross2d(points[hull[hs-2]], points[hull[hs-1]], points[i]) <= 0) --hs; + hull[hs++] = i; + } + + // we slice to make sure that the points we 'popped' from hull don't stay behind + return hull.slice(0, hs); +} + +// comparator for ascending sort by x-coord first, y-coord second +function d3_geom_hullOrder(a, b) { + return a[0] - b[0] || a[1] - b[1]; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/index.js new file mode 100644 index 000000000..9e2fb282d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/index.js @@ -0,0 +1,6 @@ +import "geom"; +import "hull"; +import "polygon"; +import "voronoi"; +import "delaunay"; +import "quadtree"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/point.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/point.js new file mode 100644 index 000000000..10cfe3ebd --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/point.js @@ -0,0 +1,7 @@ +function d3_geom_pointX(d) { + return d[0]; +} + +function d3_geom_pointY(d) { + return d[1]; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/polygon.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/polygon.js new file mode 100644 index 000000000..692bf8e44 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/polygon.js @@ -0,0 +1,105 @@ +import "../core/subclass"; +import "geom"; + +d3.geom.polygon = function(coordinates) { + d3_subclass(coordinates, d3_geom_polygonPrototype); + return coordinates; +}; + +var d3_geom_polygonPrototype = d3.geom.polygon.prototype = []; + +d3_geom_polygonPrototype.area = function() { + var i = -1, + n = this.length, + a, + b = this[n - 1], + area = 0; + + while (++i < n) { + a = b; + b = this[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + + return area * 0.5; +}; + +d3_geom_polygonPrototype.centroid = function(k) { + var i = -1, + n = this.length, + x = 0, + y = 0, + a, + b = this[n - 1], + c; + + if (!arguments.length) k = -1 / (6 * this.area()); + + while (++i < n) { + a = b; + b = this[i]; + c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + + return [x * k, y * k]; +}; + +// The Sutherland-Hodgman clipping algorithm. +// Note: requires the clip polygon to be counterclockwise and convex. +d3_geom_polygonPrototype.clip = function(subject) { + var input, + closed = d3_geom_polygonClosed(subject), + i = -1, + n = this.length - d3_geom_polygonClosed(this), + j, + m, + a = this[n - 1], + b, + c, + d; + + while (++i < n) { + input = subject.slice(); + subject.length = 0; + b = this[i]; + c = input[(m = input.length - closed) - 1]; + j = -1; + while (++j < m) { + d = input[j]; + if (d3_geom_polygonInside(d, a, b)) { + if (!d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + subject.push(d); + } else if (d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + c = d; + } + if (closed) subject.push(subject[0]); + a = b; + } + + return subject; +}; + +function d3_geom_polygonInside(p, a, b) { + return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); +} + +// Intersect two infinite lines cd and ab. +function d3_geom_polygonIntersect(c, d, a, b) { + var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, + y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, + ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21); + return [x1 + ua * x21, y1 + ua * y21]; +} + +// Returns true if the polygon is closed. +function d3_geom_polygonClosed(coordinates) { + var a = coordinates[0], + b = coordinates[coordinates.length - 1]; + return !(a[0] - b[0] || a[1] - b[1]); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/quadtree.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/quadtree.js new file mode 100644 index 000000000..a9c3197bf --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/quadtree.js @@ -0,0 +1,243 @@ +import "../core/functor"; +import "../math/abs"; +import "geom"; +import "point"; + +d3.geom.quadtree = function(points, x1, y1, x2, y2) { + var x = d3_geom_pointX, + y = d3_geom_pointY, + compat; + + // For backwards-compatibility. + if (compat = arguments.length) { + x = d3_geom_quadtreeCompatX; + y = d3_geom_quadtreeCompatY; + if (compat === 3) { + y2 = y1; + x2 = x1; + y1 = x1 = 0; + } + return quadtree(points); + } + + function quadtree(data) { + var d, + fx = d3_functor(x), + fy = d3_functor(y), + xs, + ys, + i, + n, + x1_, + y1_, + x2_, + y2_; + + if (x1 != null) { + x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2; + } else { + // Compute bounds, and cache points temporarily. + x2_ = y2_ = -(x1_ = y1_ = Infinity); + xs = [], ys = []; + n = data.length; + if (compat) for (i = 0; i < n; ++i) { + d = data[i]; + if (d.x < x1_) x1_ = d.x; + if (d.y < y1_) y1_ = d.y; + if (d.x > x2_) x2_ = d.x; + if (d.y > y2_) y2_ = d.y; + xs.push(d.x); + ys.push(d.y); + } else for (i = 0; i < n; ++i) { + var x_ = +fx(d = data[i], i), + y_ = +fy(d, i); + if (x_ < x1_) x1_ = x_; + if (y_ < y1_) y1_ = y_; + if (x_ > x2_) x2_ = x_; + if (y_ > y2_) y2_ = y_; + xs.push(x_); + ys.push(y_); + } + } + + // Squarify the bounds. + var dx = x2_ - x1_, + dy = y2_ - y1_; + if (dx > dy) y2_ = y1_ + dx; + else x2_ = x1_ + dy; + + // Recursively inserts the specified point p at the node n or one of its + // descendants. The bounds are defined by [x1, x2] and [y1, y2]. + function insert(n, d, x, y, x1, y1, x2, y2) { + if (isNaN(x) || isNaN(y)) return; // ignore invalid points + if (n.leaf) { + var nx = n.x, + ny = n.y; + if (nx != null) { + // If the point at this leaf node is at the same position as the new + // point we are adding, we leave the point associated with the + // internal node while adding the new point to a child node. This + // avoids infinite recursion. + if ((abs(nx - x) + abs(ny - y)) < 0.01) { + insertChild(n, d, x, y, x1, y1, x2, y2); + } else { + var nPoint = n.point; + n.x = n.y = n.point = null; + insertChild(n, nPoint, nx, ny, x1, y1, x2, y2); + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } else { + n.x = x, n.y = y, n.point = d; + } + } else { + insertChild(n, d, x, y, x1, y1, x2, y2); + } + } + + // Recursively inserts the specified point [x, y] into a descendant of node + // n. The bounds are defined by [x1, x2] and [y1, y2]. + function insertChild(n, d, x, y, x1, y1, x2, y2) { + // Compute the split point, and the quadrant in which to insert p. + var xm = (x1 + x2) * 0.5, + ym = (y1 + y2) * 0.5, + right = x >= xm, + below = y >= ym, + i = below << 1 | right; + + // Recursively insert into the child node. + n.leaf = false; + n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); + + // Update the bounds as we recurse. + if (right) x1 = xm; else x2 = xm; + if (below) y1 = ym; else y2 = ym; + insert(n, d, x, y, x1, y1, x2, y2); + } + + // Create the root node. + var root = d3_geom_quadtreeNode(); + + root.add = function(d) { + insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_); + }; + + root.visit = function(f) { + d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_); + }; + + // Find the closest point to the specified point. + // TODO allow the initial search extent to be specified? + // TODO allow the initial minimum distance to be specified? + // TODO allow searching below any node? + root.find = function(point) { + return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_); + }; + + // Insert all points. + i = -1; + if (x1 == null) { + while (++i < n) { + insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_); + } + --i; // index of last insertion + } else data.forEach(root.add); + + // Discard captured fields. + xs = ys = data = d = null; + + return root; + } + + quadtree.x = function(_) { + return arguments.length ? (x = _, quadtree) : x; + }; + + quadtree.y = function(_) { + return arguments.length ? (y = _, quadtree) : y; + }; + + quadtree.extent = function(_) { + if (!arguments.length) return x1 == null ? null : [[x1, y1], [x2, y2]]; + if (_ == null) x1 = y1 = x2 = y2 = null; + else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], y2 = +_[1][1]; + return quadtree; + }; + + quadtree.size = function(_) { + if (!arguments.length) return x1 == null ? null : [x2 - x1, y2 - y1]; + if (_ == null) x1 = y1 = x2 = y2 = null; + else x1 = y1 = 0, x2 = +_[0], y2 = +_[1]; + return quadtree; + }; + + return quadtree; +}; + +function d3_geom_quadtreeCompatX(d) { return d.x; } +function d3_geom_quadtreeCompatY(d) { return d.y; } + +function d3_geom_quadtreeNode() { + return { + leaf: true, + nodes: [], + point: null, + x: null, + y: null + }; +} + +function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { + if (!f(node, x1, y1, x2, y2)) { + var sx = (x1 + x2) * 0.5, + sy = (y1 + y2) * 0.5, + children = node.nodes; + if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); + if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); + if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); + if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); + } +} + +function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) { + var minDistance2 = Infinity, + closestPoint; + + (function find(node, x1, y1, x2, y2) { + + // stop searching if this cell can’t contain a closer node + if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return; + + // visit this point + if (point = node.point) { + var point, + dx = x - node.x, + dy = y - node.y, + distance2 = dx * dx + dy * dy; + if (distance2 < minDistance2) { + var distance = Math.sqrt(minDistance2 = distance2); + x0 = x - distance, y0 = y - distance; + x3 = x + distance, y3 = y + distance; + closestPoint = point; + } + } + + // bisect the current node + var children = node.nodes, + xm = (x1 + x2) * 0.5, + ym = (y1 + y2) * 0.5, + right = x >= xm, + below = y >= ym; + + // visit closest cell first + for (var i = below << 1 | right, j = i + 4; i < j; ++i) { + if (node = children[i & 3]) switch (i & 3) { + case 0: find(node, x1, y1, xm, ym); break; + case 1: find(node, xm, y1, x2, ym); break; + case 2: find(node, x1, ym, xm, y2); break; + case 3: find(node, xm, ym, x2, y2); break; + } + } + })(root, x0, y0, x3, y3); + + return closestPoint; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi.js new file mode 100644 index 000000000..53f7d793a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi.js @@ -0,0 +1,110 @@ +import "../core/functor"; +import "voronoi/"; +import "geom"; +import "point"; + +d3.geom.voronoi = function(points) { + var x = d3_geom_pointX, + y = d3_geom_pointY, + fx = x, + fy = y, + clipExtent = d3_geom_voronoiClipExtent; + + // @deprecated; use voronoi(data) instead. + if (points) return voronoi(points); + + function voronoi(data) { + var polygons = new Array(data.length), + x0 = clipExtent[0][0], + y0 = clipExtent[0][1], + x1 = clipExtent[1][0], + y1 = clipExtent[1][1]; + + d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) { + var edges = cell.edges, + site = cell.site, + polygon = polygons[i] = edges.length ? edges.map(function(e) { var s = e.start(); return [s.x, s.y]; }) + : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [[x0, y1], [x1, y1], [x1, y0], [x0, y0]] + : []; + polygon.point = data[i]; + }); + + return polygons; + } + + function sites(data) { + return data.map(function(d, i) { + return { + x: Math.round(fx(d, i) / ε) * ε, + y: Math.round(fy(d, i) / ε) * ε, + i: i + }; + }); + } + + voronoi.links = function(data) { + return d3_geom_voronoi(sites(data)).edges.filter(function(edge) { + return edge.l && edge.r; + }).map(function(edge) { + return { + source: data[edge.l.i], + target: data[edge.r.i] + }; + }); + }; + + voronoi.triangles = function(data) { + var triangles = []; + + d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) { + var site = cell.site, + edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), + j = -1, + m = edges.length, + e0, + s0, + e1 = edges[m - 1].edge, + s1 = e1.l === site ? e1.r : e1.l; + + while (++j < m) { + e0 = e1; + s0 = s1; + e1 = edges[j].edge; + s1 = e1.l === site ? e1.r : e1.l; + if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) { + triangles.push([data[i], data[s0.i], data[s1.i]]); + } + } + }); + + return triangles; + }; + + voronoi.x = function(_) { + return arguments.length ? (fx = d3_functor(x = _), voronoi) : x; + }; + + voronoi.y = function(_) { + return arguments.length ? (fy = d3_functor(y = _), voronoi) : y; + }; + + voronoi.clipExtent = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent; + clipExtent = _ == null ? d3_geom_voronoiClipExtent : _; + return voronoi; + }; + + // @deprecated; use clipExtent instead. + voronoi.size = function(_) { + if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1]; + return voronoi.clipExtent(_ && [[0, 0], _]); + }; + + return voronoi; +}; + +var d3_geom_voronoiClipExtent = [[-1e6, -1e6], [1e6, 1e6]]; + +function d3_geom_voronoiTriangleArea(a, b, c) { + return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/beach.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/beach.js new file mode 100644 index 000000000..e0174679d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/beach.js @@ -0,0 +1,186 @@ +import "../../math/abs"; + +function d3_geom_voronoiBeach() { + d3_geom_voronoiRedBlackNode(this); + this.edge = + this.site = + this.circle = null; +} + +function d3_geom_voronoiCreateBeach(site) { + var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach; + beach.site = site; + return beach; +} + +function d3_geom_voronoiDetachBeach(beach) { + d3_geom_voronoiDetachCircle(beach); + d3_geom_voronoiBeaches.remove(beach); + d3_geom_voronoiBeachPool.push(beach); + d3_geom_voronoiRedBlackNode(beach); +} + +function d3_geom_voronoiRemoveBeach(beach) { + var circle = beach.circle, + x = circle.x, + y = circle.cy, + vertex = {x: x, y: y}, + previous = beach.P, + next = beach.N, + disappearing = [beach]; + + d3_geom_voronoiDetachBeach(beach); + + var lArc = previous; + while (lArc.circle + && abs(x - lArc.circle.x) < ε + && abs(y - lArc.circle.cy) < ε) { + previous = lArc.P; + disappearing.unshift(lArc); + d3_geom_voronoiDetachBeach(lArc); + lArc = previous; + } + + disappearing.unshift(lArc); + d3_geom_voronoiDetachCircle(lArc); + + var rArc = next; + while (rArc.circle + && abs(x - rArc.circle.x) < ε + && abs(y - rArc.circle.cy) < ε) { + next = rArc.N; + disappearing.push(rArc); + d3_geom_voronoiDetachBeach(rArc); + rArc = next; + } + + disappearing.push(rArc); + d3_geom_voronoiDetachCircle(rArc); + + var nArcs = disappearing.length, + iArc; + for (iArc = 1; iArc < nArcs; ++iArc) { + rArc = disappearing[iArc]; + lArc = disappearing[iArc - 1]; + d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex); + } + + lArc = disappearing[0]; + rArc = disappearing[nArcs - 1]; + rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex); + + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); +} + +function d3_geom_voronoiAddBeach(site) { + var x = site.x, + directrix = site.y, + lArc, + rArc, + dxl, + dxr, + node = d3_geom_voronoiBeaches._; + + while (node) { + dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x; + if (dxl > ε) node = node.L; else { + dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix); + if (dxr > ε) { + if (!node.R) { + lArc = node; + break; + } + node = node.R; + } else { + if (dxl > -ε) { + lArc = node.P; + rArc = node; + } else if (dxr > -ε) { + lArc = node; + rArc = node.N; + } else { + lArc = rArc = node; + } + break; + } + } + } + + var newArc = d3_geom_voronoiCreateBeach(site); + d3_geom_voronoiBeaches.insert(lArc, newArc); + + if (!lArc && !rArc) return; + + if (lArc === rArc) { + d3_geom_voronoiDetachCircle(lArc); + rArc = d3_geom_voronoiCreateBeach(lArc.site); + d3_geom_voronoiBeaches.insert(newArc, rArc); + newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); + return; + } + + if (!rArc) { // && lArc + newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site); + return; + } + + // else lArc !== rArc + d3_geom_voronoiDetachCircle(lArc); + d3_geom_voronoiDetachCircle(rArc); + + var lSite = lArc.site, + ax = lSite.x, + ay = lSite.y, + bx = site.x - ax, + by = site.y - ay, + rSite = rArc.site, + cx = rSite.x - ax, + cy = rSite.y - ay, + d = 2 * (bx * cy - by * cx), + hb = bx * bx + by * by, + hc = cx * cx + cy * cy, + vertex = {x: (cy * hb - by * hc) / d + ax, y: (bx * hc - cx * hb) / d + ay}; + + d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex); + newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex); + rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex); + d3_geom_voronoiAttachCircle(lArc); + d3_geom_voronoiAttachCircle(rArc); +} + +function d3_geom_voronoiLeftBreakPoint(arc, directrix) { + var site = arc.site, + rfocx = site.x, + rfocy = site.y, + pby2 = rfocy - directrix; + + if (!pby2) return rfocx; + + var lArc = arc.P; + if (!lArc) return -Infinity; + + site = lArc.site; + var lfocx = site.x, + lfocy = site.y, + plby2 = lfocy - directrix; + + if (!plby2) return lfocx; + + var hl = lfocx - rfocx, + aby2 = 1 / pby2 - 1 / plby2, + b = hl / plby2; + + if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx; + + return (rfocx + lfocx) / 2; +} + +function d3_geom_voronoiRightBreakPoint(arc, directrix) { + var rArc = arc.N; + if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix); + var site = arc.site; + return site.y === directrix ? site.x : Infinity; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/cell.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/cell.js new file mode 100644 index 000000000..8c6628d31 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/cell.js @@ -0,0 +1,64 @@ +import "../../math/abs"; + +function d3_geom_voronoiCell(site) { + this.site = site; + this.edges = []; +} + +d3_geom_voronoiCell.prototype.prepare = function() { + var halfEdges = this.edges, + iHalfEdge = halfEdges.length, + edge; + + while (iHalfEdge--) { + edge = halfEdges[iHalfEdge].edge; + if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1); + } + + halfEdges.sort(d3_geom_voronoiHalfEdgeOrder); + return halfEdges.length; +}; + +function d3_geom_voronoiCloseCells(extent) { + var x0 = extent[0][0], + x1 = extent[1][0], + y0 = extent[0][1], + y1 = extent[1][1], + x2, + y2, + x3, + y3, + cells = d3_geom_voronoiCells, + iCell = cells.length, + cell, + iHalfEdge, + halfEdges, + nHalfEdges, + start, + end; + + while (iCell--) { + cell = cells[iCell]; + if (!cell || !cell.prepare()) continue; + halfEdges = cell.edges; + nHalfEdges = halfEdges.length; + iHalfEdge = 0; + while (iHalfEdge < nHalfEdges) { + end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y; + start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y; + if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) { + halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, + abs(x3 - x0) < ε && y1 - y3 > ε ? {x: x0, y: abs(x2 - x0) < ε ? y2 : y1} + : abs(y3 - y1) < ε && x1 - x3 > ε ? {x: abs(y2 - y1) < ε ? x2 : x1, y: y1} + : abs(x3 - x1) < ε && y3 - y0 > ε ? {x: x1, y: abs(x2 - x1) < ε ? y2 : y0} + : abs(y3 - y0) < ε && x3 - x0 > ε ? {x: abs(y2 - y0) < ε ? x2 : x0, y: y0} + : null), cell.site, null)); + ++nHalfEdges; + } + } + } +} + +function d3_geom_voronoiHalfEdgeOrder(a, b) { + return b.angle - a.angle; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/circle.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/circle.js new file mode 100644 index 000000000..d7fb6791e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/circle.js @@ -0,0 +1,73 @@ +function d3_geom_voronoiCircle() { + d3_geom_voronoiRedBlackNode(this); + this.x = + this.y = + this.arc = + this.site = + this.cy = null; +} + +function d3_geom_voronoiAttachCircle(arc) { + var lArc = arc.P, + rArc = arc.N; + + if (!lArc || !rArc) return; + + var lSite = lArc.site, + cSite = arc.site, + rSite = rArc.site; + + if (lSite === rSite) return; + + var bx = cSite.x, + by = cSite.y, + ax = lSite.x - bx, + ay = lSite.y - by, + cx = rSite.x - bx, + cy = rSite.y - by; + + var d = 2 * (ax * cy - ay * cx); + if (d >= -ε2) return; + + var ha = ax * ax + ay * ay, + hc = cx * cx + cy * cy, + x = (cy * ha - ay * hc) / d, + y = (ax * hc - cx * ha) / d, + cy = y + by; + + var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle; + circle.arc = arc; + circle.site = cSite; + circle.x = x + bx; + circle.y = cy + Math.sqrt(x * x + y * y); // y bottom + circle.cy = cy; + + arc.circle = circle; + + var before = null, + node = d3_geom_voronoiCircles._; + + while (node) { + if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) { + if (node.L) node = node.L; + else { before = node.P; break; } + } else { + if (node.R) node = node.R; + else { before = node; break; } + } + } + + d3_geom_voronoiCircles.insert(before, circle); + if (!before) d3_geom_voronoiFirstCircle = circle; +} + +function d3_geom_voronoiDetachCircle(arc) { + var circle = arc.circle; + if (circle) { + if (!circle.P) d3_geom_voronoiFirstCircle = circle.N; + d3_geom_voronoiCircles.remove(circle); + d3_geom_voronoiCirclePool.push(circle); + d3_geom_voronoiRedBlackNode(circle); + arc.circle = null; + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/clip.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/clip.js new file mode 100644 index 000000000..e145965b3 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/clip.js @@ -0,0 +1,80 @@ +import "../../math/abs"; +import "../clip-line"; + +function d3_geom_voronoiClipEdges(extent) { + var edges = d3_geom_voronoiEdges, + clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), + i = edges.length, + e; + while (i--) { + e = edges[i]; + if (!d3_geom_voronoiConnectEdge(e, extent) + || !clip(e) + || (abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε)) { + e.a = e.b = null; + edges.splice(i, 1); + } + } +} + +function d3_geom_voronoiConnectEdge(edge, extent) { + var vb = edge.b; + if (vb) return true; + + var va = edge.a, + x0 = extent[0][0], + x1 = extent[1][0], + y0 = extent[0][1], + y1 = extent[1][1], + lSite = edge.l, + rSite = edge.r, + lx = lSite.x, + ly = lSite.y, + rx = rSite.x, + ry = rSite.y, + fx = (lx + rx) / 2, + fy = (ly + ry) / 2, + fm, + fb; + + if (ry === ly) { + if (fx < x0 || fx >= x1) return; + if (lx > rx) { + if (!va) va = {x: fx, y: y0}; + else if (va.y >= y1) return; + vb = {x: fx, y: y1}; + } else { + if (!va) va = {x: fx, y: y1}; + else if (va.y < y0) return; + vb = {x: fx, y: y0}; + } + } else { + fm = (lx - rx) / (ry - ly); + fb = fy - fm * fx; + if (fm < -1 || fm > 1) { + if (lx > rx) { + if (!va) va = {x: (y0 - fb) / fm, y: y0}; + else if (va.y >= y1) return; + vb = {x: (y1 - fb) / fm, y: y1}; + } else { + if (!va) va = {x: (y1 - fb) / fm, y: y1}; + else if (va.y < y0) return; + vb = {x: (y0 - fb) / fm, y: y0}; + } + } else { + if (ly < ry) { + if (!va) va = {x: x0, y: fm * x0 + fb}; + else if (va.x >= x1) return; + vb = {x: x1, y: fm * x1 + fb}; + } else { + if (!va) va = {x: x1, y: fm * x1 + fb}; + else if (va.x < x0) return; + vb = {x: x0, y: fm * x0 + fb}; + } + } + } + + edge.a = va; + edge.b = vb; + return true; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/edge.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/edge.js new file mode 100644 index 000000000..8e5a73454 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/edge.js @@ -0,0 +1,50 @@ +function d3_geom_voronoiEdge(lSite, rSite) { + this.l = lSite; + this.r = rSite; + this.a = this.b = null; // for border edges +} + +function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, rSite); + d3_geom_voronoiEdges.push(edge); + if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va); + if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb); + d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite)); + d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite)); + return edge; +} + +function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) { + var edge = new d3_geom_voronoiEdge(lSite, null); + edge.a = va; + edge.b = vb; + d3_geom_voronoiEdges.push(edge); + return edge; +} + +function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) { + if (!edge.a && !edge.b) { + edge.a = vertex; + edge.l = lSite; + edge.r = rSite; + } else if (edge.l === rSite) { + edge.b = vertex; + } else { + edge.a = vertex; + } +} + +function d3_geom_voronoiHalfEdge(edge, lSite, rSite) { + var va = edge.a, + vb = edge.b; + this.edge = edge; + this.site = lSite; + this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) + : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) + : Math.atan2(va.x - vb.x, vb.y - va.y); +}; + +d3_geom_voronoiHalfEdge.prototype = { + start: function() { return this.edge.l === this.site ? this.edge.a : this.edge.b; }, + end: function() { return this.edge.l === this.site ? this.edge.b : this.edge.a; } +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/index.js new file mode 100644 index 000000000..a6c01a86a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/index.js @@ -0,0 +1,59 @@ +import "../../math/trigonometry"; + +var d3_geom_voronoiEdges, + d3_geom_voronoiCells, + d3_geom_voronoiBeaches, + d3_geom_voronoiBeachPool = [], + d3_geom_voronoiFirstCircle, + d3_geom_voronoiCircles, + d3_geom_voronoiCirclePool = []; + +import "beach"; +import "cell"; +import "circle"; +import "clip"; +import "edge"; +import "red-black"; + +function d3_geom_voronoi(sites, bbox) { + var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), + x0, + y0, + circle; + + d3_geom_voronoiEdges = []; + d3_geom_voronoiCells = new Array(sites.length); + d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree; + d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree; + + while (true) { + circle = d3_geom_voronoiFirstCircle; + if (site && (!circle || site.y < circle.y || (site.y === circle.y && site.x < circle.x))) { + if (site.x !== x0 || site.y !== y0) { + d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site); + d3_geom_voronoiAddBeach(site); + x0 = site.x, y0 = site.y; + } + site = sites.pop(); + } else if (circle) { + d3_geom_voronoiRemoveBeach(circle.arc); + } else { + break; + } + } + + if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox); + + var diagram = {cells: d3_geom_voronoiCells, edges: d3_geom_voronoiEdges}; + + d3_geom_voronoiBeaches = + d3_geom_voronoiCircles = + d3_geom_voronoiEdges = + d3_geom_voronoiCells = null; + + return diagram; +}; + +function d3_geom_voronoiVertexOrder(a, b) { + return b.y - a.y || b.x - a.x; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/red-black.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/red-black.js new file mode 100644 index 000000000..7cf6880ca --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/geom/voronoi/red-black.js @@ -0,0 +1,235 @@ +function d3_geom_voronoiRedBlackTree() { + this._ = null; // root node +} + +function d3_geom_voronoiRedBlackNode(node) { + node.U = // parent node + node.C = // color - true for red, false for black + node.L = // left node + node.R = // right node + node.P = // previous node + node.N = null; // next node +} + +d3_geom_voronoiRedBlackTree.prototype = { + + insert: function(after, node) { + var parent, grandpa, uncle; + + if (after) { + node.P = after; + node.N = after.N; + if (after.N) after.N.P = node; + after.N = node; + if (after.R) { + after = after.R; + while (after.L) after = after.L; + after.L = node; + } else { + after.R = node; + } + parent = after; + } else if (this._) { + after = d3_geom_voronoiRedBlackFirst(this._); + node.P = null; + node.N = after; + after.P = after.L = node; + parent = after; + } else { + node.P = node.N = null; + this._ = node; + parent = null; + } + node.L = node.R = null; + node.U = parent; + node.C = true; + + after = node; + while (parent && parent.C) { + grandpa = parent.U; + if (parent === grandpa.L) { + uncle = grandpa.R; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.R) { + d3_geom_voronoiRedBlackRotateLeft(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateRight(this, grandpa); + } + } else { + uncle = grandpa.L; + if (uncle && uncle.C) { + parent.C = uncle.C = false; + grandpa.C = true; + after = grandpa; + } else { + if (after === parent.L) { + d3_geom_voronoiRedBlackRotateRight(this, parent); + after = parent; + parent = after.U; + } + parent.C = false; + grandpa.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, grandpa); + } + } + parent = after.U; + } + this._.C = false; + }, + + remove: function(node) { + if (node.N) node.N.P = node.P; + if (node.P) node.P.N = node.N; + node.N = node.P = null; + + var parent = node.U, + sibling, + left = node.L, + right = node.R, + next, + red; + + if (!left) next = right; + else if (!right) next = left; + else next = d3_geom_voronoiRedBlackFirst(right); + + if (parent) { + if (parent.L === node) parent.L = next; + else parent.R = next; + } else { + this._ = next; + } + + if (left && right) { + red = next.C; + next.C = node.C; + next.L = left; + left.U = next; + if (next !== right) { + parent = next.U; + next.U = node.U; + node = next.R; + parent.L = node; + next.R = right; + right.U = next; + } else { + next.U = parent; + parent = next; + node = next.R; + } + } else { + red = node.C; + node = next; + } + + if (node) node.U = parent; + if (red) return; + if (node && node.C) { node.C = false; return; } + + do { + if (node === this._) break; + if (node === parent.L) { + sibling = parent.R; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + sibling = parent.R; + } + if ((sibling.L && sibling.L.C) + || (sibling.R && sibling.R.C)) { + if (!sibling.R || !sibling.R.C) { + sibling.L.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateRight(this, sibling); + sibling = parent.R; + } + sibling.C = parent.C; + parent.C = sibling.R.C = false; + d3_geom_voronoiRedBlackRotateLeft(this, parent); + node = this._; + break; + } + } else { + sibling = parent.L; + if (sibling.C) { + sibling.C = false; + parent.C = true; + d3_geom_voronoiRedBlackRotateRight(this, parent); + sibling = parent.L; + } + if ((sibling.L && sibling.L.C) + || (sibling.R && sibling.R.C)) { + if (!sibling.L || !sibling.L.C) { + sibling.R.C = false; + sibling.C = true; + d3_geom_voronoiRedBlackRotateLeft(this, sibling); + sibling = parent.L; + } + sibling.C = parent.C; + parent.C = sibling.L.C = false; + d3_geom_voronoiRedBlackRotateRight(this, parent); + node = this._; + break; + } + } + sibling.C = true; + node = parent; + parent = parent.U; + } while (!node.C); + + if (node) node.C = false; + } + +}; + +function d3_geom_voronoiRedBlackRotateLeft(tree, node) { + var p = node, + q = node.R, + parent = p.U; + + if (parent) { + if (parent.L === p) parent.L = q; + else parent.R = q; + } else { + tree._ = q; + } + + q.U = parent; + p.U = q; + p.R = q.L; + if (p.R) p.R.U = p; + q.L = p; +} + +function d3_geom_voronoiRedBlackRotateRight(tree, node) { + var p = node, + q = node.L, + parent = p.U; + + if (parent) { + if (parent.L === p) parent.L = q; + else parent.R = q; + } else { + tree._ = q; + } + + q.U = parent; + p.U = q; + p.L = q.R; + if (p.L) p.L.U = p; + q.R = p; +} + +function d3_geom_voronoiRedBlackFirst(node) { + while (node.L) node = node.L; + return node; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/array.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/array.js new file mode 100644 index 000000000..33f8f48b5 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/array.js @@ -0,0 +1,19 @@ +import "interpolate"; + +d3.interpolateArray = d3_interpolateArray; + +function d3_interpolateArray(a, b) { + var x = [], + c = [], + na = a.length, + nb = b.length, + n0 = Math.min(a.length, b.length), + i; + for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i])); + for (; i < na; ++i) c[i] = a[i]; + for (; i < nb; ++i) c[i] = b[i]; + return function(t) { + for (i = 0; i < n0; ++i) c[i] = x[i](t); + return c; + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/ease.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/ease.js new file mode 100644 index 000000000..ae0a3c838 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/ease.js @@ -0,0 +1,111 @@ +import "../arrays/map"; +import "../core/array"; +import "../core/identity"; +import "../math/trigonometry"; + +var d3_ease_default = function() { return d3_identity; }; + +var d3_ease = d3.map({ + linear: d3_ease_default, + poly: d3_ease_poly, + quad: function() { return d3_ease_quad; }, + cubic: function() { return d3_ease_cubic; }, + sin: function() { return d3_ease_sin; }, + exp: function() { return d3_ease_exp; }, + circle: function() { return d3_ease_circle; }, + elastic: d3_ease_elastic, + back: d3_ease_back, + bounce: function() { return d3_ease_bounce; } +}); + +var d3_ease_mode = d3.map({ + "in": d3_identity, + "out": d3_ease_reverse, + "in-out": d3_ease_reflect, + "out-in": function(f) { return d3_ease_reflect(d3_ease_reverse(f)); } +}); + +d3.ease = function(name) { + var i = name.indexOf("-"), + t = i >= 0 ? name.slice(0, i) : name, + m = i >= 0 ? name.slice(i + 1) : "in"; + t = d3_ease.get(t) || d3_ease_default; + m = d3_ease_mode.get(m) || d3_identity; + return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1)))); +}; + +function d3_ease_clamp(f) { + return function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : f(t); + }; +} + +function d3_ease_reverse(f) { + return function(t) { + return 1 - f(1 - t); + }; +} + +function d3_ease_reflect(f) { + return function(t) { + return 0.5 * (t < 0.5 ? f(2 * t) : (2 - f(2 - 2 * t))); + }; +} + +function d3_ease_quad(t) { + return t * t; +} + +function d3_ease_cubic(t) { + return t * t * t; +} + +// Optimized clamp(reflect(poly(3))). +function d3_ease_cubicInOut(t) { + if (t <= 0) return 0; + if (t >= 1) return 1; + var t2 = t * t, t3 = t2 * t; + return 4 * (t < 0.5 ? t3 : 3 * (t - t2) + t3 - 0.75); +} + +function d3_ease_poly(e) { + return function(t) { + return Math.pow(t, e); + }; +} + +function d3_ease_sin(t) { + return 1 - Math.cos(t * halfπ); +} + +function d3_ease_exp(t) { + return Math.pow(2, 10 * (t - 1)); +} + +function d3_ease_circle(t) { + return 1 - Math.sqrt(1 - t * t); +} + +function d3_ease_elastic(a, p) { + var s; + if (arguments.length < 2) p = 0.45; + if (arguments.length) s = p / τ * Math.asin(1 / a); + else a = 1, s = p / 4; + return function(t) { + return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p); + }; +} + +function d3_ease_back(s) { + if (!s) s = 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; +} + +function d3_ease_bounce(t) { + return t < 1 / 2.75 ? 7.5625 * t * t + : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75 + : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375 + : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/hcl.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/hcl.js new file mode 100644 index 000000000..4e62591ba --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/hcl.js @@ -0,0 +1,20 @@ +import "../color/hcl"; + +d3.interpolateHcl = d3_interpolateHcl; + +function d3_interpolateHcl(a, b) { + a = d3.hcl(a); + b = d3.hcl(b); + var ah = a.h, + ac = a.c, + al = a.l, + bh = b.h - ah, + bc = b.c - ac, + bl = b.l - al; + if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; + else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; // shortest path + return function(t) { + return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + ""; + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/hsl.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/hsl.js new file mode 100644 index 000000000..2b8d70f2c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/hsl.js @@ -0,0 +1,20 @@ +import "../color/hsl"; + +d3.interpolateHsl = d3_interpolateHsl; + +function d3_interpolateHsl(a, b) { + a = d3.hsl(a); + b = d3.hsl(b); + var ah = a.h, + as = a.s, + al = a.l, + bh = b.h - ah, + bs = b.s - as, + bl = b.l - al; + if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as; + if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; + else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; // shortest path + return function(t) { + return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + ""; + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/index.js new file mode 100644 index 000000000..ed6c5020a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/index.js @@ -0,0 +1,14 @@ +import "array"; +import "ease"; +import "hcl"; +import "hsl"; +import "interpolate"; +import "lab"; +import "number"; +import "object"; +import "rgb"; +import "round"; +import "string"; +import "transform"; +import "uninterpolate"; +import "zoom"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/interpolate.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/interpolate.js new file mode 100644 index 000000000..2668e0f0d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/interpolate.js @@ -0,0 +1,26 @@ +import "../color/color"; +import "../color/rgb"; +import "rgb"; +import "object"; +import "array"; +import "number"; +import "string"; + +d3.interpolate = d3_interpolate; + +function d3_interpolate(a, b) { + var i = d3.interpolators.length, f; + while (--i >= 0 && !(f = d3.interpolators[i](a, b))); + return f; +} + +d3.interpolators = [ + function(a, b) { + var t = typeof b; + return (t === "string" ? (d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString) + : b instanceof d3_color ? d3_interpolateRgb + : Array.isArray(b) ? d3_interpolateArray + : t === "object" && isNaN(b) ? d3_interpolateObject + : d3_interpolateNumber)(a, b); + } +]; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/lab.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/lab.js new file mode 100644 index 000000000..6b46c0448 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/lab.js @@ -0,0 +1,17 @@ +import "../color/lab"; + +d3.interpolateLab = d3_interpolateLab; + +function d3_interpolateLab(a, b) { + a = d3.lab(a); + b = d3.lab(b); + var al = a.l, + aa = a.a, + ab = a.b, + bl = b.l - al, + ba = b.a - aa, + bb = b.b - ab; + return function(t) { + return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + ""; + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/number.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/number.js new file mode 100644 index 000000000..2f0e42adc --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/number.js @@ -0,0 +1,6 @@ +d3.interpolateNumber = d3_interpolateNumber; + +function d3_interpolateNumber(a, b) { + a = +a, b = +b; + return function(t) { return a * (1 - t) + b * t; }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/object.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/object.js new file mode 100644 index 000000000..a3f863af2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/object.js @@ -0,0 +1,25 @@ +import "interpolate"; + +d3.interpolateObject = d3_interpolateObject; + +function d3_interpolateObject(a, b) { + var i = {}, + c = {}, + k; + for (k in a) { + if (k in b) { + i[k] = d3_interpolate(a[k], b[k]); + } else { + c[k] = a[k]; + } + } + for (k in b) { + if (!(k in a)) { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/rgb.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/rgb.js new file mode 100644 index 000000000..f4944d2fe --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/rgb.js @@ -0,0 +1,20 @@ +import "../color/rgb"; + +d3.interpolateRgb = d3_interpolateRgb; + +function d3_interpolateRgb(a, b) { + a = d3.rgb(a); + b = d3.rgb(b); + var ar = a.r, + ag = a.g, + ab = a.b, + br = b.r - ar, + bg = b.g - ag, + bb = b.b - ab; + return function(t) { + return "#" + + d3_rgb_hex(Math.round(ar + br * t)) + + d3_rgb_hex(Math.round(ag + bg * t)) + + d3_rgb_hex(Math.round(ab + bb * t)); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/round.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/round.js new file mode 100644 index 000000000..8e8797dfd --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/round.js @@ -0,0 +1,6 @@ +d3.interpolateRound = d3_interpolateRound; + +function d3_interpolateRound(a, b) { + b -= a; + return function(t) { return Math.round(a + b * t); }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/string.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/string.js new file mode 100644 index 000000000..3033a713a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/string.js @@ -0,0 +1,54 @@ +import "number"; + +d3.interpolateString = d3_interpolateString; + +function d3_interpolateString(a, b) { + var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, // scan index for next number in b + am, // current match in a + bm, // current match in b + bs, // string preceding current number in b, if any + i = -1, // index in s + s = [], // string constants and placeholders + q = []; // number interpolators + + // Coerce inputs to strings. + a = a + "", b = b + ""; + + // Interpolate pairs of numbers in a & b. + while ((am = d3_interpolate_numberA.exec(a)) + && (bm = d3_interpolate_numberB.exec(b))) { + if ((bs = bm.index) > bi) { // a string precedes the next number in b + bs = b.slice(bi, bs); + if (s[i]) s[i] += bs; // coalesce with previous string + else s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match + if (s[i]) s[i] += bm; // coalesce with previous string + else s[++i] = bm; + } else { // interpolate non-matching numbers + s[++i] = null; + q.push({i: i, x: d3_interpolateNumber(am, bm)}); + } + bi = d3_interpolate_numberB.lastIndex; + } + + // Add remains of b. + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) s[i] += bs; // coalesce with previous string + else s[++i] = bs; + } + + // Special optimization for only a single match. + // Otherwise, interpolate each of the numbers and rejoin the string. + return s.length < 2 + ? (q[0] ? (b = q[0].x, function(t) { return b(t) + ""; }) + : function() { return b; }) + : (b = q.length, function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }); +} + +var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, + d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g"); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/transform.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/transform.js new file mode 100644 index 000000000..3261ec412 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/transform.js @@ -0,0 +1,59 @@ +import "../math/transform"; +import "number"; + +d3.interpolateTransform = d3_interpolateTransform; + +function d3_interpolateTransformPop(s) { + return s.length ? s.pop() + "," : ""; +} + +function d3_interpolateTranslate(ta, tb, s, q) { + if (ta[0] !== tb[0] || ta[1] !== tb[1]) { + var i = s.push("translate(", null, ",", null, ")"); + q.push({i: i - 4, x: d3_interpolateNumber(ta[0], tb[0])}, {i: i - 2, x: d3_interpolateNumber(ta[1], tb[1])}); + } else if (tb[0] || tb[1]) { + s.push("translate(" + tb + ")"); + } +} + +function d3_interpolateRotate(ra, rb, s, q) { + if (ra !== rb) { + if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; // shortest path + q.push({i: s.push(d3_interpolateTransformPop(s) + "rotate(", null, ")") - 2, x: d3_interpolateNumber(ra, rb)}); + } else if (rb) { + s.push(d3_interpolateTransformPop(s) + "rotate(" + rb + ")"); + } +} + +function d3_interpolateSkew(wa, wb, s, q) { + if (wa !== wb) { + q.push({i: s.push(d3_interpolateTransformPop(s) + "skewX(", null, ")") - 2, x: d3_interpolateNumber(wa, wb)}); + } else if (wb) { + s.push(d3_interpolateTransformPop(s) + "skewX(" + wb + ")"); + } +} + +function d3_interpolateScale(ka, kb, s, q) { + if (ka[0] !== kb[0] || ka[1] !== kb[1]) { + var i = s.push(d3_interpolateTransformPop(s) + "scale(", null, ",", null, ")"); + q.push({i: i - 4, x: d3_interpolateNumber(ka[0], kb[0])}, {i: i - 2, x: d3_interpolateNumber(ka[1], kb[1])}); + } else if (kb[0] !== 1 || kb[1] !== 1) { + s.push(d3_interpolateTransformPop(s) + "scale(" + kb + ")"); + } +} + +function d3_interpolateTransform(a, b) { + var s = [], // string constants and placeholders + q = []; // number interpolators + a = d3.transform(a), b = d3.transform(b); + d3_interpolateTranslate(a.translate, b.translate, s, q); + d3_interpolateRotate(a.rotate, b.rotate, s, q); + d3_interpolateSkew(a.skew, b.skew, s, q); + d3_interpolateScale(a.scale, b.scale, s, q); + a = b = null; // gc + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/uninterpolate.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/uninterpolate.js new file mode 100644 index 000000000..d8c83321f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/uninterpolate.js @@ -0,0 +1,9 @@ +function d3_uninterpolateNumber(a, b) { + b = (b -= a = +a) || 1 / b; + return function(x) { return (x - a) / b; }; +} + +function d3_uninterpolateClamp(a, b) { + b = (b -= a = +a) || 1 / b; + return function(x) { return Math.max(0, Math.min(1, (x - a) / b)); }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/zoom.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/zoom.js new file mode 100644 index 000000000..a42f2a7d8 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/interpolate/zoom.js @@ -0,0 +1,53 @@ +import "../math/trigonometry"; + +var ρ = Math.SQRT2, + ρ2 = 2, + ρ4 = 4; + +// p0 = [ux0, uy0, w0] +// p1 = [ux1, uy1, w1] +d3.interpolateZoom = function(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], + ux1 = p1[0], uy1 = p1[1], w1 = p1[2], + dx = ux1 - ux0, + dy = uy1 - uy0, + d2 = dx * dx + dy * dy, + i, + S; + + // Special case for u0 ≅ u1. + if (d2 < ε2) { + S = Math.log(w1 / w0) / ρ; + i = function(t) { + return [ + ux0 + t * dx, + uy0 + t * dy, + w0 * Math.exp(ρ * t * S) + ]; + } + } + + // General case. + else { + var d1 = Math.sqrt(d2), + b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), + b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), + r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), + r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / ρ; + i = function(t) { + var s = t * S, + coshr0 = d3_cosh(r0), + u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); + return [ + ux0 + u * dx, + uy0 + u * dy, + w0 * coshr0 / d3_cosh(ρ * s + r0) + ]; + } + } + + i.duration = S * 1000; + + return i; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/bundle.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/bundle.js new file mode 100644 index 000000000..3f3024433 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/bundle.js @@ -0,0 +1,59 @@ +import "layout"; + +// Implements hierarchical edge bundling using Holten's algorithm. For each +// input link, a path is computed that travels through the tree, up the parent +// hierarchy to the least common ancestor, and then back down to the destination +// node. Each path is simply an array of nodes. +d3.layout.bundle = function() { + return function(links) { + var paths = [], + i = -1, + n = links.length; + while (++i < n) paths.push(d3_layout_bundlePath(links[i])); + return paths; + }; +}; + +function d3_layout_bundlePath(link) { + var start = link.source, + end = link.target, + lca = d3_layout_bundleLeastCommonAncestor(start, end), + points = [start]; + while (start !== lca) { + start = start.parent; + points.push(start); + } + var k = points.length; + while (end !== lca) { + points.splice(k, 0, end); + end = end.parent; + } + return points; +} + +function d3_layout_bundleAncestors(node) { + var ancestors = [], + parent = node.parent; + while (parent != null) { + ancestors.push(node); + node = parent; + parent = parent.parent; + } + ancestors.push(node); + return ancestors; +} + +function d3_layout_bundleLeastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = d3_layout_bundleAncestors(a), + bNodes = d3_layout_bundleAncestors(b), + aNode = aNodes.pop(), + bNode = bNodes.pop(), + sharedNode = null; + while (aNode === bNode) { + sharedNode = aNode; + aNode = aNodes.pop(); + bNode = bNodes.pop(); + } + return sharedNode; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/chord.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/chord.js new file mode 100644 index 000000000..87f73c4e2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/chord.js @@ -0,0 +1,157 @@ +import "../arrays/range"; +import "../math/trigonometry"; +import "layout"; + +d3.layout.chord = function() { + var chord = {}, + chords, + groups, + matrix, + n, + padding = 0, + sortGroups, + sortSubgroups, + sortChords; + + function relayout() { + var subgroups = {}, + groupSums = [], + groupIndex = d3.range(n), + subgroupIndex = [], + k, + x, + x0, + i, + j; + + chords = []; + groups = []; + + // Compute the sum. + k = 0, i = -1; while (++i < n) { + x = 0, j = -1; while (++j < n) { + x += matrix[i][j]; + } + groupSums.push(x); + subgroupIndex.push(d3.range(n)); + k += x; + } + + // Sort groups… + if (sortGroups) { + groupIndex.sort(function(a, b) { + return sortGroups(groupSums[a], groupSums[b]); + }); + } + + // Sort subgroups… + if (sortSubgroups) { + subgroupIndex.forEach(function(d, i) { + d.sort(function(a, b) { + return sortSubgroups(matrix[i][a], matrix[i][b]); + }); + }); + } + + // Convert the sum to scaling factor for [0, 2pi]. + // TODO Allow start and end angle to be specified. + // TODO Allow padding to be specified as percentage? + k = (τ - padding * n) / k; + + // Compute the start and end angle for each group and subgroup. + // Note: Opera has a bug reordering object literal properties! + x = 0, i = -1; while (++i < n) { + x0 = x, j = -1; while (++j < n) { + var di = groupIndex[i], + dj = subgroupIndex[di][j], + v = matrix[di][dj], + a0 = x, + a1 = x += v * k; + subgroups[di + "-" + dj] = { + index: di, + subindex: dj, + startAngle: a0, + endAngle: a1, + value: v + }; + } + groups[di] = { + index: di, + startAngle: x0, + endAngle: x, + value: groupSums[di] + }; + x += padding; + } + + // Generate chords for each (non-empty) subgroup-subgroup link. + i = -1; while (++i < n) { + j = i - 1; while (++j < n) { + var source = subgroups[i + "-" + j], + target = subgroups[j + "-" + i]; + if (source.value || target.value) { + chords.push(source.value < target.value + ? {source: target, target: source} + : {source: source, target: target}); + } + } + } + + if (sortChords) resort(); + } + + function resort() { + chords.sort(function(a, b) { + return sortChords( + (a.source.value + a.target.value) / 2, + (b.source.value + b.target.value) / 2); + }); + } + + chord.matrix = function(x) { + if (!arguments.length) return matrix; + n = (matrix = x) && matrix.length; + chords = groups = null; + return chord; + }; + + chord.padding = function(x) { + if (!arguments.length) return padding; + padding = x; + chords = groups = null; + return chord; + }; + + chord.sortGroups = function(x) { + if (!arguments.length) return sortGroups; + sortGroups = x; + chords = groups = null; + return chord; + }; + + chord.sortSubgroups = function(x) { + if (!arguments.length) return sortSubgroups; + sortSubgroups = x; + chords = null; + return chord; + }; + + chord.sortChords = function(x) { + if (!arguments.length) return sortChords; + sortChords = x; + if (chords) resort(); + return chord; + }; + + chord.chords = function() { + if (!chords) relayout(); + return chords; + }; + + chord.groups = function() { + if (!groups) relayout(); + return groups; + }; + + return chord; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/cluster.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/cluster.js new file mode 100644 index 000000000..a4eec3bb2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/cluster.js @@ -0,0 +1,92 @@ +import "../arrays/max"; +import "layout"; +import "hierarchy"; +import "tree"; + +// Implements a hierarchical layout using the cluster (or dendrogram) +// algorithm. +d3.layout.cluster = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), + separation = d3_layout_treeSeparation, + size = [1, 1], // width, height + nodeSize = false; + + function cluster(d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0], + previousNode, + x = 0; + + // First walk, computing the initial x & y values. + d3_layout_hierarchyVisitAfter(root, function(node) { + var children = node.children; + if (children && children.length) { + node.x = d3_layout_clusterX(children); + node.y = d3_layout_clusterY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + + // Compute the left-most, right-most, and depth-most nodes for extents. + var left = d3_layout_clusterLeft(root), + right = d3_layout_clusterRight(root), + x0 = left.x - separation(left, right) / 2, + x1 = right.x + separation(right, left) / 2; + + // Second walk, normalizing x & y to the desired size. + d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) { + node.x = (node.x - root.x) * size[0]; + node.y = (root.y - node.y) * size[1]; + } : function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1]; + }); + + return nodes; + } + + cluster.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return cluster; + }; + + cluster.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null; + return cluster; + }; + + cluster.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) != null; + return cluster; + }; + + return d3_layout_hierarchyRebind(cluster, hierarchy); +}; + +function d3_layout_clusterY(children) { + return 1 + d3.max(children, function(child) { + return child.y; + }); +} + +function d3_layout_clusterX(children) { + return children.reduce(function(x, child) { + return x + child.x; + }, 0) / children.length; +} + +function d3_layout_clusterLeft(node) { + var children = node.children; + return children && children.length ? d3_layout_clusterLeft(children[0]) : node; +} + +function d3_layout_clusterRight(node) { + var children = node.children, n; + return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/force.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/force.js new file mode 100644 index 000000000..41e5316b8 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/force.js @@ -0,0 +1,372 @@ +import "../behavior/drag"; +import "../core/identity"; +import "../core/rebind"; +import "../event/event"; +import "../event/dispatch"; +import "../event/timer"; +import "../geom/quadtree"; +import "layout"; + +// A rudimentary force layout using Gauss-Seidel. +d3.layout.force = function() { + var force = {}, + event = d3.dispatch("start", "tick", "end"), + timer, + size = [1, 1], + drag, + alpha, + friction = 0.9, + linkDistance = d3_layout_forceLinkDistance, + linkStrength = d3_layout_forceLinkStrength, + charge = -30, + chargeDistance2 = d3_layout_forceChargeDistance2, + gravity = 0.1, + theta2 = 0.64, + nodes = [], + links = [], + distances, + strengths, + charges; + + function repulse(node) { + return function(quad, x1, _, x2) { + if (quad.point !== node) { + var dx = quad.cx - node.x, + dy = quad.cy - node.y, + dw = x2 - x1, + dn = dx * dx + dy * dy; + + /* Barnes-Hut criterion. */ + if (dw * dw / theta2 < dn) { + if (dn < chargeDistance2) { + var k = quad.charge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + return true; + } + + if (quad.point && dn && dn < chargeDistance2) { + var k = quad.pointCharge / dn; + node.px -= dx * k; + node.py -= dy * k; + } + } + return !quad.charge; + }; + } + + force.tick = function() { + // simulated annealing, basically + if ((alpha *= 0.99) < 0.005) { + timer = null; + event.end({type: "end", alpha: alpha = 0}); + return true; + } + + var n = nodes.length, + m = links.length, + q, + i, // current index + o, // current object + s, // current source + t, // current target + l, // current distance + k, // current force + x, // x-distance + y; // y-distance + + // gauss-seidel relaxation for links + for (i = 0; i < m; ++i) { + o = links[i]; + s = o.source; + t = o.target; + x = t.x - s.x; + y = t.y - s.y; + if (l = (x * x + y * y)) { + l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; + x *= l; + y *= l; + t.x -= x * (k = (s.weight + t.weight ? s.weight / (s.weight + t.weight) : 0.5)); + t.y -= y * k; + s.x += x * (k = 1 - k); + s.y += y * k; + } + } + + // apply gravity forces + if (k = alpha * gravity) { + x = size[0] / 2; + y = size[1] / 2; + i = -1; if (k) while (++i < n) { + o = nodes[i]; + o.x += (x - o.x) * k; + o.y += (y - o.y) * k; + } + } + + // compute quadtree center of mass and apply charge forces + if (charge) { + d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); + i = -1; while (++i < n) { + if (!(o = nodes[i]).fixed) { + q.visit(repulse(o)); + } + } + } + + // position verlet integration + i = -1; while (++i < n) { + o = nodes[i]; + if (o.fixed) { + o.x = o.px; + o.y = o.py; + } else { + o.x -= (o.px - (o.px = o.x)) * friction; + o.y -= (o.py - (o.py = o.y)) * friction; + } + } + + event.tick({type: "tick", alpha: alpha}); + }; + + force.nodes = function(x) { + if (!arguments.length) return nodes; + nodes = x; + return force; + }; + + force.links = function(x) { + if (!arguments.length) return links; + links = x; + return force; + }; + + force.size = function(x) { + if (!arguments.length) return size; + size = x; + return force; + }; + + force.linkDistance = function(x) { + if (!arguments.length) return linkDistance; + linkDistance = typeof x === "function" ? x : +x; + return force; + }; + + // For backwards-compatibility. + force.distance = force.linkDistance; + + force.linkStrength = function(x) { + if (!arguments.length) return linkStrength; + linkStrength = typeof x === "function" ? x : +x; + return force; + }; + + force.friction = function(x) { + if (!arguments.length) return friction; + friction = +x; + return force; + }; + + force.charge = function(x) { + if (!arguments.length) return charge; + charge = typeof x === "function" ? x : +x; + return force; + }; + + force.chargeDistance = function(x) { + if (!arguments.length) return Math.sqrt(chargeDistance2); + chargeDistance2 = x * x; + return force; + }; + + force.gravity = function(x) { + if (!arguments.length) return gravity; + gravity = +x; + return force; + }; + + force.theta = function(x) { + if (!arguments.length) return Math.sqrt(theta2); + theta2 = x * x; + return force; + }; + + force.alpha = function(x) { + if (!arguments.length) return alpha; + + x = +x; + if (alpha) { // if we're already running + if (x > 0) { // we might keep it hot + alpha = x; + } else { // or we might stop + timer.c = null, timer.t = NaN, timer = null; + event.end({type: "end", alpha: alpha = 0}); + } + } else if (x > 0) { // otherwise, fire it up! + event.start({type: "start", alpha: alpha = x}); + timer = d3_timer(force.tick); + } + + return force; + }; + + force.start = function() { + var i, + n = nodes.length, + m = links.length, + w = size[0], + h = size[1], + neighbors, + o; + + for (i = 0; i < n; ++i) { + (o = nodes[i]).index = i; + o.weight = 0; + } + + for (i = 0; i < m; ++i) { + o = links[i]; + if (typeof o.source == "number") o.source = nodes[o.source]; + if (typeof o.target == "number") o.target = nodes[o.target]; + ++o.source.weight; + ++o.target.weight; + } + + for (i = 0; i < n; ++i) { + o = nodes[i]; + if (isNaN(o.x)) o.x = position("x", w); + if (isNaN(o.y)) o.y = position("y", h); + if (isNaN(o.px)) o.px = o.x; + if (isNaN(o.py)) o.py = o.y; + } + + distances = []; + if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); + else for (i = 0; i < m; ++i) distances[i] = linkDistance; + + strengths = []; + if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); + else for (i = 0; i < m; ++i) strengths[i] = linkStrength; + + charges = []; + if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); + else for (i = 0; i < n; ++i) charges[i] = charge; + + // inherit node position from first neighbor with defined position + // or if no such neighbors, initialize node position randomly + // initialize neighbors lazily to avoid overhead when not needed + function position(dimension, size) { + if (!neighbors) { + neighbors = new Array(n); + for (j = 0; j < n; ++j) { + neighbors[j] = []; + } + for (j = 0; j < m; ++j) { + var o = links[j]; + neighbors[o.source.index].push(o.target); + neighbors[o.target.index].push(o.source); + } + } + var candidates = neighbors[i], + j = -1, + l = candidates.length, + x; + while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x; + return Math.random() * size; + } + + return force.resume(); + }; + + force.resume = function() { + return force.alpha(0.1); + }; + + force.stop = function() { + return force.alpha(0); + }; + + // use `node.call(force.drag)` to make nodes draggable + force.drag = function() { + if (!drag) drag = d3.behavior.drag() + .origin(d3_identity) + .on("dragstart.force", d3_layout_forceDragstart) + .on("drag.force", dragmove) + .on("dragend.force", d3_layout_forceDragend); + + if (!arguments.length) return drag; + + this.on("mouseover.force", d3_layout_forceMouseover) + .on("mouseout.force", d3_layout_forceMouseout) + .call(drag); + }; + + function dragmove(d) { + d.px = d3.event.x, d.py = d3.event.y; + force.resume(); // restart annealing + } + + return d3.rebind(force, event, "on"); +}; + +// The fixed property has three bits: +// Bit 1 can be set externally (e.g., d.fixed = true) and show persist. +// Bit 2 stores the dragging state, from mousedown to mouseup. +// Bit 3 stores the hover state, from mouseover to mouseout. +// Dragend is a special case: it also clears the hover state. + +function d3_layout_forceDragstart(d) { + d.fixed |= 2; // set bit 2 +} + +function d3_layout_forceDragend(d) { + d.fixed &= ~6; // unset bits 2 and 3 +} + +function d3_layout_forceMouseover(d) { + d.fixed |= 4; // set bit 3 + d.px = d.x, d.py = d.y; // set velocity to zero +} + +function d3_layout_forceMouseout(d) { + d.fixed &= ~4; // unset bit 3 +} + +function d3_layout_forceAccumulate(quad, alpha, charges) { + var cx = 0, + cy = 0; + quad.charge = 0; + if (!quad.leaf) { + var nodes = quad.nodes, + n = nodes.length, + i = -1, + c; + while (++i < n) { + c = nodes[i]; + if (c == null) continue; + d3_layout_forceAccumulate(c, alpha, charges); + quad.charge += c.charge; + cx += c.charge * c.cx; + cy += c.charge * c.cy; + } + } + if (quad.point) { + // jitter internal nodes that are coincident + if (!quad.leaf) { + quad.point.x += Math.random() - 0.5; + quad.point.y += Math.random() - 0.5; + } + var k = alpha * charges[quad.point.index]; + quad.charge += quad.pointCharge = k; + cx += k * quad.point.x; + cy += k * quad.point.y; + } + quad.cx = cx / quad.charge; + quad.cy = cy / quad.charge; +} + +var d3_layout_forceLinkDistance = 20, + d3_layout_forceLinkStrength = 1, + d3_layout_forceChargeDistance2 = Infinity; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/hierarchy.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/hierarchy.js new file mode 100644 index 000000000..3bd478011 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/hierarchy.js @@ -0,0 +1,136 @@ +import "../arrays/merge"; +import "../core/rebind"; +import "layout"; + +d3.layout.hierarchy = function() { + var sort = d3_layout_hierarchySort, + children = d3_layout_hierarchyChildren, + value = d3_layout_hierarchyValue; + + function hierarchy(root) { + var stack = [root], + nodes = [], + node; + + root.depth = 0; + + while ((node = stack.pop()) != null) { + nodes.push(node); + if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) { + var n, childs, child; + while (--n >= 0) { + stack.push(child = childs[n]); + child.parent = node; + child.depth = node.depth + 1; + } + if (value) node.value = 0; + node.children = childs; + } else { + if (value) node.value = +value.call(hierarchy, node, node.depth) || 0; + delete node.children; + } + } + + d3_layout_hierarchyVisitAfter(root, function(node) { + var childs, parent; + if (sort && (childs = node.children)) childs.sort(sort); + if (value && (parent = node.parent)) parent.value += node.value; + }); + + return nodes; + } + + hierarchy.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return hierarchy; + }; + + hierarchy.children = function(x) { + if (!arguments.length) return children; + children = x; + return hierarchy; + }; + + hierarchy.value = function(x) { + if (!arguments.length) return value; + value = x; + return hierarchy; + }; + + // Re-evaluates the `value` property for the specified hierarchy. + hierarchy.revalue = function(root) { + if (value) { + d3_layout_hierarchyVisitBefore(root, function(node) { + if (node.children) node.value = 0; + }); + d3_layout_hierarchyVisitAfter(root, function(node) { + var parent; + if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0; + if (parent = node.parent) parent.value += node.value; + }); + } + return root; + }; + + return hierarchy; +}; + +// A method assignment helper for hierarchy subclasses. +function d3_layout_hierarchyRebind(object, hierarchy) { + d3.rebind(object, hierarchy, "sort", "children", "value"); + + // Add an alias for nodes and links, for convenience. + object.nodes = object; + object.links = d3_layout_hierarchyLinks; + + return object; +} + +// Pre-order traversal. +function d3_layout_hierarchyVisitBefore(node, callback) { + var nodes = [node]; + while ((node = nodes.pop()) != null) { + callback(node); + if ((children = node.children) && (n = children.length)) { + var n, children; + while (--n >= 0) nodes.push(children[n]); + } + } +} + +// Post-order traversal. +function d3_layout_hierarchyVisitAfter(node, callback) { + var nodes = [node], nodes2 = []; + while ((node = nodes.pop()) != null) { + nodes2.push(node); + if ((children = node.children) && (n = children.length)) { + var i = -1, n, children; + while (++i < n) nodes.push(children[i]); + } + } + while ((node = nodes2.pop()) != null) { + callback(node); + } +} + +function d3_layout_hierarchyChildren(d) { + return d.children; +} + +function d3_layout_hierarchyValue(d) { + return d.value; +} + +function d3_layout_hierarchySort(a, b) { + return b.value - a.value; +} + +// Returns an array source+target objects for the specified nodes. +function d3_layout_hierarchyLinks(nodes) { + return d3.merge(nodes.map(function(parent) { + return (parent.children || []).map(function(child) { + return {source: parent, target: child}; + }); + })); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/histogram.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/histogram.js new file mode 100644 index 000000000..4105d9bb5 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/histogram.js @@ -0,0 +1,110 @@ +import "../arrays/bisect"; +import "../arrays/min"; +import "../arrays/max"; +import "../core/functor"; +import "layout"; + +d3.layout.histogram = function() { + var frequency = true, + valuer = Number, + ranger = d3_layout_histogramRange, + binner = d3_layout_histogramBinSturges; + + function histogram(data, i) { + var bins = [], + values = data.map(valuer, this), + range = ranger.call(this, values, i), + thresholds = binner.call(this, range, values, i), + bin, + i = -1, + n = values.length, + m = thresholds.length - 1, + k = frequency ? 1 : 1 / n, + x; + + // Initialize the bins. + while (++i < m) { + bin = bins[i] = []; + bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); + bin.y = 0; + } + + // Fill the bins, ignoring values outside the range. + if (m > 0) { + i = -1; while(++i < n) { + x = values[i]; + if (x >= range[0] && x <= range[1]) { + bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; + bin.y += k; + bin.push(data[i]); + } + } + } + + return bins; + } + + // Specifies how to extract a value from the associated data. The default + // value function is `Number`, which is equivalent to the identity function. + histogram.value = function(x) { + if (!arguments.length) return valuer; + valuer = x; + return histogram; + }; + + // Specifies the range of the histogram. Values outside the specified range + // will be ignored. The argument `x` may be specified either as a two-element + // array representing the minimum and maximum value of the range, or as a + // function that returns the range given the array of values and the current + // index `i`. The default range is the extent (minimum and maximum) of the + // values. + histogram.range = function(x) { + if (!arguments.length) return ranger; + ranger = d3_functor(x); + return histogram; + }; + + // Specifies how to bin values in the histogram. The argument `x` may be + // specified as a number, in which case the range of values will be split + // uniformly into the given number of bins. Or, `x` may be an array of + // threshold values, defining the bins; the specified array must contain the + // rightmost (upper) value, thus specifying n + 1 values for n bins. Or, `x` + // may be a function which is evaluated, being passed the range, the array of + // values, and the current index `i`, returning an array of thresholds. The + // default bin function will divide the values into uniform bins using + // Sturges' formula. + histogram.bins = function(x) { + if (!arguments.length) return binner; + binner = typeof x === "number" + ? function(range) { return d3_layout_histogramBinFixed(range, x); } + : d3_functor(x); + return histogram; + }; + + // Specifies whether the histogram's `y` value is a count (frequency) or a + // probability (density). The default value is true. + histogram.frequency = function(x) { + if (!arguments.length) return frequency; + frequency = !!x; + return histogram; + }; + + return histogram; +}; + +function d3_layout_histogramBinSturges(range, values) { + return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); +} + +function d3_layout_histogramBinFixed(range, n) { + var x = -1, + b = +range[0], + m = (range[1] - b) / n, + f = []; + while (++x <= n) f[x] = m * x + b; + return f; +} + +function d3_layout_histogramRange(values) { + return [d3.min(values), d3.max(values)]; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/index.js new file mode 100644 index 000000000..9c203f3d3 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/index.js @@ -0,0 +1,13 @@ +import "layout"; +import "bundle"; +import "chord"; +import "force"; +import "partition"; +import "pie"; +import "stack"; +import "histogram"; +import "hierarchy"; +import "pack"; +import "cluster"; +import "tree"; +import "treemap"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/layout.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/layout.js new file mode 100644 index 000000000..3bcbccefe --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/layout.js @@ -0,0 +1 @@ +d3.layout = {}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/pack.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/pack.js new file mode 100644 index 000000000..da573b1d9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/pack.js @@ -0,0 +1,211 @@ +import "layout"; +import "hierarchy"; + +d3.layout.pack = function() { + var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), + padding = 0, + size = [1, 1], + radius; + + function pack(d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0], + w = size[0], + h = size[1], + r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() { return radius; }; + + // Recursively compute the layout. + root.x = root.y = 0; + d3_layout_hierarchyVisitAfter(root, function(d) { d.r = +r(d.value); }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + + // When padding, recompute the layout using scaled padding. + if (padding) { + var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2; + d3_layout_hierarchyVisitAfter(root, function(d) { d.r += dr; }); + d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings); + d3_layout_hierarchyVisitAfter(root, function(d) { d.r -= dr; }); + } + + // Translate and scale the layout to fit the requested size. + d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h)); + + return nodes; + } + + pack.size = function(_) { + if (!arguments.length) return size; + size = _; + return pack; + }; + + pack.radius = function(_) { + if (!arguments.length) return radius; + radius = _ == null || typeof _ === "function" ? _ : +_; + return pack; + }; + + pack.padding = function(_) { + if (!arguments.length) return padding; + padding = +_; + return pack; + }; + + return d3_layout_hierarchyRebind(pack, hierarchy); +}; + +function d3_layout_packSort(a, b) { + return a.value - b.value; +} + +function d3_layout_packInsert(a, b) { + var c = a._pack_next; + a._pack_next = b; + b._pack_prev = a; + b._pack_next = c; + c._pack_prev = b; +} + +function d3_layout_packSplice(a, b) { + a._pack_next = b; + b._pack_prev = a; +} + +function d3_layout_packIntersects(a, b) { + var dx = b.x - a.x, + dy = b.y - a.y, + dr = a.r + b.r; + return 0.999 * dr * dr > dx * dx + dy * dy; // relative error within epsilon +} + +function d3_layout_packSiblings(node) { + if (!(nodes = node.children) || !(n = nodes.length)) return; + + var nodes, + xMin = Infinity, + xMax = -Infinity, + yMin = Infinity, + yMax = -Infinity, + a, b, c, i, j, k, n; + + function bound(node) { + xMin = Math.min(node.x - node.r, xMin); + xMax = Math.max(node.x + node.r, xMax); + yMin = Math.min(node.y - node.r, yMin); + yMax = Math.max(node.y + node.r, yMax); + } + + // Create node links. + nodes.forEach(d3_layout_packLink); + + // Create first node. + a = nodes[0]; + a.x = -a.r; + a.y = 0; + bound(a); + + // Create second node. + if (n > 1) { + b = nodes[1]; + b.x = b.r; + b.y = 0; + bound(b); + + // Create third node and build chain. + if (n > 2) { + c = nodes[2]; + d3_layout_packPlace(a, b, c); + bound(c); + d3_layout_packInsert(a, c); + a._pack_prev = c; + d3_layout_packInsert(c, b); + b = a._pack_next; + + // Now iterate through the rest. + for (i = 3; i < n; i++) { + d3_layout_packPlace(a, b, c = nodes[i]); + + // Search for the closest intersection. + var isect = 0, s1 = 1, s2 = 1; + for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { + if (d3_layout_packIntersects(j, c)) { + isect = 1; + break; + } + } + if (isect == 1) { + for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { + if (d3_layout_packIntersects(k, c)) { + break; + } + } + } + + // Update node chain. + if (isect) { + if (s1 < s2 || (s1 == s2 && b.r < a.r)) d3_layout_packSplice(a, b = j); + else d3_layout_packSplice(a = k, b); + i--; + } else { + d3_layout_packInsert(a, c); + b = c; + bound(c); + } + } + } + } + + // Re-center the circles and compute the encompassing radius. + var cx = (xMin + xMax) / 2, + cy = (yMin + yMax) / 2, + cr = 0; + for (i = 0; i < n; i++) { + c = nodes[i]; + c.x -= cx; + c.y -= cy; + cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y)); + } + node.r = cr; + + // Remove node links. + nodes.forEach(d3_layout_packUnlink); +} + +function d3_layout_packLink(node) { + node._pack_next = node._pack_prev = node; +} + +function d3_layout_packUnlink(node) { + delete node._pack_next; + delete node._pack_prev; +} + +function d3_layout_packTransform(node, x, y, k) { + var children = node.children; + node.x = x += k * node.x; + node.y = y += k * node.y; + node.r *= k; + if (children) { + var i = -1, n = children.length; + while (++i < n) d3_layout_packTransform(children[i], x, y, k); + } +} + +function d3_layout_packPlace(a, b, c) { + var db = a.r + c.r, + dx = b.x - a.x, + dy = b.y - a.y; + if (db && (dx || dy)) { + var da = b.r + c.r, + dc = dx * dx + dy * dy; + da *= da; + db *= db; + var x = 0.5 + (db - da) / (2 * dc), + y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc); + c.x = a.x + x * dx + y * dy; + c.y = a.y + x * dy - y * dx; + } else { + c.x = a.x + db; + c.y = a.y; + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/partition.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/partition.js new file mode 100644 index 000000000..581fd0523 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/partition.js @@ -0,0 +1,51 @@ +import "layout"; +import "hierarchy"; + +d3.layout.partition = function() { + var hierarchy = d3.layout.hierarchy(), + size = [1, 1]; // width, height + + function position(node, x, dx, dy) { + var children = node.children; + node.x = x; + node.y = node.depth * dy; + node.dx = dx; + node.dy = dy; + if (children && (n = children.length)) { + var i = -1, + n, + c, + d; + dx = node.value ? dx / node.value : 0; + while (++i < n) { + position(c = children[i], x, d = c.value * dx, dy); + x += d; + } + } + } + + function depth(node) { + var children = node.children, + d = 0; + if (children && (n = children.length)) { + var i = -1, + n; + while (++i < n) d = Math.max(d, depth(children[i])); + } + return 1 + d; + } + + function partition(d, i) { + var nodes = hierarchy.call(this, d, i); + position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); + return nodes; + } + + partition.size = function(x) { + if (!arguments.length) return size; + size = x; + return partition; + }; + + return d3_layout_hierarchyRebind(partition, hierarchy); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/pie.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/pie.js new file mode 100644 index 000000000..5a0abb451 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/pie.js @@ -0,0 +1,78 @@ +import "../arrays/range"; +import "../arrays/sum"; +import "../math/trigonometry"; +import "layout"; + +d3.layout.pie = function() { + var value = Number, + sort = d3_layout_pieSortByValue, + startAngle = 0, + endAngle = τ, + padAngle = 0; + + function pie(data) { + var n = data.length, + values = data.map(function(d, i) { return +value.call(pie, d, i); }), + a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), + da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, + p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), + pa = p * (da < 0 ? -1 : 1), + sum = d3.sum(values), + k = sum ? (da - n * pa) / sum : 0, + index = d3.range(n), + arcs = [], + v; + + // Optionally sort the data. + if (sort != null) index.sort(sort === d3_layout_pieSortByValue + ? function(i, j) { return values[j] - values[i]; } + : function(i, j) { return sort(data[i], data[j]); }); + + // Compute the arcs! They are stored in the original data's order. + index.forEach(function(i) { + arcs[i] = { + data: data[i], + value: v = values[i], + startAngle: a, + endAngle: a += v * k + pa, + padAngle: p + }; + }); + + return arcs; + } + + pie.value = function(_) { + if (!arguments.length) return value; + value = _; + return pie; + }; + + pie.sort = function(_) { + if (!arguments.length) return sort; + sort = _; + return pie; + }; + + pie.startAngle = function(_) { + if (!arguments.length) return startAngle; + startAngle = _; + return pie; + }; + + pie.endAngle = function(_) { + if (!arguments.length) return endAngle; + endAngle = _; + return pie; + }; + + pie.padAngle = function(_) { + if (!arguments.length) return padAngle; + padAngle = _; + return pie; + }; + + return pie; +}; + +var d3_layout_pieSortByValue = {}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/stack.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/stack.js new file mode 100644 index 000000000..79ece6046 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/stack.js @@ -0,0 +1,247 @@ +import "../arrays/map"; +import "../arrays/permute"; +import "../arrays/range"; +import "../core/identity"; +import "layout"; + +// data is two-dimensional array of x,y; we populate y0 +d3.layout.stack = function() { + var values = d3_identity, + order = d3_layout_stackOrderDefault, + offset = d3_layout_stackOffsetZero, + out = d3_layout_stackOut, + x = d3_layout_stackX, + y = d3_layout_stackY; + + function stack(data, index) { + if (!(n = data.length)) return data; + + // Convert series to canonical two-dimensional representation. + var series = data.map(function(d, i) { + return values.call(stack, d, i); + }); + + // Convert each series to canonical [[x,y]] representation. + var points = series.map(function(d) { + return d.map(function(v, i) { + return [x.call(stack, v, i), y.call(stack, v, i)]; + }); + }); + + // Compute the order of series, and permute them. + var orders = order.call(stack, points, index); + series = d3.permute(series, orders); + points = d3.permute(points, orders); + + // Compute the baseline… + var offsets = offset.call(stack, points, index); + + // And propagate it to other series. + var m = series[0].length, + n, + i, + j, + o; + for (j = 0; j < m; ++j) { + out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); + for (i = 1; i < n; ++i) { + out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); + } + } + + return data; + } + + stack.values = function(x) { + if (!arguments.length) return values; + values = x; + return stack; + }; + + stack.order = function(x) { + if (!arguments.length) return order; + order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault; + return stack; + }; + + stack.offset = function(x) { + if (!arguments.length) return offset; + offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero; + return stack; + }; + + stack.x = function(z) { + if (!arguments.length) return x; + x = z; + return stack; + }; + + stack.y = function(z) { + if (!arguments.length) return y; + y = z; + return stack; + }; + + stack.out = function(z) { + if (!arguments.length) return out; + out = z; + return stack; + }; + + return stack; +}; + +function d3_layout_stackX(d) { + return d.x; +} + +function d3_layout_stackY(d) { + return d.y; +} + +function d3_layout_stackOut(d, y0, y) { + d.y0 = y0; + d.y = y; +} + +var d3_layout_stackOrders = d3.map({ + + "inside-out": function(data) { + var n = data.length, + i, + j, + max = data.map(d3_layout_stackMaxIndex), + sums = data.map(d3_layout_stackReduceSum), + index = d3.range(n).sort(function(a, b) { return max[a] - max[b]; }), + top = 0, + bottom = 0, + tops = [], + bottoms = []; + for (i = 0; i < n; ++i) { + j = index[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + return bottoms.reverse().concat(tops); + }, + + "reverse": function(data) { + return d3.range(data.length).reverse(); + }, + + "default": d3_layout_stackOrderDefault + +}); + +var d3_layout_stackOffsets = d3.map({ + + "silhouette": function(data) { + var n = data.length, + m = data[0].length, + sums = [], + max = 0, + i, + j, + o, + y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o > max) max = o; + sums.push(o); + } + for (j = 0; j < m; ++j) { + y0[j] = (max - sums[j]) / 2; + } + return y0; + }, + + "wiggle": function(data) { + var n = data.length, + x = data[0], + m = x.length, + i, + j, + k, + s1, + s2, + s3, + dx, + o, + o0, + y0 = []; + y0[0] = o = o0 = 0; + for (j = 1; j < m; ++j) { + for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; + for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { + for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { + s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; + } + s2 += s3 * data[i][j][1]; + } + y0[j] = o -= s1 ? s2 / s1 * dx : 0; + if (o < o0) o0 = o; + } + for (j = 0; j < m; ++j) y0[j] -= o0; + return y0; + }, + + "expand": function(data) { + var n = data.length, + m = data[0].length, + k = 1 / n, + i, + j, + o, + y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; + else for (i = 0; i < n; i++) data[i][j][1] = k; + } + for (j = 0; j < m; ++j) y0[j] = 0; + return y0; + }, + + "zero": d3_layout_stackOffsetZero + +}); + +function d3_layout_stackOrderDefault(data) { + return d3.range(data.length); +} + +function d3_layout_stackOffsetZero(data) { + var j = -1, + m = data[0].length, + y0 = []; + while (++j < m) y0[j] = 0; + return y0; +} + +function d3_layout_stackMaxIndex(array) { + var i = 1, + j = 0, + v = array[0][1], + k, + n = array.length; + for (; i < n; ++i) { + if ((k = array[i][1]) > v) { + j = i; + v = k; + } + } + return j; +} + +function d3_layout_stackReduceSum(d) { + return d.reduce(d3_layout_stackSum, 0); +} + +function d3_layout_stackSum(p, d) { + return p + d[1]; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/tree.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/tree.js new file mode 100644 index 000000000..80afaa7d8 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/tree.js @@ -0,0 +1,240 @@ +import "layout"; +import "hierarchy"; + +// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm +d3.layout.tree = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), + separation = d3_layout_treeSeparation, + size = [1, 1], // width, height + nodeSize = null; + + function tree(d, i) { + var nodes = hierarchy.call(this, d, i), + root0 = nodes[0], + root1 = wrapTree(root0); + + // Compute the layout using Buchheim et al.'s algorithm. + d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z; + d3_layout_hierarchyVisitBefore(root1, secondWalk); + + // If a fixed node size is specified, scale x and y. + if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); + + // If a fixed tree size is specified, scale x and y based on the extent. + // Compute the left-most, right-most, and depth-most nodes for extents. + else { + var left = root0, + right = root0, + bottom = root0; + d3_layout_hierarchyVisitBefore(root0, function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var tx = separation(left, right) / 2 - left.x, + kx = size[0] / (right.x + separation(right, left) / 2 + tx), + ky = size[1] / (bottom.depth || 1); + d3_layout_hierarchyVisitBefore(root0, function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + + return nodes; + } + + function wrapTree(root0) { + var root1 = {A: null, children: [root0]}, + queue = [root1], + node1; + + while ((node1 = queue.pop()) != null) { + for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) { + queue.push((children[i] = child = { + _: children[i], // source node + parent: node1, + children: (child = children[i].children) && child.slice() || [], + A: null, // default ancestor + a: null, // ancestor + z: 0, // prelim + m: 0, // mod + c: 0, // change + s: 0, // shift + t: null, // thread + i: i // number + }).a = child); + } + } + + return root1.children[0]; + } + + // FIRST WALK + // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is + // applied recursively to the children of v, as well as the function + // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the + // node v is placed to the midpoint of its outermost children. + function firstWalk(v) { + var children = v.children, + siblings = v.parent.children, + w = v.i ? siblings[v.i - 1] : null; + if (children.length) { + d3_layout_treeShift(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + } + + // SECOND WALK + // Computes all real x-coordinates by summing up the modifiers recursively. + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; + } + + // APPORTION + // The core of the algorithm. Here, a new subtree is combined with the + // previous subtrees. Threads are used to traverse the inside and outside + // contours of the left and right subtree up to the highest common level. The + // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the + // superscript o means outside and i means inside, the subscript - means left + // subtree and + means right subtree. For summing up the modifiers along the + // contour, we use respective variables si+, si-, so-, and so+. Whenever two + // nodes of the inside contours conflict, we compute the left one of the + // greatest uncommon ancestors using the function ANCESTOR and call MOVE + // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees. + // Finally, we add a new thread (if necessary). + function apportion(v, w, ancestor) { + if (w) { + var vip = v, + vop = v, + vim = w, + vom = vip.parent.children[0], + sip = vip.m, + sop = vop.m, + sim = vim.m, + som = vom.m, + shift; + while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { + vom = d3_layout_treeLeft(vom); + vop = d3_layout_treeRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !d3_layout_treeRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !d3_layout_treeLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; + } + + function sizeNode(node) { + node.x *= size[0]; + node.y = node.depth * size[1]; + } + + tree.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return tree; + }; + + tree.size = function(x) { + if (!arguments.length) return nodeSize ? null : size; + nodeSize = (size = x) == null ? sizeNode : null; + return tree; + }; + + tree.nodeSize = function(x) { + if (!arguments.length) return nodeSize ? size : null; + nodeSize = (size = x) == null ? null : sizeNode; + return tree; + }; + + return d3_layout_hierarchyRebind(tree, hierarchy); +}; + +function d3_layout_treeSeparation(a, b) { + return a.parent == b.parent ? 1 : 2; +} + +// function d3_layout_treeSeparationRadial(a, b) { +// return (a.parent == b.parent ? 1 : 2) / a.depth; +// } + +// NEXT LEFT +// This function is used to traverse the left contour of a subtree (or +// subforest). It returns the successor of v on this contour. This successor is +// either given by the leftmost child of v or by the thread of v. The function +// returns null if and only if v is on the highest level of its subtree. +function d3_layout_treeLeft(v) { + var children = v.children; + return children.length ? children[0] : v.t; +} + +// NEXT RIGHT +// This function works analogously to NEXT LEFT. +function d3_layout_treeRight(v) { + var children = v.children, n; + return (n = children.length) ? children[n - 1] : v.t; +} + +// MOVE SUBTREE +// Shifts the current subtree rooted at w+. This is done by increasing +// prelim(w+) and mod(w+) by shift. +function d3_layout_treeMove(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; +} + +// EXECUTE SHIFTS +// All other shifts, applied to the smaller subtrees between w- and w+, are +// performed by this function. To prepare the shifts, we have to adjust +// change(w+), shift(w+), and change(w-). +function d3_layout_treeShift(v) { + var shift = 0, + change = 0, + children = v.children, + i = children.length, + w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } +} + +// ANCESTOR +// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise, +// returns the specified (default) ancestor. +function d3_layout_treeAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/treemap.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/treemap.js new file mode 100644 index 000000000..cc0803a6c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/layout/treemap.js @@ -0,0 +1,229 @@ +import "layout"; +import "hierarchy"; + +// Squarified Treemaps by Mark Bruls, Kees Huizing, and Jarke J. van Wijk +// Modified to support a target aspect ratio by Jeff Heer +d3.layout.treemap = function() { + var hierarchy = d3.layout.hierarchy(), + round = Math.round, + size = [1, 1], // width, height + padding = null, + pad = d3_layout_treemapPadNull, + sticky = false, + stickies, + mode = "squarify", + ratio = 0.5 * (1 + Math.sqrt(5)); // golden ratio + + // Compute the area for each child based on value & scale. + function scale(children, k) { + var i = -1, + n = children.length, + child, + area; + while (++i < n) { + area = (child = children[i]).value * (k < 0 ? 0 : k); + child.area = isNaN(area) || area <= 0 ? 0 : area; + } + } + + // Recursively arranges the specified node's children into squarified rows. + function squarify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), + row = [], + remaining = children.slice(), // copy-on-write + child, + best = Infinity, // the best row score so far + score, // the current row score + u = mode === "slice" ? rect.dx + : mode === "dice" ? rect.dy + : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx + : Math.min(rect.dx, rect.dy), // initial orientation + n; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while ((n = remaining.length) > 0) { + row.push(child = remaining[n - 1]); + row.area += child.area; + if (mode !== "squarify" || (score = worst(row, u)) <= best) { // continue with this orientation + remaining.pop(); + best = score; + } else { // abort, and try a different orientation + row.area -= row.pop().area; + position(row, u, rect, false); + u = Math.min(rect.dx, rect.dy); + row.length = row.area = 0; + best = Infinity; + } + } + if (row.length) { + position(row, u, rect, true); + row.length = row.area = 0; + } + children.forEach(squarify); + } + } + + // Recursively resizes the specified node's children into existing rows. + // Preserves the existing layout! + function stickify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), + remaining = children.slice(), // copy-on-write + child, + row = []; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while (child = remaining.pop()) { + row.push(child); + row.area += child.area; + if (child.z != null) { + position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); + row.length = row.area = 0; + } + } + children.forEach(stickify); + } + } + + // Computes the score for the specified row, as the worst aspect ratio. + function worst(row, u) { + var s = row.area, + r, + rmax = 0, + rmin = Infinity, + i = -1, + n = row.length; + while (++i < n) { + if (!(r = row[i].area)) continue; + if (r < rmin) rmin = r; + if (r > rmax) rmax = r; + } + s *= s; + u *= u; + return s + ? Math.max((u * rmax * ratio) / s, s / (u * rmin * ratio)) + : Infinity; + } + + // Positions the specified row of nodes. Modifies `rect`. + function position(row, u, rect, flush) { + var i = -1, + n = row.length, + x = rect.x, + y = rect.y, + v = u ? round(row.area / u) : 0, + o; + if (u == rect.dx) { // horizontal subdivision + if (flush || v > rect.dy) v = rect.dy; // over+underflow + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dy = v; + x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0); + } + o.z = true; + o.dx += rect.x + rect.dx - x; // rounding error + rect.y += v; + rect.dy -= v; + } else { // vertical subdivision + if (flush || v > rect.dx) v = rect.dx; // over+underflow + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dx = v; + y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0); + } + o.z = false; + o.dy += rect.y + rect.dy - y; // rounding error + rect.x += v; + rect.dx -= v; + } + } + + function treemap(d) { + var nodes = stickies || hierarchy(d), + root = nodes[0]; + root.x = root.y = 0; + if (root.value) root.dx = size[0], root.dy = size[1]; + else root.dx = root.dy = 0; + if (stickies) hierarchy.revalue(root); + scale([root], root.dx * root.dy / root.value); + (stickies ? stickify : squarify)(root); + if (sticky) stickies = nodes; + return nodes; + } + + treemap.size = function(x) { + if (!arguments.length) return size; + size = x; + return treemap; + }; + + treemap.padding = function(x) { + if (!arguments.length) return padding; + + function padFunction(node) { + var p = x.call(treemap, node, node.depth); + return p == null + ? d3_layout_treemapPadNull(node) + : d3_layout_treemapPad(node, typeof p === "number" ? [p, p, p, p] : p); + } + + function padConstant(node) { + return d3_layout_treemapPad(node, x); + } + + var type; + pad = (padding = x) == null ? d3_layout_treemapPadNull + : (type = typeof x) === "function" ? padFunction + : type === "number" ? (x = [x, x, x, x], padConstant) + : padConstant; + return treemap; + }; + + treemap.round = function(x) { + if (!arguments.length) return round != Number; + round = x ? Math.round : Number; + return treemap; + }; + + treemap.sticky = function(x) { + if (!arguments.length) return sticky; + sticky = x; + stickies = null; + return treemap; + }; + + treemap.ratio = function(x) { + if (!arguments.length) return ratio; + ratio = x; + return treemap; + }; + + treemap.mode = function(x) { + if (!arguments.length) return mode; + mode = x + ""; + return treemap; + }; + + return d3_layout_hierarchyRebind(treemap, hierarchy); +}; + +function d3_layout_treemapPadNull(node) { + return {x: node.x, y: node.y, dx: node.dx, dy: node.dy}; +} + +function d3_layout_treemapPad(node, padding) { + var x = node.x + padding[3], + y = node.y + padding[0], + dx = node.dx - padding[1] - padding[3], + dy = node.dy - padding[0] - padding[2]; + if (dx < 0) { x += dx / 2; dx = 0; } + if (dy < 0) { y += dy / 2; dy = 0; } + return {x: x, y: y, dx: dx, dy: dy}; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ca-ES.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ca-ES.js new file mode 100644 index 000000000..73be711a2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ca-ES.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_caES = d3.locale({ + decimal: ",", + thousands: ".", + grouping: [3], + currency: ["", " €"], + dateTime: "%A, %e de %B de %Y, %X", + date: "%d/%m/%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], + days: ["diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"], + shortDays: ["dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."], + months: ["gener", "febrer", "març", "abril", "maig", "juny", "juliol", "agost", "setembre", "octubre", "novembre", "desembre"], + shortMonths: ["gen.", "febr.", "març", "abr.", "maig", "juny", "jul.", "ag.", "set.", "oct.", "nov.", "des."] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/de-CH.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/de-CH.js new file mode 100644 index 000000000..8d760ceb1 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/de-CH.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_deCH = d3.locale({ + decimal: ",", + thousands: "'", + grouping: [3], + currency: ["", " CHF"], + dateTime: "%A, der %e. %B %Y, %X", + date: "%d.%m.%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], // unused + days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], + shortDays: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], + months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], + shortMonths: ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/de-DE.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/de-DE.js new file mode 100644 index 000000000..a497ac48a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/de-DE.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_deDE = d3.locale({ + decimal: ",", + thousands: ".", + grouping: [3], + currency: ["", " €"], + dateTime: "%A, der %e. %B %Y, %X", + date: "%d.%m.%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], // unused + days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], + shortDays: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], + months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], + shortMonths: ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-CA.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-CA.js new file mode 100644 index 000000000..64853cfe0 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-CA.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_enCA = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [3], + currency: ["$", ""], + dateTime: "%a %b %e %X %Y", + date: "%Y-%m-%d", + time: "%H:%M:%S", + periods: ["AM", "PM"], + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-GB.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-GB.js new file mode 100644 index 000000000..10414bbd7 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-GB.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_enGB = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [3], + currency: ["£", ""], + dateTime: "%a %e %b %X %Y", + date: "%d/%m/%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-US.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-US.js new file mode 100644 index 000000000..4fa8547bf --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/en-US.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_enUS = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [3], + currency: ["$", ""], + dateTime: "%a %b %e %X %Y", + date: "%m/%d/%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/es-ES.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/es-ES.js new file mode 100644 index 000000000..839b2a69a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/es-ES.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_esES = d3.locale({ + decimal: ",", + thousands: ".", + grouping: [3], + currency: ["", " €"], + dateTime: "%A, %e de %B de %Y, %X", + date: "%d/%m/%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], + days: ["domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"], + shortDays: ["dom", "lun", "mar", "mié", "jue", "vie", "sáb"], + months: ["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"], + shortMonths: ["ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fi-FI.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fi-FI.js new file mode 100644 index 000000000..05e5eeb98 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fi-FI.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_fiFI = d3.locale({ + decimal: ",", + thousands: "\xa0", + grouping: [3], + currency: ["", "\xa0€"], + dateTime: "%A, %-d. %Bta %Y klo %X", + date: "%-d.%-m.%Y", + time: "%H:%M:%S", + periods: ["a.m.", "p.m."], + days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"], + shortDays: ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"], + months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"], + shortMonths: ["Tammi", "Helmi", "Maalis", "Huhti", "Touko", "Kesä", "Heinä", "Elo", "Syys", "Loka", "Marras", "Joulu"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fr-CA.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fr-CA.js new file mode 100644 index 000000000..a18c39f9a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fr-CA.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_frCA = d3.locale({ + decimal: ",", + thousands: "\xa0", + grouping: [3], + currency: ["", "$"], + dateTime: "%a %e %b %Y %X", + date: "%Y-%m-%d", + time: "%H:%M:%S", + periods: ["", ""], + days: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"], + shortDays: ["dim", "lun", "mar", "mer", "jeu", "ven", "sam"], + months: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"], + shortMonths: ["jan", "fév", "mar", "avr", "mai", "jui", "jul", "aoû", "sep", "oct", "nov", "déc"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fr-FR.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fr-FR.js new file mode 100644 index 000000000..1afd40085 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/fr-FR.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_frFR = d3.locale({ + decimal: ",", + thousands: ".", + grouping: [3], + currency: ["", " €"], + dateTime: "%A, le %e %B %Y, %X", + date: "%d/%m/%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], // unused + days: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"], + shortDays: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."], + months: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"], + shortMonths: ["janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/he-IL.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/he-IL.js new file mode 100644 index 000000000..c840cc843 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/he-IL.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_heIL = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [3], + currency: ["₪", ""], + dateTime: "%A, %e ב%B %Y %X", + date: "%d.%m.%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], + days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"], + shortDays: ["א׳", "ב׳", "ג׳", "ד׳", "ה׳", "ו׳", "ש׳"], + months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], + shortMonths: ["ינו׳", "פבר׳", "מרץ", "אפר׳", "מאי", "יוני", "יולי", "אוג׳", "ספט׳", "אוק׳", "נוב׳", "דצמ׳"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/hu-HU.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/hu-HU.js new file mode 100644 index 000000000..4bfff7227 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/hu-HU.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_huHU = d3.locale({ + decimal: ",", + thousands: "\xa0", + grouping: [3], + currency: ["", "\xa0Ft"], + dateTime: "%Y. %B %-e., %A %X", + date: "%Y. %m. %d.", + time: "%H:%M:%S", + periods: ["de.", "du."], // unused + days: ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"], + shortDays: ["V", "H", "K", "Sze", "Cs", "P", "Szo"], + months: ["január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"], + shortMonths: ["jan.", "feb.", "már.", "ápr.", "máj.", "jún.", "júl.", "aug.", "szept.", "okt.", "nov.", "dec."] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/it-IT.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/it-IT.js new file mode 100644 index 000000000..aec9202ef --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/it-IT.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_itIT = d3.locale({ + decimal: ",", + thousands: ".", + grouping: [3], + currency: ["€", ""], + dateTime: "%A %e %B %Y, %X", + date: "%d/%m/%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], // unused + days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"], + shortDays: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"], + months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], + shortMonths: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ja-JP.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ja-JP.js new file mode 100644 index 000000000..45efb48fb --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ja-JP.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_jaJP = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [3], + currency: ["", "円"], + dateTime: "%Y %b %e %a %X", + date: "%Y/%m/%d", + time: "%H:%M:%S", + periods: ["AM", "PM"], + days: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"], + shortDays: ["日", "月", "火", "水", "木", "金", "土"], + months: ["睦月", "如月", "弥生", "卯月", "皐月", "水無月", "文月", "葉月", "長月", "神無月", "霜月", "師走"], + shortMonths: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"] +}); \ No newline at end of file diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ko-KR.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ko-KR.js new file mode 100644 index 000000000..3638bb3fa --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ko-KR.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_koKR = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [3], + currency: ["₩", ""], + dateTime: "%Y/%m/%d %a %X", + date: "%Y/%m/%d", + time: "%H:%M:%S", + periods: ["오전", "오후"], + days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"], + shortDays: ["일", "월", "화", "수", "목", "금", "토"], + months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], + shortMonths: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/locale.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/locale.js new file mode 100644 index 000000000..b3b9950e2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/locale.js @@ -0,0 +1,9 @@ +import "number-format"; +import "time-format"; + +d3.locale = function(locale) { + return { + numberFormat: d3_locale_numberFormat(locale), + timeFormat: d3_locale_timeFormat(locale) + }; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/mk-MK.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/mk-MK.js new file mode 100644 index 000000000..7b618c441 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/mk-MK.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_mkMK = d3.locale({ + decimal: ",", + thousands: ".", + grouping: [3], + currency: ["", " ден."], + dateTime: "%A, %e %B %Y г. %X", + date: "%d.%m.%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], + days: ["недела", "понеделник", "вторник", "среда", "четврток", "петок", "сабота"], + shortDays: ["нед", "пон", "вто", "сре", "чет", "пет", "саб"], + months: ["јануари", "февруари", "март", "април", "мај", "јуни", "јули", "август", "септември", "октомври", "ноември", "декември"], + shortMonths: ["јан", "фев", "мар", "апр", "мај", "јун", "јул", "авг", "сеп", "окт", "ное", "дек"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/nl-NL.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/nl-NL.js new file mode 100644 index 000000000..667f92475 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/nl-NL.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_nlNL = d3.locale({ + decimal: ",", + thousands: ".", + grouping: [3], + currency: ["€ ", ""], + dateTime: "%a %e %B %Y %T", + date: "%d-%m-%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], // unused + days: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"], + shortDays: ["zo", "ma", "di", "wo", "do", "vr", "za"], + months: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"], + shortMonths: ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/number-format.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/number-format.js new file mode 100644 index 000000000..e62f7b4e8 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/number-format.js @@ -0,0 +1,155 @@ +import "../arrays/map"; +import "../core/identity"; +import "../format/formatPrefix"; +import "../format/precision"; +import "../format/round"; + +function d3_locale_numberFormat(locale) { + var locale_decimal = locale.decimal, + locale_thousands = locale.thousands, + locale_grouping = locale.grouping, + locale_currency = locale.currency, + formatGroup = locale_grouping && locale_thousands ? function(value, width) { + var i = value.length, + t = [], + j = 0, + g = locale_grouping[0], + length = 0; + while (i > 0 && g > 0) { + if (length + g + 1 > width) g = Math.max(1, width - length); + t.push(value.substring(i -= g, i + g)); + if ((length += g + 1) > width) break; + g = locale_grouping[j = (j + 1) % locale_grouping.length]; + } + return t.reverse().join(locale_thousands); + } : d3_identity; + + return function(specifier) { + var match = d3_format_re.exec(specifier), + fill = match[1] || " ", + align = match[2] || ">", + sign = match[3] || "-", + symbol = match[4] || "", + zfill = match[5], + width = +match[6], + comma = match[7], + precision = match[8], + type = match[9], + scale = 1, + prefix = "", + suffix = "", + integer = false, + exponent = true; + + if (precision) precision = +precision.substring(1); + + if (zfill || fill === "0" && align === "=") { + zfill = fill = "0"; + align = "="; + } + + switch (type) { + case "n": comma = true; type = "g"; break; + case "%": scale = 100; suffix = "%"; type = "f"; break; + case "p": scale = 100; suffix = "%"; type = "r"; break; + case "b": + case "o": + case "x": + case "X": if (symbol === "#") prefix = "0" + type.toLowerCase(); + case "c": exponent = false; + case "d": integer = true; precision = 0; break; + case "s": scale = -1; type = "r"; break; + } + + if (symbol === "$") prefix = locale_currency[0], suffix = locale_currency[1]; + + // If no precision is specified for r, fallback to general notation. + if (type == "r" && !precision) type = "g"; + + // Ensure that the requested precision is in the supported range. + if (precision != null) { + if (type == "g") precision = Math.max(1, Math.min(21, precision)); + else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision)); + } + + type = d3_format_types.get(type) || d3_format_typeDefault; + + var zcomma = zfill && comma; + + return function(value) { + var fullSuffix = suffix; + + // Return the empty string for floats formatted as ints. + if (integer && (value % 1)) return ""; + + // Convert negative to positive, and record the sign prefix. + var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign === "-" ? "" : sign; + + // Apply the scale, computing it from the value's exponent for si format. + // Preserve the existing suffix, if any, such as the currency symbol. + if (scale < 0) { + var unit = d3.formatPrefix(value, precision); + value = unit.scale(value); + fullSuffix = unit.symbol + suffix; + } else { + value *= scale; + } + + // Convert to the desired precision. + value = type(value, precision); + + // Break the value into the integer part (before) and decimal part (after). + var i = value.lastIndexOf("."), + before, + after; + if (i < 0) { + // If there is no decimal, break on "e" where appropriate. + var j = exponent ? value.lastIndexOf("e") : -1; + if (j < 0) before = value, after = ""; + else before = value.substring(0, j), after = value.substring(j); + } else { + before = value.substring(0, i); + after = locale_decimal + value.substring(i + 1); + } + + // If the fill character is not "0", grouping is applied before padding. + if (!zfill && comma) before = formatGroup(before, Infinity); + + var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), + padding = length < width ? new Array(length = width - length + 1).join(fill) : ""; + + // If the fill character is "0", grouping is applied after padding. + if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity); + + // Apply prefix. + negative += prefix; + + // Rejoin integer and decimal parts. + value = before + after; + + return (align === "<" ? negative + value + padding + : align === ">" ? padding + negative + value + : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) + : negative + (zcomma ? value : padding + value)) + fullSuffix; + }; + }; +} + +// [[fill]align][sign][symbol][0][width][,][.precision][type] +var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i; + +var d3_format_types = d3.map({ + b: function(x) { return x.toString(2); }, + c: function(x) { return String.fromCharCode(x); }, + o: function(x) { return x.toString(8); }, + x: function(x) { return x.toString(16); }, + X: function(x) { return x.toString(16).toUpperCase(); }, + g: function(x, p) { return x.toPrecision(p); }, + e: function(x, p) { return x.toExponential(p); }, + f: function(x, p) { return x.toFixed(p); }, + r: function(x, p) { return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p)))); } +}); + +function d3_format_typeDefault(x) { + return x + ""; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/pl-PL.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/pl-PL.js new file mode 100644 index 000000000..4f6b5876f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/pl-PL.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_plPL = d3.locale({ + decimal: ",", + thousands: ".", + grouping: [3], + currency: ["", "zł"], + dateTime: "%A, %e %B %Y, %X", + date: "%d/%m/%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], // unused + days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"], + shortDays: ["Niedz.", "Pon.", "Wt.", "Śr.", "Czw.", "Pt.", "Sob."], + months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], + shortMonths: ["Stycz.", "Luty", "Marz.", "Kwie.", "Maj", "Czerw.", "Lipc.", "Sierp.", "Wrz.", "Paźdz.", "Listop.", "Grudz."]/* In Polish language abbraviated months are not commonly used so there is a dispute about the proper abbraviations. */ +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/pt-BR.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/pt-BR.js new file mode 100644 index 000000000..e80a3af30 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/pt-BR.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_ptBR = d3.locale({ + decimal: ',', + thousands: '.', + grouping: [3], + currency: ['R$', ''], + dateTime: '%A, %e de %B de %Y. %X', + date: '%d/%m/%Y', + time: '%H:%M:%S', + periods: ['AM', 'PM'], + days: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'], + shortDays: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'], + months: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'], + shortMonths: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ru-RU.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ru-RU.js new file mode 100644 index 000000000..2d3896257 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/ru-RU.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_ruRU = d3.locale({ + decimal: ",", + thousands: "\xa0", + grouping: [3], + currency: ["", " руб."], + dateTime: "%A, %e %B %Y г. %X", + date: "%d.%m.%Y", + time: "%H:%M:%S", + periods: ["AM", "PM"], + days: ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"], + shortDays: ["вс", "пн", "вт", "ср", "чт", "пт", "сб"], + months: ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"], + shortMonths: ["янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/sv-SE.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/sv-SE.js new file mode 100644 index 000000000..b83dfbea0 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/sv-SE.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_svSE = d3.locale({ + decimal: ",", + thousands: "\xa0", + grouping: [3], + currency: ["", "SEK"], + dateTime: "%A den %d %B %Y %X", + date: "%Y-%m-%d", + time: "%H:%M:%S", + periods: ["fm", "em"], + days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"], + shortDays: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"], + months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], + shortMonths: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/time-format.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/time-format.js new file mode 100644 index 000000000..ccff6f198 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/time-format.js @@ -0,0 +1,370 @@ +import "../arrays/map"; +import "../format/requote"; +import "../math/abs"; +import "../time/day"; +import "../time/time"; +import "../time/week"; +import "../time/interval"; + +function d3_locale_timeFormat(locale) { + var locale_dateTime = locale.dateTime, + locale_date = locale.date, + locale_time = locale.time, + locale_periods = locale.periods, + locale_days = locale.days, + locale_shortDays = locale.shortDays, + locale_months = locale.months, + locale_shortMonths = locale.shortMonths; + + function d3_time_format(template) { + var n = template.length; + + function format(date) { + var string = [], + i = -1, + j = 0, + c, + p, + f; + while (++i < n) { + if (template.charCodeAt(i) === 37) { + string.push(template.slice(j, i)); + if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i); + if (f = d3_time_formats[c]) c = f(date, p == null ? (c === "e" ? " " : "0") : p); + string.push(c); + j = i + 1; + } + } + string.push(template.slice(j, i)); + return string.join(""); + } + + format.parse = function(string) { + var d = {y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null}, + i = d3_time_parse(d, template, string, 0); + if (i != string.length) return null; + + // The am-pm flag is 0 for AM, and 1 for PM. + if ("p" in d) d.H = d.H % 12 + d.p * 12; + + // If a time zone is specified, it is always relative to UTC; + // we need to use d3_date_utc if we aren’t already. + var localZ = d.Z != null && d3_date !== d3_date_utc, + date = new (localZ ? d3_date_utc : d3_date); + + // Set year, month, date. + if ("j" in d) date.setFullYear(d.y, 0, d.j); + else if ("W" in d || "U" in d) { + if (!("w" in d)) d.w = "W" in d ? 1 : 0; + date.setFullYear(d.y, 0, 1); + date.setFullYear(d.y, 0, "W" in d + ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 + : d.w + d.U * 7 - (date.getDay() + 6) % 7); + } else date.setFullYear(d.y, d.m, d.d); + + // Set hours, minutes, seconds and milliseconds. + date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L); + + return localZ ? date._ : date; + }; + + format.toString = function() { + return template; + }; + + return format; + } + + function d3_time_parse(date, template, string, j) { + var c, + p, + t, + i = 0, + n = template.length, + m = string.length; + while (i < n) { + if (j >= m) return -1; + c = template.charCodeAt(i++); + if (c === 37) { + t = template.charAt(i++); + p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t]; + if (!p || ((j = p(date, string, j)) < 0)) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; + } + + d3_time_format.utc = function(template) { + var local = d3_time_format(template); + + function format(date) { + try { + d3_date = d3_date_utc; + var utc = new d3_date(); + utc._ = date; + return local(utc); + } finally { + d3_date = Date; + } + } + + format.parse = function(string) { + try { + d3_date = d3_date_utc; + var date = local.parse(string); + return date && date._; + } finally { + d3_date = Date; + } + }; + + format.toString = local.toString; + + return format; + }; + + d3_time_format.multi = + d3_time_format.utc.multi = d3_time_formatMulti; + + var d3_time_periodLookup = d3.map(), + d3_time_dayRe = d3_time_formatRe(locale_days), + d3_time_dayLookup = d3_time_formatLookup(locale_days), + d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), + d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), + d3_time_monthRe = d3_time_formatRe(locale_months), + d3_time_monthLookup = d3_time_formatLookup(locale_months), + d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), + d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths); + + locale_periods.forEach(function(p, i) { + d3_time_periodLookup.set(p.toLowerCase(), i); + }); + + var d3_time_formats = { + a: function(d) { return locale_shortDays[d.getDay()]; }, + A: function(d) { return locale_days[d.getDay()]; }, + b: function(d) { return locale_shortMonths[d.getMonth()]; }, + B: function(d) { return locale_months[d.getMonth()]; }, + c: d3_time_format(locale_dateTime), + d: function(d, p) { return d3_time_formatPad(d.getDate(), p, 2); }, + e: function(d, p) { return d3_time_formatPad(d.getDate(), p, 2); }, + H: function(d, p) { return d3_time_formatPad(d.getHours(), p, 2); }, + I: function(d, p) { return d3_time_formatPad(d.getHours() % 12 || 12, p, 2); }, + j: function(d, p) { return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3); }, + L: function(d, p) { return d3_time_formatPad(d.getMilliseconds(), p, 3); }, + m: function(d, p) { return d3_time_formatPad(d.getMonth() + 1, p, 2); }, + M: function(d, p) { return d3_time_formatPad(d.getMinutes(), p, 2); }, + p: function(d) { return locale_periods[+(d.getHours() >= 12)]; }, + S: function(d, p) { return d3_time_formatPad(d.getSeconds(), p, 2); }, + U: function(d, p) { return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2); }, + w: function(d) { return d.getDay(); }, + W: function(d, p) { return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2); }, + x: d3_time_format(locale_date), + X: d3_time_format(locale_time), + y: function(d, p) { return d3_time_formatPad(d.getFullYear() % 100, p, 2); }, + Y: function(d, p) { return d3_time_formatPad(d.getFullYear() % 10000, p, 4); }, + Z: d3_time_zone, + "%": function() { return "%"; } + }; + + var d3_time_parsers = { + a: d3_time_parseWeekdayAbbrev, + A: d3_time_parseWeekday, + b: d3_time_parseMonthAbbrev, + B: d3_time_parseMonth, + c: d3_time_parseLocaleFull, + d: d3_time_parseDay, + e: d3_time_parseDay, + H: d3_time_parseHour24, + I: d3_time_parseHour24, + j: d3_time_parseDayOfYear, + L: d3_time_parseMilliseconds, + m: d3_time_parseMonthNumber, + M: d3_time_parseMinutes, + p: d3_time_parseAmPm, + S: d3_time_parseSeconds, + U: d3_time_parseWeekNumberSunday, + w: d3_time_parseWeekdayNumber, + W: d3_time_parseWeekNumberMonday, + x: d3_time_parseLocaleDate, + X: d3_time_parseLocaleTime, + y: d3_time_parseYear, + Y: d3_time_parseFullYear, + Z: d3_time_parseZone, + "%": d3_time_parseLiteralPercent + }; + + function d3_time_parseWeekdayAbbrev(date, string, i) { + d3_time_dayAbbrevRe.lastIndex = 0; + var n = d3_time_dayAbbrevRe.exec(string.slice(i)); + return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function d3_time_parseWeekday(date, string, i) { + d3_time_dayRe.lastIndex = 0; + var n = d3_time_dayRe.exec(string.slice(i)); + return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function d3_time_parseMonthAbbrev(date, string, i) { + d3_time_monthAbbrevRe.lastIndex = 0; + var n = d3_time_monthAbbrevRe.exec(string.slice(i)); + return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function d3_time_parseMonth(date, string, i) { + d3_time_monthRe.lastIndex = 0; + var n = d3_time_monthRe.exec(string.slice(i)); + return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function d3_time_parseLocaleFull(date, string, i) { + return d3_time_parse(date, d3_time_formats.c.toString(), string, i); + } + + function d3_time_parseLocaleDate(date, string, i) { + return d3_time_parse(date, d3_time_formats.x.toString(), string, i); + } + + function d3_time_parseLocaleTime(date, string, i) { + return d3_time_parse(date, d3_time_formats.X.toString(), string, i); + } + + function d3_time_parseAmPm(date, string, i) { + var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase()); + return n == null ? -1 : (date.p = n, i); + } + + return d3_time_format; +} + +var d3_time_formatPads = {"-": "", "_": " ", "0": "0"}, + d3_time_numberRe = /^\s*\d+/, // note: ignores next directive + d3_time_percentRe = /^%/; + +function d3_time_formatPad(value, fill, width) { + var sign = value < 0 ? "-" : "", + string = (sign ? -value : value) + "", + length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); +} + +function d3_time_formatRe(names) { + return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i"); +} + +function d3_time_formatLookup(names) { + var map = new d3_Map, i = -1, n = names.length; + while (++i < n) map.set(names[i].toLowerCase(), i); + return map; +} + +function d3_time_parseWeekdayNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 1)); + return n ? (date.w = +n[0], i + n[0].length) : -1; +} + +function d3_time_parseWeekNumberSunday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i)); + return n ? (date.U = +n[0], i + n[0].length) : -1; +} + +function d3_time_parseWeekNumberMonday(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i)); + return n ? (date.W = +n[0], i + n[0].length) : -1; +} + +function d3_time_parseFullYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 4)); + return n ? (date.y = +n[0], i + n[0].length) : -1; +} + +function d3_time_parseYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1; +} + +function d3_time_parseZone(date, string, i) { + return /^[+-]\d{4}$/.test(string = string.slice(i, i + 5)) + ? (date.Z = -string, i + 5) // sign differs from getTimezoneOffset! + : -1; +} + +function d3_time_expandYear(d) { + return d + (d > 68 ? 1900 : 2000); +} + +function d3_time_parseMonthNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.m = n[0] - 1, i + n[0].length) : -1; +} + +function d3_time_parseDay(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.d = +n[0], i + n[0].length) : -1; +} + +function d3_time_parseDayOfYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 3)); + return n ? (date.j = +n[0], i + n[0].length) : -1; +} + +// Note: we don't validate that the hour is in the range [0,23] or [1,12]. +function d3_time_parseHour24(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.H = +n[0], i + n[0].length) : -1; +} + +function d3_time_parseMinutes(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.M = +n[0], i + n[0].length) : -1; +} + +function d3_time_parseSeconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); + return n ? (date.S = +n[0], i + n[0].length) : -1; +} + +function d3_time_parseMilliseconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.slice(i, i + 3)); + return n ? (date.L = +n[0], i + n[0].length) : -1; +} + +// TODO table of time zone offset names? +function d3_time_zone(d) { + var z = d.getTimezoneOffset(), + zs = z > 0 ? "-" : "+", + zh = abs(z) / 60 | 0, + zm = abs(z) % 60; + return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2); +} + +function d3_time_parseLiteralPercent(date, string, i) { + d3_time_percentRe.lastIndex = 0; + var n = d3_time_percentRe.exec(string.slice(i, i + 1)); + return n ? i + n[0].length : -1; +} + +function d3_time_formatMulti(formats) { + var n = formats.length, i = -1; + while (++i < n) formats[i][0] = this(formats[i][0]); + return function(date) { + var i = 0, f = formats[i]; + while (!f[1](date)) f = formats[++i]; + return f[0](date); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/time-scale.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/time-scale.js new file mode 100644 index 000000000..e69de29bb diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/zh-CN.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/zh-CN.js new file mode 100644 index 000000000..417a5ff6d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/locale/zh-CN.js @@ -0,0 +1,16 @@ +import "locale"; + +var d3_locale_zhCN = d3.locale({ + decimal: ".", + thousands: ",", + grouping: [3], + currency: ["¥", ""], + dateTime: "%x %A %X", + date: "%Y年%-m月%-d日", + time: "%H:%M:%S", + periods: ["上午", "下午"], + days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], + shortDays: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"], + months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + shortMonths: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"] +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/abs.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/abs.js new file mode 100644 index 000000000..6c078b921 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/abs.js @@ -0,0 +1 @@ +var abs = Math.abs; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/adder.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/adder.js new file mode 100644 index 000000000..08fa289ae --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/adder.js @@ -0,0 +1,34 @@ +// Adds floating point numbers with twice the normal precision. +// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and +// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3) +// 305–363 (1997). +// Code adapted from GeographicLib by Charles F. F. Karney, +// http://geographiclib.sourceforge.net/ +// See lib/geographiclib/LICENSE for details. + +function d3_adder() {} + +d3_adder.prototype = { + s: 0, // rounded value + t: 0, // exact error + add: function(y) { + d3_adderSum(y, this.t, d3_adderTemp); + d3_adderSum(d3_adderTemp.s, this.s, this); + if (this.s) this.t += d3_adderTemp.t; + else this.s = d3_adderTemp.t; + }, + reset: function() { + this.s = this.t = 0; + }, + valueOf: function() { + return this.s; + } +}; + +var d3_adderTemp = new d3_adder; + +function d3_adderSum(a, b, o) { + var x = o.s = a + b, // a + b + bv = x - a, av = x - bv; // b_virtual & a_virtual + o.t = (a - av) + (b - bv); // a_roundoff + b_roundoff +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/index.js new file mode 100644 index 000000000..20f6966e2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/index.js @@ -0,0 +1,2 @@ +import "random"; +import "transform"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/number.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/number.js new file mode 100644 index 000000000..44ff3324f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/number.js @@ -0,0 +1,7 @@ +function d3_number(x) { + return x === null ? NaN : +x; +} + +function d3_numeric(x) { + return !isNaN(x); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/random.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/random.js new file mode 100644 index 000000000..d0c6ba07b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/random.js @@ -0,0 +1,34 @@ +d3.random = { + normal: function(µ, σ) { + var n = arguments.length; + if (n < 2) σ = 1; + if (n < 1) µ = 0; + return function() { + var x, y, r; + do { + x = Math.random() * 2 - 1; + y = Math.random() * 2 - 1; + r = x * x + y * y; + } while (!r || r > 1); + return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r); + }; + }, + logNormal: function() { + var random = d3.random.normal.apply(d3, arguments); + return function() { + return Math.exp(random()); + }; + }, + bates: function(m) { + var random = d3.random.irwinHall(m); + return function() { + return random() / m; + }; + }, + irwinHall: function(m) { + return function() { + for (var s = 0, j = 0; j < m; j++) s += Math.random(); + return s; + }; + } +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/transform.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/transform.js new file mode 100644 index 000000000..8a5e6cde5 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/transform.js @@ -0,0 +1,64 @@ +import "../core/document"; +import "../core/ns"; + +d3.transform = function(string) { + var g = d3_document.createElementNS(d3.ns.prefix.svg, "g"); + return (d3.transform = function(string) { + if (string != null) { + g.setAttribute("transform", string); + var t = g.transform.baseVal.consolidate(); + } + return new d3_transform(t ? t.matrix : d3_transformIdentity); + })(string); +}; + +// Compute x-scale and normalize the first row. +// Compute shear and make second row orthogonal to first. +// Compute y-scale and normalize the second row. +// Finally, compute the rotation. +function d3_transform(m) { + var r0 = [m.a, m.b], + r1 = [m.c, m.d], + kx = d3_transformNormalize(r0), + kz = d3_transformDot(r0, r1), + ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0; + if (r0[0] * r1[1] < r1[0] * r0[1]) { + r0[0] *= -1; + r0[1] *= -1; + kx *= -1; + kz *= -1; + } + this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees; + this.translate = [m.e, m.f]; + this.scale = [kx, ky]; + this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0; +}; + +d3_transform.prototype.toString = function() { + return "translate(" + this.translate + + ")rotate(" + this.rotate + + ")skewX(" + this.skew + + ")scale(" + this.scale + + ")"; +}; + +function d3_transformDot(a, b) { + return a[0] * b[0] + a[1] * b[1]; +} + +function d3_transformNormalize(a) { + var k = Math.sqrt(d3_transformDot(a, a)); + if (k) { + a[0] /= k; + a[1] /= k; + } + return k; +} + +function d3_transformCombine(a, b, k) { + a[0] += k * b[0]; + a[1] += k * b[1]; + return a; +} + +var d3_transformIdentity = {a: 1, b: 0, c: 0, d: 1, e: 0, f: 0}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/trigonometry.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/trigonometry.js new file mode 100644 index 000000000..d7099a4e7 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/math/trigonometry.js @@ -0,0 +1,44 @@ +var ε = 1e-6, + ε2 = ε * ε, + π = Math.PI, + τ = 2 * π, + τε = τ - ε, + halfπ = π / 2, + d3_radians = π / 180, + d3_degrees = 180 / π; + +function d3_sgn(x) { + return x > 0 ? 1 : x < 0 ? -1 : 0; +} + +// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of +// the 3D cross product in a quadrant I Cartesian coordinate system (+x is +// right, +y is up). Returns a positive value if ABC is counter-clockwise, +// negative if clockwise, and zero if the points are collinear. +function d3_cross2d(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); +} + +function d3_acos(x) { + return x > 1 ? 0 : x < -1 ? π : Math.acos(x); +} + +function d3_asin(x) { + return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x); +} + +function d3_sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; +} + +function d3_cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; +} + +function d3_tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); +} + +function d3_haversin(x) { + return (x = Math.sin(x / 2)) * x; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/bilinear.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/bilinear.js new file mode 100644 index 000000000..ff014777c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/bilinear.js @@ -0,0 +1,7 @@ +function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { + var u = uninterpolate(domain[0], domain[1]), + i = interpolate(range[0], range[1]); + return function(x) { + return i(u(x)); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/category.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/category.js new file mode 100644 index 000000000..3324917c6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/category.js @@ -0,0 +1,58 @@ +import "../color/rgb"; +import "ordinal"; +import "scale"; + +/* + * This product includes color specifications and designs developed by Cynthia + * Brewer (http://colorbrewer.org/). See lib/colorbrewer for more information. + */ + +d3.scale.category10 = function() { + return d3.scale.ordinal().range(d3_category10); +}; + +d3.scale.category20 = function() { + return d3.scale.ordinal().range(d3_category20); +}; + +d3.scale.category20b = function() { + return d3.scale.ordinal().range(d3_category20b); +}; + +d3.scale.category20c = function() { + return d3.scale.ordinal().range(d3_category20c); +}; + +var d3_category10 = [ + 0x1f77b4, 0xff7f0e, 0x2ca02c, 0xd62728, 0x9467bd, + 0x8c564b, 0xe377c2, 0x7f7f7f, 0xbcbd22, 0x17becf +].map(d3_rgbString); + +var d3_category20 = [ + 0x1f77b4, 0xaec7e8, + 0xff7f0e, 0xffbb78, + 0x2ca02c, 0x98df8a, + 0xd62728, 0xff9896, + 0x9467bd, 0xc5b0d5, + 0x8c564b, 0xc49c94, + 0xe377c2, 0xf7b6d2, + 0x7f7f7f, 0xc7c7c7, + 0xbcbd22, 0xdbdb8d, + 0x17becf, 0x9edae5 +].map(d3_rgbString); + +var d3_category20b = [ + 0x393b79, 0x5254a3, 0x6b6ecf, 0x9c9ede, + 0x637939, 0x8ca252, 0xb5cf6b, 0xcedb9c, + 0x8c6d31, 0xbd9e39, 0xe7ba52, 0xe7cb94, + 0x843c39, 0xad494a, 0xd6616b, 0xe7969c, + 0x7b4173, 0xa55194, 0xce6dbd, 0xde9ed6 +].map(d3_rgbString); + +var d3_category20c = [ + 0x3182bd, 0x6baed6, 0x9ecae1, 0xc6dbef, + 0xe6550d, 0xfd8d3c, 0xfdae6b, 0xfdd0a2, + 0x31a354, 0x74c476, 0xa1d99b, 0xc7e9c0, + 0x756bb1, 0x9e9ac8, 0xbcbddc, 0xdadaeb, + 0x636363, 0x969696, 0xbdbdbd, 0xd9d9d9 +].map(d3_rgbString); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/identity.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/identity.js new file mode 100644 index 000000000..0cc780959 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/identity.js @@ -0,0 +1,33 @@ +import "linear"; +import "scale"; + +d3.scale.identity = function() { + return d3_scale_identity([0, 1]); +}; + +function d3_scale_identity(domain) { + + function identity(x) { return +x; } + + identity.invert = identity; + + identity.domain = identity.range = function(x) { + if (!arguments.length) return domain; + domain = x.map(identity); + return identity; + }; + + identity.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + + identity.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + + identity.copy = function() { + return d3_scale_identity(domain); + }; + + return identity; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/index.js new file mode 100644 index 000000000..271ea8d71 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/index.js @@ -0,0 +1,11 @@ +import "scale"; +import "linear"; +import "log"; +import "pow"; +import "sqrt"; +import "ordinal"; +import "category"; +import "quantile"; +import "quantize"; +import "threshold"; +import "identity"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/linear.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/linear.js new file mode 100644 index 000000000..0dc1426fa --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/linear.js @@ -0,0 +1,160 @@ +import "../arrays/range"; +import "../core/rebind"; +import "../interpolate/interpolate"; +import "../interpolate/round"; +import "../interpolate/uninterpolate"; +import "../format/format"; +import "../math/abs"; +import "bilinear"; +import "nice"; +import "polylinear"; +import "scale"; + +d3.scale.linear = function() { + return d3_scale_linear([0, 1], [0, 1], d3_interpolate, false); +}; + +function d3_scale_linear(domain, range, interpolate, clamp) { + var output, + input; + + function rescale() { + var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, + uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; + output = linear(domain, range, uninterpolate, interpolate); + input = linear(range, domain, uninterpolate, d3_interpolate); + return scale; + } + + function scale(x) { + return output(x); + } + + // Note: requires range is coercible to number! + scale.invert = function(y) { + return input(y); + }; + + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(Number); + return rescale(); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + + scale.rangeRound = function(x) { + return scale.range(x).interpolate(d3_interpolateRound); + }; + + scale.clamp = function(x) { + if (!arguments.length) return clamp; + clamp = x; + return rescale(); + }; + + scale.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x; + return rescale(); + }; + + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + + scale.nice = function(m) { + d3_scale_linearNice(domain, m); + return rescale(); + }; + + scale.copy = function() { + return d3_scale_linear(domain, range, interpolate, clamp); + }; + + return rescale(); +} + +function d3_scale_linearRebind(scale, linear) { + return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); +} + +function d3_scale_linearNice(domain, m) { + d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + return domain; +} + +function d3_scale_linearTickRange(domain, m) { + if (m == null) m = 10; + + var extent = d3_scaleExtent(domain), + span = extent[1] - extent[0], + step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), + err = m / span * step; + + // Filter ticks to get closer to the desired count. + if (err <= 0.15) step *= 10; + else if (err <= 0.35) step *= 5; + else if (err <= 0.75) step *= 2; + + // Round start and stop values to step interval. + extent[0] = Math.ceil(extent[0] / step) * step; + extent[1] = Math.floor(extent[1] / step) * step + step * 0.5; // inclusive + extent[2] = step; + return extent; +} + +function d3_scale_linearTicks(domain, m) { + return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); +} + +function d3_scale_linearTickFormat(domain, m, format) { + var range = d3_scale_linearTickRange(domain, m); + if (format) { + var match = d3_format_re.exec(format); + match.shift(); + if (match[8] === "s") { + var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1]))); + if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2])); + match[8] = "f"; + format = d3.format(match.join("")); + return function(d) { + return format(prefix.scale(d)) + prefix.symbol; + }; + } + if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range); + format = match.join(""); + } else { + format = ",." + d3_scale_linearPrecision(range[2]) + "f"; + } + return d3.format(format); +} + +var d3_scale_linearFormatSignificant = {s: 1, g: 1, p: 1, r: 1, e: 1}; + +// Returns the number of significant digits after the decimal point. +function d3_scale_linearPrecision(value) { + return -Math.floor(Math.log(value) / Math.LN10 + 0.01); +} + +// For some format types, the precision specifies the number of significant +// digits; for others, it specifies the number of digits after the decimal +// point. For significant format types, the desired precision equals one plus +// the difference between the decimal precision of the range’s maximum absolute +// value and the tick step’s decimal precision. For format "e", the digit before +// the decimal point counts as one. +function d3_scale_linearFormatPrecision(type, range) { + var p = d3_scale_linearPrecision(range[2]); + return type in d3_scale_linearFormatSignificant + ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") + : p - (type === "%") * 2; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/log.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/log.js new file mode 100644 index 000000000..fe264fa41 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/log.js @@ -0,0 +1,92 @@ +import "../format/format"; +import "linear"; +import "nice"; +import "scale"; + +d3.scale.log = function() { + return d3_scale_log(d3.scale.linear().domain([0, 1]), 10, true, [1, 10]); +}; + +function d3_scale_log(linear, base, positive, domain) { + + function log(x) { + return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base); + } + + function pow(x) { + return positive ? Math.pow(base, x) : -Math.pow(base, -x); + } + + function scale(x) { + return linear(log(x)); + } + + scale.invert = function(x) { + return pow(linear.invert(x)); + }; + + scale.domain = function(x) { + if (!arguments.length) return domain; + positive = x[0] >= 0; + linear.domain((domain = x.map(Number)).map(log)); + return scale; + }; + + scale.base = function(_) { + if (!arguments.length) return base; + base = +_; + linear.domain(domain.map(log)); + return scale; + }; + + scale.nice = function() { + var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative); + linear.domain(niced); // do not modify the linear scale’s domain in-place! + domain = niced.map(pow); + return scale; + }; + + scale.ticks = function() { + var extent = d3_scaleExtent(domain), + ticks = [], + u = extent[0], + v = extent[1], + i = Math.floor(log(u)), + j = Math.ceil(log(v)), + n = base % 1 ? 2 : base; + if (isFinite(j - i)) { + if (positive) { + for (; i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k); + ticks.push(pow(i)); + } else { + ticks.push(pow(i)); + for (; i++ < j;) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k); + } + for (i = 0; ticks[i] < u; i++) {} // strip small values + for (j = ticks.length; ticks[j - 1] > v; j--) {} // strip big values + ticks = ticks.slice(i, j); + } + return ticks; + }; + + scale.tickFormat = function(n, format) { + if (!arguments.length) return d3_scale_logFormat; + if (arguments.length < 2) format = d3_scale_logFormat; + else if (typeof format !== "function") format = d3.format(format); + var k = Math.max(1, base * n / scale.ticks().length); + return function(d) { + var i = d / pow(Math.round(log(d))); + if (i * base < base - 0.5) i *= base; + return i <= k ? format(d) : ""; + }; + }; + + scale.copy = function() { + return d3_scale_log(linear.copy(), base, positive, domain); + }; + + return d3_scale_linearRebind(scale, linear); +} + +var d3_scale_logFormat = d3.format(".0e"), + d3_scale_logNiceNegative = {floor: function(x) { return -Math.ceil(-x); }, ceil: function(x) { return -Math.floor(-x); }}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/nice.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/nice.js new file mode 100644 index 000000000..7d534e975 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/nice.js @@ -0,0 +1,30 @@ +import "../core/identity"; + +function d3_scale_nice(domain, nice) { + var i0 = 0, + i1 = domain.length - 1, + x0 = domain[i0], + x1 = domain[i1], + dx; + + if (x1 < x0) { + dx = i0, i0 = i1, i1 = dx; + dx = x0, x0 = x1, x1 = dx; + } + + domain[i0] = nice.floor(x0); + domain[i1] = nice.ceil(x1); + return domain; +} + +function d3_scale_niceStep(step) { + return step ? { + floor: function(x) { return Math.floor(x / step) * step; }, + ceil: function(x) { return Math.ceil(x / step) * step; } + } : d3_scale_niceIdentity; +} + +var d3_scale_niceIdentity = { + floor: d3_identity, + ceil: d3_identity +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/ordinal.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/ordinal.js new file mode 100644 index 000000000..f065d5419 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/ordinal.js @@ -0,0 +1,102 @@ +import "../arrays/map"; +import "../arrays/range"; +import "scale"; + +d3.scale.ordinal = function() { + return d3_scale_ordinal([], {t: "range", a: [[]]}); +}; + +function d3_scale_ordinal(domain, ranger) { + var index, + range, + rangeBand; + + function scale(x) { + return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length]; + } + + function steps(start, step) { + return d3.range(domain.length).map(function(i) { return start + step * i; }); + } + + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = []; + index = new d3_Map; + var i = -1, n = x.length, xi; + while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi)); + return scale[ranger.t].apply(scale, ranger.a); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + rangeBand = 0; + ranger = {t: "range", a: arguments}; + return scale; + }; + + scale.rangePoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], + stop = x[1], + step = domain.length < 2 ? (start = (start + stop) / 2, 0) : (stop - start) / (domain.length - 1 + padding); + range = steps(start + step * padding / 2, step); + rangeBand = 0; + ranger = {t: "rangePoints", a: arguments}; + return scale; + }; + + scale.rangeRoundPoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], + stop = x[1], + step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), 0) : (stop - start) / (domain.length - 1 + padding) | 0; // bitwise floor for symmetry + range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step); + rangeBand = 0; + ranger = {t: "rangeRoundPoints", a: arguments}; + return scale; + }; + + scale.rangeBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], + start = x[reverse - 0], + stop = x[1 - reverse], + step = (stop - start) / (domain.length - padding + 2 * outerPadding); + range = steps(start + step * outerPadding, step); + if (reverse) range.reverse(); + rangeBand = step * (1 - padding); + ranger = {t: "rangeBands", a: arguments}; + return scale; + }; + + scale.rangeRoundBands = function(x, padding, outerPadding) { + if (arguments.length < 2) padding = 0; + if (arguments.length < 3) outerPadding = padding; + var reverse = x[1] < x[0], + start = x[reverse - 0], + stop = x[1 - reverse], + step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)); + range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step); + if (reverse) range.reverse(); + rangeBand = Math.round(step * (1 - padding)); + ranger = {t: "rangeRoundBands", a: arguments}; + return scale; + }; + + scale.rangeBand = function() { + return rangeBand; + }; + + scale.rangeExtent = function() { + return d3_scaleExtent(ranger.a[0]); + }; + + scale.copy = function() { + return d3_scale_ordinal(domain, ranger); + }; + + return scale.domain(domain); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/polylinear.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/polylinear.js new file mode 100644 index 000000000..3d729d785 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/polylinear.js @@ -0,0 +1,24 @@ +import "../arrays/bisect"; + +function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { + var u = [], + i = [], + j = 0, + k = Math.min(domain.length, range.length) - 1; + + // Handle descending domains. + if (domain[k] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + + while (++j <= k) { + u.push(uninterpolate(domain[j - 1], domain[j])); + i.push(interpolate(range[j - 1], range[j])); + } + + return function(x) { + var j = d3.bisect(domain, x, 1, k) - 1; + return i[j](u[j](x)); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/pow.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/pow.js new file mode 100644 index 000000000..9554fb8f5 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/pow.js @@ -0,0 +1,57 @@ +import "linear"; +import "scale"; + +d3.scale.pow = function() { + return d3_scale_pow(d3.scale.linear(), 1, [0, 1]); +}; + +function d3_scale_pow(linear, exponent, domain) { + var powp = d3_scale_powPow(exponent), + powb = d3_scale_powPow(1 / exponent); + + function scale(x) { + return linear(powp(x)); + } + + scale.invert = function(x) { + return powb(linear.invert(x)); + }; + + scale.domain = function(x) { + if (!arguments.length) return domain; + linear.domain((domain = x.map(Number)).map(powp)); + return scale; + }; + + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + + scale.tickFormat = function(m, format) { + return d3_scale_linearTickFormat(domain, m, format); + }; + + scale.nice = function(m) { + return scale.domain(d3_scale_linearNice(domain, m)); + }; + + scale.exponent = function(x) { + if (!arguments.length) return exponent; + powp = d3_scale_powPow(exponent = x); + powb = d3_scale_powPow(1 / exponent); + linear.domain(domain.map(powp)); + return scale; + }; + + scale.copy = function() { + return d3_scale_pow(linear.copy(), exponent, domain); + }; + + return d3_scale_linearRebind(scale, linear); +} + +function d3_scale_powPow(e) { + return function(x) { + return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/quantile.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/quantile.js new file mode 100644 index 000000000..b092de28d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/quantile.js @@ -0,0 +1,55 @@ +import "../arrays/ascending"; +import "../arrays/bisect"; +import "../arrays/quantile"; +import "../math/number"; +import "scale"; + +d3.scale.quantile = function() { + return d3_scale_quantile([], []); +}; + +function d3_scale_quantile(domain, range) { + var thresholds; + + function rescale() { + var k = 0, + q = range.length; + thresholds = []; + while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); + return scale; + } + + function scale(x) { + if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)]; + } + + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending); + return rescale(); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + + scale.quantiles = function() { + return thresholds; + }; + + scale.invertExtent = function(y) { + y = range.indexOf(y); + return y < 0 ? [NaN, NaN] : [ + y > 0 ? thresholds[y - 1] : domain[0], + y < thresholds.length ? thresholds[y] : domain[domain.length - 1] + ]; + }; + + scale.copy = function() { + return d3_scale_quantile(domain, range); // copy on write! + }; + + return rescale(); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/quantize.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/quantize.js new file mode 100644 index 000000000..f3b656d93 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/quantize.js @@ -0,0 +1,44 @@ +import "scale"; + +d3.scale.quantize = function() { + return d3_scale_quantize(0, 1, [0, 1]); +}; + +function d3_scale_quantize(x0, x1, range) { + var kx, i; + + function scale(x) { + return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; + } + + function rescale() { + kx = range.length / (x1 - x0); + i = range.length - 1; + return scale; + } + + scale.domain = function(x) { + if (!arguments.length) return [x0, x1]; + x0 = +x[0]; + x1 = +x[x.length - 1]; + return rescale(); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + + scale.invertExtent = function(y) { + y = range.indexOf(y); + y = y < 0 ? NaN : y / kx + x0; + return [y, y + 1 / kx]; + }; + + scale.copy = function() { + return d3_scale_quantize(x0, x1, range); // copy on write + }; + + return rescale(); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/scale.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/scale.js new file mode 100644 index 000000000..b7952d440 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/scale.js @@ -0,0 +1,10 @@ +d3.scale = {}; + +function d3_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [start, stop] : [stop, start]; +} + +function d3_scaleRange(scale) { + return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range()); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/sqrt.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/sqrt.js new file mode 100644 index 000000000..f73f1752b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/sqrt.js @@ -0,0 +1,6 @@ +import "pow"; +import "scale"; + +d3.scale.sqrt = function() { + return d3.scale.pow().exponent(0.5); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/threshold.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/threshold.js new file mode 100644 index 000000000..470463eac --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/scale/threshold.js @@ -0,0 +1,36 @@ +import "../arrays/bisect"; +import "scale"; + +d3.scale.threshold = function() { + return d3_scale_threshold([0.5], [0, 1]); +}; + +function d3_scale_threshold(domain, range) { + + function scale(x) { + if (x <= x) return range[d3.bisect(domain, x)]; + } + + scale.domain = function(_) { + if (!arguments.length) return domain; + domain = _; + return scale; + }; + + scale.range = function(_) { + if (!arguments.length) return range; + range = _; + return scale; + }; + + scale.invertExtent = function(y) { + y = range.indexOf(y); + return [domain[y - 1], domain[y]]; + }; + + scale.copy = function() { + return d3_scale_threshold(domain, range); + }; + + return scale; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/append.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/append.js new file mode 100644 index 000000000..92ca7f877 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/append.js @@ -0,0 +1,28 @@ +import "../core/ns"; +import "selection"; + +d3_selectionPrototype.append = function(name) { + name = d3_selection_creator(name); + return this.select(function() { + return this.appendChild(name.apply(this, arguments)); + }); +}; + +function d3_selection_creator(name) { + + function create() { + var document = this.ownerDocument, + namespace = this.namespaceURI; + return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml + ? document.createElement(name) + : document.createElementNS(namespace, name); + } + + function createNS() { + return this.ownerDocument.createElementNS(name.space, name.local); + } + + return typeof name === "function" ? name + : (name = d3.ns.qualify(name)).local ? createNS + : create; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/attr.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/attr.js new file mode 100644 index 000000000..723199a4c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/attr.js @@ -0,0 +1,62 @@ +import "../core/ns"; +import "selection"; + +d3_selectionPrototype.attr = function(name, value) { + if (arguments.length < 2) { + + // For attr(string), return the attribute value for the first node. + if (typeof name === "string") { + var node = this.node(); + name = d3.ns.qualify(name); + return name.local + ? node.getAttributeNS(name.space, name.local) + : node.getAttribute(name); + } + + // For attr(object), the object specifies the names and values of the + // attributes to set or remove. The values may be functions that are + // evaluated for each element. + for (value in name) this.each(d3_selection_attr(value, name[value])); + return this; + } + + return this.each(d3_selection_attr(name, value)); +}; + +function d3_selection_attr(name, value) { + name = d3.ns.qualify(name); + + // For attr(string, null), remove the attribute with the specified name. + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + + // For attr(string, string), set the attribute with the specified name. + function attrConstant() { + this.setAttribute(name, value); + } + function attrConstantNS() { + this.setAttributeNS(name.space, name.local, value); + } + + // For attr(string, function), evaluate the function for each element, and set + // or remove the attribute as appropriate. + function attrFunction() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttribute(name); + else this.setAttribute(name, x); + } + function attrFunctionNS() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttributeNS(name.space, name.local); + else this.setAttributeNS(name.space, name.local, x); + } + + return value == null + ? (name.local ? attrNullNS : attrNull) : (typeof value === "function" + ? (name.local ? attrFunctionNS : attrFunction) + : (name.local ? attrConstantNS : attrConstant)); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/call.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/call.js new file mode 100644 index 000000000..3dfc3865b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/call.js @@ -0,0 +1,8 @@ +import "../core/array"; +import "selection"; + +d3_selectionPrototype.call = function(callback) { + var args = d3_array(arguments); + callback.apply(args[0] = this, args); + return this; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/classed.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/classed.js new file mode 100644 index 000000000..b477ed684 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/classed.js @@ -0,0 +1,76 @@ +import "../format/collapse"; +import "../format/requote"; +import "selection"; + +d3_selectionPrototype.classed = function(name, value) { + if (arguments.length < 2) { + + // For classed(string), return true only if the first node has the specified + // class or classes. Note that even if the browser supports DOMTokenList, it + // probably doesn't support it on SVG elements (which can be animated). + if (typeof name === "string") { + var node = this.node(), + n = (name = d3_selection_classes(name)).length, + i = -1; + if (value = node.classList) { + while (++i < n) if (!value.contains(name[i])) return false; + } else { + value = node.getAttribute("class"); + while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false; + } + return true; + } + + // For classed(object), the object specifies the names of classes to add or + // remove. The values may be functions that are evaluated for each element. + for (value in name) this.each(d3_selection_classed(value, name[value])); + return this; + } + + // Otherwise, both a name and a value are specified, and are handled as below. + return this.each(d3_selection_classed(name, value)); +}; + +function d3_selection_classedRe(name) { + return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g"); +} + +function d3_selection_classes(name) { + return (name + "").trim().split(/^|\s+/); +} + +// Multiple class names are allowed (e.g., "foo bar"). +function d3_selection_classed(name, value) { + name = d3_selection_classes(name).map(d3_selection_classedName); + var n = name.length; + + function classedConstant() { + var i = -1; + while (++i < n) name[i](this, value); + } + + // When the value is a function, the function is still evaluated only once per + // element even if there are multiple class names. + function classedFunction() { + var i = -1, x = value.apply(this, arguments); + while (++i < n) name[i](this, x); + } + + return typeof value === "function" + ? classedFunction + : classedConstant; +} + +function d3_selection_classedName(name) { + var re = d3_selection_classedRe(name); + return function(node, value) { + if (c = node.classList) return value ? c.add(name) : c.remove(name); + var c = node.getAttribute("class") || ""; + if (value) { + re.lastIndex = 0; + if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name)); + } else { + node.setAttribute("class", d3_collapse(c.replace(re, " "))); + } + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/data.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/data.js new file mode 100644 index 000000000..f31c867d2 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/data.js @@ -0,0 +1,117 @@ +import "../arrays/map"; +import "../arrays/set"; +import "selection"; + +d3_selectionPrototype.data = function(value, key) { + var i = -1, + n = this.length, + group, + node; + + // If no value is specified, return the first value. + if (!arguments.length) { + value = new Array(n = (group = this[0]).length); + while (++i < n) { + if (node = group[i]) { + value[i] = node.__data__; + } + } + return value; + } + + function bind(group, groupData) { + var i, + n = group.length, + m = groupData.length, + n0 = Math.min(n, m), + updateNodes = new Array(m), + enterNodes = new Array(m), + exitNodes = new Array(n), + node, + nodeData; + + if (key) { + var nodeByKeyValue = new d3_Map, + keyValues = new Array(n), + keyValue; + + for (i = -1; ++i < n;) { + if (node = group[i]) { + if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) { + exitNodes[i] = node; // duplicate selection key + } else { + nodeByKeyValue.set(keyValue, node); + } + keyValues[i] = keyValue; + } + } + + for (i = -1; ++i < m;) { + if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) { + enterNodes[i] = d3_selection_dataNode(nodeData); + } else if (node !== true) { // no duplicate data key + updateNodes[i] = node; + node.__data__ = nodeData; + } + nodeByKeyValue.set(keyValue, true); + } + + for (i = -1; ++i < n;) { + if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) { + exitNodes[i] = group[i]; + } + } + } else { + for (i = -1; ++i < n0;) { + node = group[i]; + nodeData = groupData[i]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + } + } + for (; i < m; ++i) { + enterNodes[i] = d3_selection_dataNode(groupData[i]); + } + for (; i < n; ++i) { + exitNodes[i] = group[i]; + } + } + + enterNodes.update + = updateNodes; + + enterNodes.parentNode + = updateNodes.parentNode + = exitNodes.parentNode + = group.parentNode; + + enter.push(enterNodes); + update.push(updateNodes); + exit.push(exitNodes); + } + + var enter = d3_selection_enter([]), + update = d3_selection([]), + exit = d3_selection([]); + + if (typeof value === "function") { + while (++i < n) { + bind(group = this[i], value.call(group, group.parentNode.__data__, i)); + } + } else { + while (++i < n) { + bind(group = this[i], value); + } + } + + update.enter = function() { return enter; }; + update.exit = function() { return exit; }; + return update; +}; + +function d3_selection_dataNode(data) { + return {__data__: data}; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/datum.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/datum.js new file mode 100644 index 000000000..5434de48c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/datum.js @@ -0,0 +1,7 @@ +import "selection"; + +d3_selectionPrototype.datum = function(value) { + return arguments.length + ? this.property("__data__", value) + : this.property("__data__"); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/each.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/each.js new file mode 100644 index 000000000..45b8603c6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/each.js @@ -0,0 +1,16 @@ +import "selection"; + +d3_selectionPrototype.each = function(callback) { + return d3_selection_each(this, function(node, i, j) { + callback.call(node, node.__data__, i, j); + }); +}; + +function d3_selection_each(groups, callback) { + for (var j = 0, m = groups.length; j < m; j++) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) { + if (node = group[i]) callback(node, i, j); + } + } + return groups; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/empty.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/empty.js new file mode 100644 index 000000000..6135c23fb --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/empty.js @@ -0,0 +1,5 @@ +import "selection"; + +d3_selectionPrototype.empty = function() { + return !this.node(); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter-insert.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter-insert.js new file mode 100644 index 000000000..f7d6c1502 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter-insert.js @@ -0,0 +1,20 @@ +import "selection"; +import "enter"; + +d3_selection_enterPrototype.insert = function(name, before) { + if (arguments.length < 2) before = d3_selection_enterInsertBefore(this); + return d3_selectionPrototype.insert.call(this, name, before); +}; + +function d3_selection_enterInsertBefore(enter) { + var i0, j0; + return function(d, i, j) { + var group = enter[j].update, + n = group.length, + node; + if (j != j0) j0 = j, i0 = 0; + if (i >= i0) i0 = i + 1; + while (!(node = group[i0]) && ++i0 < n); + return node; + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter-select.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter-select.js new file mode 100644 index 000000000..2764c6cee --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter-select.js @@ -0,0 +1,27 @@ +import "selection"; +import "enter"; + +d3_selection_enterPrototype.select = function(selector) { + var subgroups = [], + subgroup, + subnode, + upgroup, + group, + node; + + for (var j = -1, m = this.length; ++j < m;) { + upgroup = (group = this[j]).update; + subgroups.push(subgroup = []); + subgroup.parentNode = group.parentNode; + for (var i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j)); + subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + + return d3_selection(subgroups); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter.js new file mode 100644 index 000000000..2533582ef --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/enter.js @@ -0,0 +1,21 @@ +import "../core/subclass"; +import "selection"; + +function d3_selection_enter(selection) { + d3_subclass(selection, d3_selection_enterPrototype); + return selection; +} + +var d3_selection_enterPrototype = []; + +d3.selection.enter = d3_selection_enter; +d3.selection.enter.prototype = d3_selection_enterPrototype; + +d3_selection_enterPrototype.append = d3_selectionPrototype.append; +d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; +d3_selection_enterPrototype.node = d3_selectionPrototype.node; +d3_selection_enterPrototype.call = d3_selectionPrototype.call; +d3_selection_enterPrototype.size = d3_selectionPrototype.size; + +import "enter-select"; +import "enter-insert"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/filter.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/filter.js new file mode 100644 index 000000000..38728564b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/filter.js @@ -0,0 +1,28 @@ +import "selection"; + +d3_selectionPrototype.filter = function(filter) { + var subgroups = [], + subgroup, + group, + node; + + if (typeof filter !== "function") filter = d3_selection_filter(filter); + + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + + return d3_selection(subgroups); +}; + +function d3_selection_filter(selector) { + return function() { + return d3_selectMatches(this, selector); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/html.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/html.js new file mode 100644 index 000000000..19f475d7a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/html.js @@ -0,0 +1,10 @@ +import "selection"; + +d3_selectionPrototype.html = function(value) { + return arguments.length + ? this.each(typeof value === "function" + ? function() { var v = value.apply(this, arguments); this.innerHTML = v == null ? "" : v; } : value == null + ? function() { this.innerHTML = ""; } + : function() { this.innerHTML = value; }) + : this.node().innerHTML; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/index.js new file mode 100644 index 000000000..335027737 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/index.js @@ -0,0 +1 @@ +import "selection"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/insert.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/insert.js new file mode 100644 index 000000000..909dfd970 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/insert.js @@ -0,0 +1,9 @@ +import "selection"; + +d3_selectionPrototype.insert = function(name, before) { + name = d3_selection_creator(name); + before = d3_selection_selector(before); + return this.select(function() { + return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null); + }); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/interrupt.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/interrupt.js new file mode 100644 index 000000000..2acf39b9b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/interrupt.js @@ -0,0 +1,27 @@ +// import "../transition/transition"; +import "selection"; + +// TODO Interrupt transitions for all namespaces? +d3_selectionPrototype.interrupt = function(name) { + return this.each(name == null + ? d3_selection_interrupt + : d3_selection_interruptNS(d3_transitionNamespace(name))); +}; + +var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace()); + +function d3_selection_interruptNS(ns) { + return function() { + var lock, + activeId, + active; + if ((lock = this[ns]) && (active = lock[activeId = lock.active])) { + active.timer.c = null; + active.timer.t = NaN; + if (--lock.count) delete lock[activeId]; + else delete this[ns]; + lock.active += 0.5; + active.event && active.event.interrupt.call(this, this.__data__, active.index); + } + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/node.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/node.js new file mode 100644 index 000000000..9c9be4d82 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/node.js @@ -0,0 +1,11 @@ +import "selection"; + +d3_selectionPrototype.node = function() { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) return node; + } + } + return null; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/on.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/on.js new file mode 100644 index 000000000..9f049876d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/on.js @@ -0,0 +1,106 @@ +import "../arrays/map"; +import "../core/array"; +import "../core/document"; +import "../core/noop"; +import "../event/event"; +import "../format/requote"; +import "selection"; + +d3_selectionPrototype.on = function(type, listener, capture) { + var n = arguments.length; + if (n < 3) { + + // For on(object) or on(object, boolean), the object specifies the event + // types and listeners to add or remove. The optional boolean specifies + // whether the listener captures events. + if (typeof type !== "string") { + if (n < 2) listener = false; + for (capture in type) this.each(d3_selection_on(capture, type[capture], listener)); + return this; + } + + // For on(string), return the listener for the first node. + if (n < 2) return (n = this.node()["__on" + type]) && n._; + + // For on(string, function), use the default capture. + capture = false; + } + + // Otherwise, a type, listener and capture are specified, and handled as below. + return this.each(d3_selection_on(type, listener, capture)); +}; + +function d3_selection_on(type, listener, capture) { + var name = "__on" + type, + i = type.indexOf("."), + wrap = d3_selection_onListener; + + if (i > 0) type = type.slice(0, i); + var filter = d3_selection_onFilters.get(type); + if (filter) type = filter, wrap = d3_selection_onFilter; + + function onRemove() { + var l = this[name]; + if (l) { + this.removeEventListener(type, l, l.$); + delete this[name]; + } + } + + function onAdd() { + var l = wrap(listener, d3_array(arguments)); + onRemove.call(this); + this.addEventListener(type, this[name] = l, l.$ = capture); + l._ = listener; + } + + function removeAll() { + var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), + match; + for (var name in this) { + if (match = name.match(re)) { + var l = this[name]; + this.removeEventListener(match[1], l, l.$); + delete this[name]; + } + } + } + + return i + ? listener ? onAdd : onRemove + : listener ? d3_noop : removeAll; +} + +var d3_selection_onFilters = d3.map({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}); + +if (d3_document) { + d3_selection_onFilters.forEach(function(k) { + if ("on" + k in d3_document) d3_selection_onFilters.remove(k); + }); +} + +function d3_selection_onListener(listener, argumentz) { + return function(e) { + var o = d3.event; // Events can be reentrant (e.g., focus). + d3.event = e; + argumentz[0] = this.__data__; + try { + listener.apply(this, argumentz); + } finally { + d3.event = o; + } + }; +} + +function d3_selection_onFilter(listener, argumentz) { + var l = d3_selection_onListener(listener, argumentz); + return function(e) { + var target = this, related = e.relatedTarget; + if (!related || (related !== target && !(related.compareDocumentPosition(target) & 8))) { + l.call(target, e); + } + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/order.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/order.js new file mode 100644 index 000000000..dc537ac7d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/order.js @@ -0,0 +1,13 @@ +import "selection"; + +d3_selectionPrototype.order = function() { + for (var j = -1, m = this.length; ++j < m;) { + for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0;) { + if (node = group[i]) { + if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/property.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/property.js new file mode 100644 index 000000000..8afcb89ad --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/property.js @@ -0,0 +1,43 @@ +import "selection"; + +d3_selectionPrototype.property = function(name, value) { + if (arguments.length < 2) { + + // For property(string), return the property value for the first node. + if (typeof name === "string") return this.node()[name]; + + // For property(object), the object specifies the names and values of the + // properties to set or remove. The values may be functions that are + // evaluated for each element. + for (value in name) this.each(d3_selection_property(value, name[value])); + return this; + } + + // Otherwise, both a name and a value are specified, and are handled as below. + return this.each(d3_selection_property(name, value)); +}; + +function d3_selection_property(name, value) { + + // For property(name, null), remove the property with the specified name. + function propertyNull() { + delete this[name]; + } + + // For property(name, string), set the property with the specified name. + function propertyConstant() { + this[name] = value; + } + + // For property(name, function), evaluate the function for each element, and + // set or remove the property as appropriate. + function propertyFunction() { + var x = value.apply(this, arguments); + if (x == null) delete this[name]; + else this[name] = x; + } + + return value == null + ? propertyNull : (typeof value === "function" + ? propertyFunction : propertyConstant); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/remove.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/remove.js new file mode 100644 index 000000000..80666d999 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/remove.js @@ -0,0 +1,13 @@ +import "selection"; + +// TODO remove(selector)? +// TODO remove(node)? +// TODO remove(function)? +d3_selectionPrototype.remove = function() { + return this.each(d3_selectionRemove); +}; + +function d3_selectionRemove() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/select.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/select.js new file mode 100644 index 000000000..8c1dcdee9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/select.js @@ -0,0 +1,32 @@ +import "selection"; + +d3_selectionPrototype.select = function(selector) { + var subgroups = [], + subgroup, + subnode, + group, + node; + + selector = d3_selection_selector(selector); + + for (var j = -1, m = this.length; ++j < m;) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subgroup.push(subnode = selector.call(node, node.__data__, i, j)); + if (subnode && "__data__" in node) subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + + return d3_selection(subgroups); +}; + +function d3_selection_selector(selector) { + return typeof selector === "function" ? selector : function() { + return d3_select(selector, this); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/selectAll.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/selectAll.js new file mode 100644 index 000000000..7072f8832 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/selectAll.js @@ -0,0 +1,27 @@ +import "../core/array"; +import "selection"; + +d3_selectionPrototype.selectAll = function(selector) { + var subgroups = [], + subgroup, + node; + + selector = d3_selection_selectorAll(selector); + + for (var j = -1, m = this.length; ++j < m;) { + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j))); + subgroup.parentNode = node; + } + } + } + + return d3_selection(subgroups); +}; + +function d3_selection_selectorAll(selector) { + return typeof selector === "function" ? selector : function() { + return d3_selectAll(selector, this); + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/selection.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/selection.js new file mode 100644 index 000000000..c96dbda2e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/selection.js @@ -0,0 +1,81 @@ +import "../core/array"; +import "../core/document"; +import "../core/subclass"; +import "../core/vendor"; + +function d3_selection(groups) { + d3_subclass(groups, d3_selectionPrototype); + return groups; +} + +var d3_select = function(s, n) { return n.querySelector(s); }, + d3_selectAll = function(s, n) { return n.querySelectorAll(s); }, + d3_selectMatches = function(n, s) { + var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, "matchesSelector")]; + d3_selectMatches = function(n, s) { + return d3_selectMatcher.call(n, s); + }; + return d3_selectMatches(n, s); + }; + +// Prefer Sizzle, if available. +if (typeof Sizzle === "function") { + d3_select = function(s, n) { return Sizzle(s, n)[0] || null; }; + d3_selectAll = Sizzle; + d3_selectMatches = Sizzle.matchesSelector; +} + +d3.selection = function() { + return d3.select(d3_document.documentElement); +}; + +var d3_selectionPrototype = d3.selection.prototype = []; + +import "select"; +import "selectAll"; +import "attr"; +import "classed"; +import "style"; +import "property"; +import "text"; +import "html"; +import "append"; +import "insert"; +import "remove"; +import "data"; +import "datum"; +import "filter"; +import "order"; +import "sort"; +import "on"; +import "each"; +import "call"; +import "empty"; +import "node"; +import "size"; +import "enter"; + +// TODO fast singleton implementation? +d3.select = function(node) { + var group; + if (typeof node === "string") { + group = [d3_select(node, d3_document)]; + group.parentNode = d3_document.documentElement; + } else { + group = [node]; + group.parentNode = d3_documentElement(node); + } + return d3_selection([group]); +}; + +d3.selectAll = function(nodes) { + var group; + if (typeof nodes === "string") { + group = d3_array(d3_selectAll(nodes, d3_document)); + group.parentNode = d3_document.documentElement; + } else { + group = d3_array(nodes); + group.parentNode = null; + } + return d3_selection([group]); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/size.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/size.js new file mode 100644 index 000000000..206ab4fc9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/size.js @@ -0,0 +1,7 @@ +import "each"; + +d3_selectionPrototype.size = function() { + var n = 0; + d3_selection_each(this, function() { ++n; }); + return n; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/sort.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/sort.js new file mode 100644 index 000000000..1abacd080 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/sort.js @@ -0,0 +1,15 @@ +import "../arrays/ascending"; +import "selection"; + +d3_selectionPrototype.sort = function(comparator) { + comparator = d3_selection_sortComparator.apply(this, arguments); + for (var j = -1, m = this.length; ++j < m;) this[j].sort(comparator); + return this.order(); +}; + +function d3_selection_sortComparator(comparator) { + if (!arguments.length) comparator = d3_ascending; + return function(a, b) { + return a && b ? comparator(a.__data__, b.__data__) : !a - !b; + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/style.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/style.js new file mode 100644 index 000000000..1501da0ff --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/style.js @@ -0,0 +1,59 @@ +import "../core/document"; +import "selection"; + +d3_selectionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + + // For style(object) or style(object, string), the object specifies the + // names and values of the attributes to set or remove. The values may be + // functions that are evaluated for each element. The optional string + // specifies the priority. + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.each(d3_selection_style(priority, name[priority], value)); + return this; + } + + // For style(string), return the computed style value for the first node. + if (n < 2) { + var node = this.node(); + return d3_window(node).getComputedStyle(node, null).getPropertyValue(name); + } + + // For style(string, string) or style(string, function), use the default + // priority. The priority is ignored for style(string, null). + priority = ""; + } + + // Otherwise, a name, value and priority are specified, and handled as below. + return this.each(d3_selection_style(name, value, priority)); +}; + +function d3_selection_style(name, value, priority) { + + // For style(name, null) or style(name, null, priority), remove the style + // property with the specified name. The priority is ignored. + function styleNull() { + this.style.removeProperty(name); + } + + // For style(name, string) or style(name, string, priority), set the style + // property with the specified name, using the specified priority. + function styleConstant() { + this.style.setProperty(name, value, priority); + } + + // For style(name, function) or style(name, function, priority), evaluate the + // function for each element, and set or remove the style property as + // appropriate. When setting, use the specified priority. + function styleFunction() { + var x = value.apply(this, arguments); + if (x == null) this.style.removeProperty(name); + else this.style.setProperty(name, x, priority); + } + + return value == null + ? styleNull : (typeof value === "function" + ? styleFunction : styleConstant); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/text.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/text.js new file mode 100644 index 000000000..3daf802b9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/text.js @@ -0,0 +1,10 @@ +import "selection"; + +d3_selectionPrototype.text = function(value) { + return arguments.length + ? this.each(typeof value === "function" + ? function() { var v = value.apply(this, arguments); this.textContent = v == null ? "" : v; } : value == null + ? function() { this.textContent = ""; } + : function() { this.textContent = value; }) + : this.node().textContent; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/transition.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/transition.js new file mode 100644 index 000000000..09f3d986f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/selection/transition.js @@ -0,0 +1,21 @@ +// import "../transition/transition"; +import "selection"; + +d3_selectionPrototype.transition = function(name) { + var id = d3_transitionInheritId || ++d3_transitionId, + ns = d3_transitionNamespace(name), + subgroups = [], + subgroup, + node, + transition = d3_transitionInherit || {time: Date.now(), ease: d3_ease_cubicInOut, delay: 0, duration: 250}; + + for (var j = -1, m = this.length; ++j < m;) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + if (node = group[i]) d3_transitionNode(node, i, ns, id, transition); + subgroup.push(node); + } + } + + return d3_transition(subgroups, ns, id); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/start.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/start.js new file mode 100644 index 000000000..ef184f3dd --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/start.js @@ -0,0 +1,2 @@ +!function(){ + var d3 = {version: "3.5.17"}; // semver diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/arc.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/arc.js new file mode 100644 index 000000000..680e2ac1d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/arc.js @@ -0,0 +1,292 @@ +import "../core/functor"; +import "../core/zero"; +import "../math/trigonometry"; +import "../geom/polygon"; +import "svg"; + +d3.svg.arc = function() { + var innerRadius = d3_svg_arcInnerRadius, + outerRadius = d3_svg_arcOuterRadius, + cornerRadius = d3_zero, + padRadius = d3_svg_arcAuto, + startAngle = d3_svg_arcStartAngle, + endAngle = d3_svg_arcEndAngle, + padAngle = d3_svg_arcPadAngle; + + function arc() { + var r0 = Math.max(0, +innerRadius.apply(this, arguments)), + r1 = Math.max(0, +outerRadius.apply(this, arguments)), + a0 = startAngle.apply(this, arguments) - halfπ, + a1 = endAngle.apply(this, arguments) - halfπ, + da = Math.abs(a1 - a0), + cw = a0 > a1 ? 0 : 1; + + // Ensure that the outer radius is always larger than the inner radius. + if (r1 < r0) rc = r1, r1 = r0, r0 = rc; + + // Special case for an arc that spans the full circle. + if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : "") + "Z"; + + var rc, + cr, + rp, + ap, + p0 = 0, + p1 = 0, + x0, + y0, + x1, + y1, + x2, + y2, + x3, + y3, + path = []; + + // The recommended minimum inner radius when using padding is outerRadius * + // padAngle / sin(θ), where θ is the angle of the smallest arc (without + // padding). For example, if the outerRadius is 200 pixels and the padAngle + // is 0.02 radians, a reasonable θ is 0.04 radians, and a reasonable + // innerRadius is 100 pixels. + + if (ap = (+padAngle.apply(this, arguments) || 0) / 2) { + rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments); + if (!cw) p1 *= -1; + if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap)); + if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap)); + } + + // Compute the two outer corners. + if (r1) { + x0 = r1 * Math.cos(a0 + p1); + y0 = r1 * Math.sin(a0 + p1); + x1 = r1 * Math.cos(a1 - p1); + y1 = r1 * Math.sin(a1 - p1); + + // Detect whether the outer corners are collapsed. + var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1; + if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) { + var h1 = (a0 + a1) / 2; + x0 = r1 * Math.cos(h1); + y0 = r1 * Math.sin(h1); + x1 = y1 = null; + } + } else { + x0 = y0 = 0; + } + + // Compute the two inner corners. + if (r0) { + x2 = r0 * Math.cos(a1 - p0); + y2 = r0 * Math.sin(a1 - p0); + x3 = r0 * Math.cos(a0 + p0); + y3 = r0 * Math.sin(a0 + p0); + + // Detect whether the inner corners are collapsed. + var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1; + if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === (1 - cw) ^ l0) { + var h0 = (a0 + a1) / 2; + x2 = r0 * Math.cos(h0); + y2 = r0 * Math.sin(h0); + x3 = y3 = null; + } + } else { + x2 = y2 = 0; + } + + // Compute the rounded corners. + if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > 1e-3) { + cr = r0 < r1 ^ cw ? 0 : 1; + var rc1 = rc, + rc0 = rc; + + // Compute the angle of the sector formed by the two sides of the arc. + if (da < π) { + var oc = x3 == null ? [x2, y2] : x1 == null ? [x0, y0] : d3_geom_polygonIntersect([x0, y0], [x3, y3], [x1, y1], [x2, y2]), + ax = x0 - oc[0], + ay = y0 - oc[1], + bx = x1 - oc[0], + by = y1 - oc[1], + kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), + lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = Math.min(rc, (r0 - lc) / (kc - 1)); + rc1 = Math.min(rc, (r1 - lc) / (kc + 1)); + } + + // Compute the outer corners. + if (x1 != null) { + var t30 = d3_svg_arcCornerTangents(x3 == null ? [x2, y2] : [x3, y3], [x0, y0], r1, rc1, cw), + t12 = d3_svg_arcCornerTangents([x1, y1], [x2, y2], r1, rc1, cw); + + // Detect whether the outer edge is fully circular. + if (rc === rc1) { + path.push( + "M", t30[0], + "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], + "A", r1, ",", r1, " 0 ", (1 - cw) ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], + "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]); + } else { + path.push( + "M", t30[0], + "A", rc1, ",", rc1, " 0 1,", cr, " ", t12[0]); + } + } else { + path.push("M", x0, ",", y0); + } + + // Compute the inner corners. + if (x3 != null) { + var t03 = d3_svg_arcCornerTangents([x0, y0], [x3, y3], r0, -rc0, cw), + t21 = d3_svg_arcCornerTangents([x2, y2], x1 == null ? [x0, y0] : [x1, y1], r0, -rc0, cw); + + // Detect whether the inner edge is fully circular. + if (rc === rc0) { + path.push( + "L", t21[0], + "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], + "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], + "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]); + } else { + path.push( + "L", t21[0], + "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]); + } + } else { + path.push("L", x2, ",", y2); + } + } + + // Compute straight corners. + else { + path.push("M", x0, ",", y0); + if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1); + path.push("L", x2, ",", y2); + if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3); + } + + path.push("Z"); + return path.join(""); + } + + function circleSegment(r1, cw) { + return "M0," + r1 + + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + -r1 + + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + r1; + } + + arc.innerRadius = function(v) { + if (!arguments.length) return innerRadius; + innerRadius = d3_functor(v); + return arc; + }; + + arc.outerRadius = function(v) { + if (!arguments.length) return outerRadius; + outerRadius = d3_functor(v); + return arc; + }; + + arc.cornerRadius = function(v) { + if (!arguments.length) return cornerRadius; + cornerRadius = d3_functor(v); + return arc; + }; + + arc.padRadius = function(v) { + if (!arguments.length) return padRadius; + padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v); + return arc; + }; + + arc.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return arc; + }; + + arc.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return arc; + }; + + arc.padAngle = function(v) { + if (!arguments.length) return padAngle; + padAngle = d3_functor(v); + return arc; + }; + + arc.centroid = function() { + var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, + a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ; + return [Math.cos(a) * r, Math.sin(a) * r]; + }; + + return arc; +}; + +var d3_svg_arcAuto = "auto"; + +function d3_svg_arcInnerRadius(d) { + return d.innerRadius; +} + +function d3_svg_arcOuterRadius(d) { + return d.outerRadius; +} + +function d3_svg_arcStartAngle(d) { + return d.startAngle; +} + +function d3_svg_arcEndAngle(d) { + return d.endAngle; +} + +function d3_svg_arcPadAngle(d) { + return d && d.padAngle; +} + +// Note: similar to d3_cross2d, d3_geom_polygonInside +function d3_svg_arcSweep(x0, y0, x1, y1) { + return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1; +} + +// Compute perpendicular offset line of length rc. +// http://mathworld.wolfram.com/Circle-LineIntersection.html +function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) { + var x01 = p0[0] - p1[0], + y01 = p0[1] - p1[1], + lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), + ox = lo * y01, + oy = -lo * x01, + x1 = p0[0] + ox, + y1 = p0[1] + oy, + x2 = p1[0] + ox, + y2 = p1[1] + oy, + x3 = (x1 + x2) / 2, + y3 = (y1 + y2) / 2, + dx = x2 - x1, + dy = y2 - y1, + d2 = dx * dx + dy * dy, + r = r1 - rc, + D = x1 * y2 - x2 * y1, + d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), + cx0 = (D * dy - dx * d) / d2, + cy0 = (-D * dx - dy * d) / d2, + cx1 = (D * dy + dx * d) / d2, + cy1 = (-D * dx + dy * d) / d2, + dx0 = cx0 - x3, + dy0 = cy0 - y3, + dx1 = cx1 - x3, + dy1 = cy1 - y3; + + // Pick the closer of the two intersection points. + // TODO Is there a faster way to determine which intersection to use? + if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; + + return [ + [cx0 - ox, cy0 - oy], + [cx0 * r1 / r, cy0 * r1 / r] + ]; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/area-radial.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/area-radial.js new file mode 100644 index 000000000..9a5b8625c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/area-radial.js @@ -0,0 +1,14 @@ +import "area"; +import "svg"; +import "line-radial"; + +d3.svg.area.radial = function() { + var area = d3_svg_area(d3_svg_lineRadial); + area.radius = area.x, delete area.x; + area.innerRadius = area.x0, delete area.x0; + area.outerRadius = area.x1, delete area.x1; + area.angle = area.y, delete area.y; + area.startAngle = area.y0, delete area.y0; + area.endAngle = area.y1, delete area.y1; + return area; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/area.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/area.js new file mode 100644 index 000000000..ec273a2ce --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/area.js @@ -0,0 +1,121 @@ +import "../core/functor"; +import "../core/identity"; +import "../core/true"; +import "../geom/point"; +import "svg"; +import "line"; + +function d3_svg_area(projection) { + var x0 = d3_geom_pointX, + x1 = d3_geom_pointX, + y0 = 0, + y1 = d3_geom_pointY, + defined = d3_true, + interpolate = d3_svg_lineLinear, + interpolateKey = interpolate.key, + interpolateReverse = interpolate, + L = "L", + tension = 0.7; + + function area(data) { + var segments = [], + points0 = [], + points1 = [], + i = -1, + n = data.length, + d, + fx0 = d3_functor(x0), + fy0 = d3_functor(y0), + fx1 = x0 === x1 ? function() { return x; } : d3_functor(x1), + fy1 = y0 === y1 ? function() { return y; } : d3_functor(y1), + x, + y; + + function segment() { + segments.push("M", interpolate(projection(points1), tension), + L, interpolateReverse(projection(points0.reverse()), tension), + "Z"); + } + + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points0.push([x = +fx0.call(this, d, i), y = +fy0.call(this, d, i)]); + points1.push([+fx1.call(this, d, i), +fy1.call(this, d, i)]); + } else if (points0.length) { + segment(); + points0 = []; + points1 = []; + } + } + + if (points0.length) segment(); + + return segments.length ? segments.join("") : null; + } + + area.x = function(_) { + if (!arguments.length) return x1; + x0 = x1 = _; + return area; + }; + + area.x0 = function(_) { + if (!arguments.length) return x0; + x0 = _; + return area; + }; + + area.x1 = function(_) { + if (!arguments.length) return x1; + x1 = _; + return area; + }; + + area.y = function(_) { + if (!arguments.length) return y1; + y0 = y1 = _; + return area; + }; + + area.y0 = function(_) { + if (!arguments.length) return y0; + y0 = _; + return area; + }; + + area.y1 = function(_) { + if (!arguments.length) return y1; + y1 = _; + return area; + }; + + area.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return area; + }; + + area.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; + else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + interpolateReverse = interpolate.reverse || interpolate; + L = interpolate.closed ? "M" : "L"; + return area; + }; + + area.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return area; + }; + + return area; +} + +d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter; +d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore; + +d3.svg.area = function() { + return d3_svg_area(d3_identity); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/axis.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/axis.js new file mode 100644 index 000000000..96e78deac --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/axis.js @@ -0,0 +1,160 @@ +import "../core/array"; +import "../core/identity"; +import "../math/trigonometry"; +import "../scale/linear"; +import "../scale/scale"; +import "../selection/selection"; +import "../transition/transition"; +import "svg"; + +d3.svg.axis = function() { + var scale = d3.scale.linear(), + orient = d3_svg_axisDefaultOrient, + innerTickSize = 6, + outerTickSize = 6, + tickPadding = 3, + tickArguments_ = [10], + tickValues = null, + tickFormat_; + + function axis(g) { + g.each(function() { + var g = d3.select(this); + + // Stash a snapshot of the new scale, and retrieve the old snapshot. + var scale0 = this.__chart__ || scale, + scale1 = this.__chart__ = scale.copy(); + + // Ticks, or domain values for ordinal scales. + var ticks = tickValues == null ? (scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain()) : tickValues, + tickFormat = tickFormat_ == null ? (scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity) : tickFormat_, + tick = g.selectAll(".tick").data(ticks, scale1), + tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), + tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), + tickUpdate = d3.transition(tick.order()).style("opacity", 1), + tickSpacing = Math.max(innerTickSize, 0) + tickPadding, + tickTransform; + + // Domain. + var range = d3_scaleRange(scale1), + path = g.selectAll(".domain").data([0]), + pathUpdate = (path.enter().append("path").attr("class", "domain"), d3.transition(path)); + + tickEnter.append("line"); + tickEnter.append("text"); + + var lineEnter = tickEnter.select("line"), + lineUpdate = tickUpdate.select("line"), + text = tick.select("text").text(tickFormat), + textEnter = tickEnter.select("text"), + textUpdate = tickUpdate.select("text"), + sign = orient === "top" || orient === "left" ? -1 : 1, + x1, x2, y1, y2; + + if (orient === "bottom" || orient === "top") { + tickTransform = d3_svg_axisX, x1 = "x", y1 = "y", x2 = "x2", y2 = "y2"; + text.attr("dy", sign < 0 ? "0em" : ".71em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + sign * outerTickSize + "V0H" + range[1] + "V" + sign * outerTickSize); + } else { + tickTransform = d3_svg_axisY, x1 = "y", y1 = "x", x2 = "y2", y2 = "x2"; + text.attr("dy", ".32em").style("text-anchor", sign < 0 ? "end" : "start"); + pathUpdate.attr("d", "M" + sign * outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + sign * outerTickSize); + } + + lineEnter.attr(y2, sign * innerTickSize); + textEnter.attr(y1, sign * tickSpacing); + lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize); + textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing); + + // If either the new or old scale is ordinal, + // entering ticks are undefined in the old scale, + // and so can fade-in in the new scale’s position. + // Exiting ticks are likewise undefined in the new scale, + // and so can fade-out in the old scale’s position. + if (scale1.rangeBand) { + var x = scale1, dx = x.rangeBand() / 2; + scale0 = scale1 = function(d) { return x(d) + dx; }; + } else if (scale0.rangeBand) { + scale0 = scale1; + } else { + tickExit.call(tickTransform, scale1, scale0); + } + + tickEnter.call(tickTransform, scale0, scale1); + tickUpdate.call(tickTransform, scale1, scale1); + }); + } + + axis.scale = function(x) { + if (!arguments.length) return scale; + scale = x; + return axis; + }; + + axis.orient = function(x) { + if (!arguments.length) return orient; + orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient; + return axis; + }; + + axis.ticks = function() { + if (!arguments.length) return tickArguments_; + tickArguments_ = d3_array(arguments); + return axis; + }; + + axis.tickValues = function(x) { + if (!arguments.length) return tickValues; + tickValues = x; + return axis; + }; + + axis.tickFormat = function(x) { + if (!arguments.length) return tickFormat_; + tickFormat_ = x; + return axis; + }; + + axis.tickSize = function(x) { + var n = arguments.length; + if (!n) return innerTickSize; + innerTickSize = +x; + outerTickSize = +arguments[n - 1]; + return axis; + }; + + axis.innerTickSize = function(x) { + if (!arguments.length) return innerTickSize; + innerTickSize = +x; + return axis; + }; + + axis.outerTickSize = function(x) { + if (!arguments.length) return outerTickSize; + outerTickSize = +x; + return axis; + }; + + axis.tickPadding = function(x) { + if (!arguments.length) return tickPadding; + tickPadding = +x; + return axis; + }; + + axis.tickSubdivide = function() { + return arguments.length && axis; + }; + + return axis; +}; + +var d3_svg_axisDefaultOrient = "bottom", + d3_svg_axisOrients = {top: 1, right: 1, bottom: 1, left: 1}; + +function d3_svg_axisX(selection, x0, x1) { + selection.attr("transform", function(d) { var v0 = x0(d); return "translate(" + (isFinite(v0) ? v0 : x1(d)) + ",0)"; }); +} + +function d3_svg_axisY(selection, y0, y1) { + selection.attr("transform", function(d) { var v0 = y0(d); return "translate(0," + (isFinite(v0) ? v0 : y1(d)) + ")"; }); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/brush.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/brush.js new file mode 100644 index 000000000..77ef8d3c3 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/brush.js @@ -0,0 +1,429 @@ +import "../core/identity"; +import "../core/document"; +import "../core/rebind"; +import "../event/drag"; +import "../event/event"; +import "../event/mouse"; +import "../scale/scale"; +import "../selection/selection"; +import "svg"; + +d3.svg.brush = function() { + var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), + x = null, // x-scale, optional + y = null, // y-scale, optional + xExtent = [0, 0], // [x0, x1] in integer pixels + yExtent = [0, 0], // [y0, y1] in integer pixels + xExtentDomain, // x-extent in data space + yExtentDomain, // y-extent in data space + xClamp = true, // whether to clamp the x-extent to the range + yClamp = true, // whether to clamp the y-extent to the range + resizes = d3_svg_brushResizes[0]; + + function brush(g) { + g.each(function() { + + // Prepare the brush container for events. + var g = d3.select(this) + .style("pointer-events", "all") + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") + .on("mousedown.brush", brushstart) + .on("touchstart.brush", brushstart); + + // An invisible, mouseable area for starting a new brush. + var background = g.selectAll(".background") + .data([0]); + + background.enter().append("rect") + .attr("class", "background") + .style("visibility", "hidden") + .style("cursor", "crosshair"); + + // The visible brush extent; style this as you like! + g.selectAll(".extent") + .data([0]) + .enter().append("rect") + .attr("class", "extent") + .style("cursor", "move"); + + // More invisible rects for resizing the extent. + var resize = g.selectAll(".resize") + .data(resizes, d3_identity); + + // Remove any superfluous resizers. + resize.exit().remove(); + + resize.enter().append("g") + .attr("class", function(d) { return "resize " + d; }) + .style("cursor", function(d) { return d3_svg_brushCursor[d]; }) + .append("rect") + .attr("x", function(d) { return /[ew]$/.test(d) ? -3 : null; }) + .attr("y", function(d) { return /^[ns]/.test(d) ? -3 : null; }) + .attr("width", 6) + .attr("height", 6) + .style("visibility", "hidden"); + + // Show or hide the resizers. + resize.style("display", brush.empty() ? "none" : null); + + // When called on a transition, use a transition to update. + var gUpdate = d3.transition(g), + backgroundUpdate = d3.transition(background), + range; + + // Initialize the background to fill the defined range. + // If the range isn't defined, you can post-process. + if (x) { + range = d3_scaleRange(x); + backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]); + redrawX(gUpdate); + } + if (y) { + range = d3_scaleRange(y); + backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]); + redrawY(gUpdate); + } + redraw(gUpdate); + }); + } + + brush.event = function(g) { + g.each(function() { + var event_ = event.of(this, arguments), + extent1 = {x: xExtent, y: yExtent, i: xExtentDomain, j: yExtentDomain}, + extent0 = this.__chart__ || extent1; + this.__chart__ = extent1; + if (d3_transitionInheritId) { + d3.select(this).transition() + .each("start.brush", function() { + xExtentDomain = extent0.i; // pre-transition state + yExtentDomain = extent0.j; + xExtent = extent0.x; + yExtent = extent0.y; + event_({type: "brushstart"}); + }) + .tween("brush:brush", function() { + var xi = d3_interpolateArray(xExtent, extent1.x), + yi = d3_interpolateArray(yExtent, extent1.y); + xExtentDomain = yExtentDomain = null; // transition state + return function(t) { + xExtent = extent1.x = xi(t); + yExtent = extent1.y = yi(t); + event_({type: "brush", mode: "resize"}); + }; + }) + .each("end.brush", function() { + xExtentDomain = extent1.i; // post-transition state + yExtentDomain = extent1.j; + event_({type: "brush", mode: "resize"}); + event_({type: "brushend"}); + }); + } else { + event_({type: "brushstart"}); + event_({type: "brush", mode: "resize"}); + event_({type: "brushend"}); + } + }); + }; + + function redraw(g) { + g.selectAll(".resize").attr("transform", function(d) { + return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")"; + }); + } + + function redrawX(g) { + g.select(".extent").attr("x", xExtent[0]); + g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]); + } + + function redrawY(g) { + g.select(".extent").attr("y", yExtent[0]); + g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]); + } + + function brushstart() { + var target = this, + eventTarget = d3.select(d3.event.target), + event_ = event.of(target, arguments), + g = d3.select(target), + resizing = eventTarget.datum(), + resizingX = !/^(n|s)$/.test(resizing) && x, + resizingY = !/^(e|w)$/.test(resizing) && y, + dragging = eventTarget.classed("extent"), + dragRestore = d3_event_dragSuppress(target), + center, + origin = d3.mouse(target), + offset; + + var w = d3.select(d3_window(target)) + .on("keydown.brush", keydown) + .on("keyup.brush", keyup); + + if (d3.event.changedTouches) { + w.on("touchmove.brush", brushmove).on("touchend.brush", brushend); + } else { + w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend); + } + + // Interrupt the transition, if any. + g.interrupt().selectAll("*").interrupt(); + + // If the extent was clicked on, drag rather than brush; + // store the point between the mouse and extent origin instead. + if (dragging) { + origin[0] = xExtent[0] - origin[0]; + origin[1] = yExtent[0] - origin[1]; + } + + // If a resizer was clicked on, record which side is to be resized. + // Also, set the origin to the opposite side. + else if (resizing) { + var ex = +/w$/.test(resizing), + ey = +/^n/.test(resizing); + offset = [xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1]]; + origin[0] = xExtent[ex]; + origin[1] = yExtent[ey]; + } + + // If the ALT key is down when starting a brush, the center is at the mouse. + else if (d3.event.altKey) center = origin.slice(); + + // Propagate the active cursor to the body for the drag duration. + g.style("pointer-events", "none").selectAll(".resize").style("display", null); + d3.select("body").style("cursor", eventTarget.style("cursor")); + + // Notify listeners. + event_({type: "brushstart"}); + brushmove(); + + function keydown() { + if (d3.event.keyCode == 32) { + if (!dragging) { + center = null; + origin[0] -= xExtent[1]; + origin[1] -= yExtent[1]; + dragging = 2; + } + d3_eventPreventDefault(); + } + } + + function keyup() { + if (d3.event.keyCode == 32 && dragging == 2) { + origin[0] += xExtent[1]; + origin[1] += yExtent[1]; + dragging = 0; + d3_eventPreventDefault(); + } + } + + function brushmove() { + var point = d3.mouse(target), + moved = false; + + // Preserve the offset for thick resizers. + if (offset) { + point[0] += offset[0]; + point[1] += offset[1]; + } + + if (!dragging) { + + // If needed, determine the center from the current extent. + if (d3.event.altKey) { + if (!center) center = [(xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2]; + + // Update the origin, for when the ALT key is released. + origin[0] = xExtent[+(point[0] < center[0])]; + origin[1] = yExtent[+(point[1] < center[1])]; + } + + // When the ALT key is released, we clear the center. + else center = null; + } + + // Update the brush extent for each dimension. + if (resizingX && move1(point, x, 0)) { + redrawX(g); + moved = true; + } + if (resizingY && move1(point, y, 1)) { + redrawY(g); + moved = true; + } + + // Final redraw and notify listeners. + if (moved) { + redraw(g); + event_({type: "brush", mode: dragging ? "move" : "resize"}); + } + } + + function move1(point, scale, i) { + var range = d3_scaleRange(scale), + r0 = range[0], + r1 = range[1], + position = origin[i], + extent = i ? yExtent : xExtent, + size = extent[1] - extent[0], + min, + max; + + // When dragging, reduce the range by the extent size and position. + if (dragging) { + r0 -= position; + r1 -= size + position; + } + + // Clamp the point (unless clamp set to false) so that the extent fits within the range extent. + min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i]; + + // Compute the new extent bounds. + if (dragging) { + max = (min += position) + size; + } else { + + // If the ALT key is pressed, then preserve the center of the extent. + if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min)); + + // Compute the min and max of the position and point. + if (position < min) { + max = min; + min = position; + } else { + max = position; + } + } + + // Update the stored bounds. + if (extent[0] != min || extent[1] != max) { + if (i) yExtentDomain = null; + else xExtentDomain = null; + extent[0] = min; + extent[1] = max; + return true; + } + } + + function brushend() { + brushmove(); + + // reset the cursor styles + g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null); + d3.select("body").style("cursor", null); + + w .on("mousemove.brush", null) + .on("mouseup.brush", null) + .on("touchmove.brush", null) + .on("touchend.brush", null) + .on("keydown.brush", null) + .on("keyup.brush", null); + + dragRestore(); + event_({type: "brushend"}); + } + } + + brush.x = function(z) { + if (!arguments.length) return x; + x = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; // fore! + return brush; + }; + + brush.y = function(z) { + if (!arguments.length) return y; + y = z; + resizes = d3_svg_brushResizes[!x << 1 | !y]; // fore! + return brush; + }; + + brush.clamp = function(z) { + if (!arguments.length) return x && y ? [xClamp, yClamp] : x ? xClamp : y ? yClamp : null; + if (x && y) xClamp = !!z[0], yClamp = !!z[1]; + else if (x) xClamp = !!z; + else if (y) yClamp = !!z; + return brush; + }; + + brush.extent = function(z) { + var x0, x1, y0, y1, t; + + // Invert the pixel extent to data-space. + if (!arguments.length) { + if (x) { + if (xExtentDomain) { + x0 = xExtentDomain[0], x1 = xExtentDomain[1]; + } else { + x0 = xExtent[0], x1 = xExtent[1]; + if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + } + } + if (y) { + if (yExtentDomain) { + y0 = yExtentDomain[0], y1 = yExtentDomain[1]; + } else { + y0 = yExtent[0], y1 = yExtent[1]; + if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + } + } + return x && y ? [[x0, y0], [x1, y1]] : x ? [x0, x1] : y && [y0, y1]; + } + + // Scale the data-space extent to pixels. + if (x) { + x0 = z[0], x1 = z[1]; + if (y) x0 = x0[0], x1 = x1[0]; + xExtentDomain = [x0, x1]; + if (x.invert) x0 = x(x0), x1 = x(x1); + if (x1 < x0) t = x0, x0 = x1, x1 = t; + if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [x0, x1]; // copy-on-write + } + if (y) { + y0 = z[0], y1 = z[1]; + if (x) y0 = y0[1], y1 = y1[1]; + yExtentDomain = [y0, y1]; + if (y.invert) y0 = y(y0), y1 = y(y1); + if (y1 < y0) t = y0, y0 = y1, y1 = t; + if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [y0, y1]; // copy-on-write + } + + return brush; + }; + + brush.clear = function() { + if (!brush.empty()) { + xExtent = [0, 0], yExtent = [0, 0]; // copy-on-write + xExtentDomain = yExtentDomain = null; + } + return brush; + }; + + brush.empty = function() { + return !!x && xExtent[0] == xExtent[1] + || !!y && yExtent[0] == yExtent[1]; + }; + + return d3.rebind(brush, event, "on"); +}; + +var d3_svg_brushCursor = { + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" +}; + +var d3_svg_brushResizes = [ + ["n", "e", "s", "w", "nw", "ne", "se", "sw"], + ["e", "w"], + ["n", "s"], + [] +]; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/chord.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/chord.js new file mode 100644 index 000000000..d7611e14b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/chord.js @@ -0,0 +1,90 @@ +import "../core/functor"; +import "../core/source"; +import "../core/target"; +import "../math/trigonometry"; +import "arc"; +import "svg"; + +d3.svg.chord = function() { + var source = d3_source, + target = d3_target, + radius = d3_svg_chordRadius, + startAngle = d3_svg_arcStartAngle, + endAngle = d3_svg_arcEndAngle; + + // TODO Allow control point to be customized. + + function chord(d, i) { + var s = subgroup(this, source, d, i), + t = subgroup(this, target, d, i); + return "M" + s.p0 + + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) + ? curve(s.r, s.p1, s.r, s.p0) + : curve(s.r, s.p1, t.r, t.p0) + + arc(t.r, t.p1, t.a1 - t.a0) + + curve(t.r, t.p1, s.r, s.p0)) + + "Z"; + } + + function subgroup(self, f, d, i) { + var subgroup = f.call(self, d, i), + r = radius.call(self, subgroup, i), + a0 = startAngle.call(self, subgroup, i) - halfπ, + a1 = endAngle.call(self, subgroup, i) - halfπ; + return { + r: r, + a0: a0, + a1: a1, + p0: [r * Math.cos(a0), r * Math.sin(a0)], + p1: [r * Math.cos(a1), r * Math.sin(a1)] + }; + } + + function equals(a, b) { + return a.a0 == b.a0 && a.a1 == b.a1; + } + + function arc(r, p, a) { + return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p; + } + + function curve(r0, p0, r1, p1) { + return "Q 0,0 " + p1; + } + + chord.radius = function(v) { + if (!arguments.length) return radius; + radius = d3_functor(v); + return chord; + }; + + chord.source = function(v) { + if (!arguments.length) return source; + source = d3_functor(v); + return chord; + }; + + chord.target = function(v) { + if (!arguments.length) return target; + target = d3_functor(v); + return chord; + }; + + chord.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3_functor(v); + return chord; + }; + + chord.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3_functor(v); + return chord; + }; + + return chord; +}; + +function d3_svg_chordRadius(d) { + return d.radius; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/diagonal-radial.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/diagonal-radial.js new file mode 100644 index 000000000..c4b09fdfe --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/diagonal-radial.js @@ -0,0 +1,27 @@ +import "../math/trigonometry"; +import "arc"; +import "diagonal"; +import "svg"; + +d3.svg.diagonal.radial = function() { + var diagonal = d3.svg.diagonal(), + projection = d3_svg_diagonalProjection, + projection_ = diagonal.projection; + + diagonal.projection = function(x) { + return arguments.length + ? projection_(d3_svg_diagonalRadialProjection(projection = x)) + : projection; + }; + + return diagonal; +}; + +function d3_svg_diagonalRadialProjection(projection) { + return function() { + var d = projection.apply(this, arguments), + r = d[0], + a = d[1] - halfπ; + return [r * Math.cos(a), r * Math.sin(a)]; + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/diagonal.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/diagonal.js new file mode 100644 index 000000000..17d15def9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/diagonal.js @@ -0,0 +1,43 @@ +import "../core/functor"; +import "../core/source"; +import "../core/target"; +import "svg"; + +d3.svg.diagonal = function() { + var source = d3_source, + target = d3_target, + projection = d3_svg_diagonalProjection; + + function diagonal(d, i) { + var p0 = source.call(this, d, i), + p3 = target.call(this, d, i), + m = (p0.y + p3.y) / 2, + p = [p0, {x: p0.x, y: m}, {x: p3.x, y: m}, p3]; + p = p.map(projection); + return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3]; + } + + diagonal.source = function(x) { + if (!arguments.length) return source; + source = d3_functor(x); + return diagonal; + }; + + diagonal.target = function(x) { + if (!arguments.length) return target; + target = d3_functor(x); + return diagonal; + }; + + diagonal.projection = function(x) { + if (!arguments.length) return projection; + projection = x; + return diagonal; + }; + + return diagonal; +}; + +function d3_svg_diagonalProjection(d) { + return [d.x, d.y]; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/index.js new file mode 100644 index 000000000..a9201d7d4 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/index.js @@ -0,0 +1,12 @@ +import "svg"; +import "arc"; +import "line"; +import "line-radial"; +import "area"; +import "area-radial"; +import "chord"; +import "diagonal"; +import "diagonal-radial"; +import "symbol"; +import "axis"; +import "brush"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/line-radial.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/line-radial.js new file mode 100644 index 000000000..d69ec303a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/line-radial.js @@ -0,0 +1,27 @@ +import "../math/trigonometry"; +import "arc"; +import "line"; +import "svg"; + +d3.svg.line.radial = function() { + var line = d3_svg_line(d3_svg_lineRadial); + line.radius = line.x, delete line.x; + line.angle = line.y, delete line.y; + return line; +}; + +function d3_svg_lineRadial(points) { + var point, + i = -1, + n = points.length, + r, + a; + while (++i < n) { + point = points[i]; + r = point[0]; + a = point[1] - halfπ; + point[0] = r * Math.cos(a); + point[1] = r * Math.sin(a); + } + return points; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/line.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/line.js new file mode 100644 index 000000000..2531808ad --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/line.js @@ -0,0 +1,432 @@ +import "../arrays/map"; +import "../core/functor"; +import "../core/identity"; +import "../core/true"; +import "../geom/point"; +import "../math/abs"; +import "../math/trigonometry"; +import "svg"; + +function d3_svg_line(projection) { + var x = d3_geom_pointX, + y = d3_geom_pointY, + defined = d3_true, + interpolate = d3_svg_lineLinear, + interpolateKey = interpolate.key, + tension = 0.7; + + function line(data) { + var segments = [], + points = [], + i = -1, + n = data.length, + d, + fx = d3_functor(x), + fy = d3_functor(y); + + function segment() { + segments.push("M", interpolate(projection(points), tension)); + } + + while (++i < n) { + if (defined.call(this, d = data[i], i)) { + points.push([+fx.call(this, d, i), +fy.call(this, d, i)]); + } else if (points.length) { + segment(); + points = []; + } + } + + if (points.length) segment(); + + return segments.length ? segments.join("") : null; + } + + line.x = function(_) { + if (!arguments.length) return x; + x = _; + return line; + }; + + line.y = function(_) { + if (!arguments.length) return y; + y = _; + return line; + }; + + line.defined = function(_) { + if (!arguments.length) return defined; + defined = _; + return line; + }; + + line.interpolate = function(_) { + if (!arguments.length) return interpolateKey; + if (typeof _ === "function") interpolateKey = interpolate = _; + else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; + return line; + }; + + line.tension = function(_) { + if (!arguments.length) return tension; + tension = _; + return line; + }; + + return line; +} + +d3.svg.line = function() { + return d3_svg_line(d3_identity); +}; + +// The various interpolators supported by the `line` class. +var d3_svg_lineInterpolators = d3.map({ + "linear": d3_svg_lineLinear, + "linear-closed": d3_svg_lineLinearClosed, + "step": d3_svg_lineStep, + "step-before": d3_svg_lineStepBefore, + "step-after": d3_svg_lineStepAfter, + "basis": d3_svg_lineBasis, + "basis-open": d3_svg_lineBasisOpen, + "basis-closed": d3_svg_lineBasisClosed, + "bundle": d3_svg_lineBundle, + "cardinal": d3_svg_lineCardinal, + "cardinal-open": d3_svg_lineCardinalOpen, + "cardinal-closed": d3_svg_lineCardinalClosed, + "monotone": d3_svg_lineMonotone +}); + +d3_svg_lineInterpolators.forEach(function(key, value) { + value.key = key; + value.closed = /-closed$/.test(key); +}); + +// Linear interpolation; generates "L" commands. +function d3_svg_lineLinear(points) { + return points.length > 1 ? points.join("L") : points + "Z"; +} + +function d3_svg_lineLinearClosed(points) { + return points.join("L") + "Z"; +} + +// Step interpolation; generates "H" and "V" commands. +function d3_svg_lineStep(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ",", p[1]]; + while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]); + if (n > 1) path.push("H", p[0]); + return path.join(""); +} + +// Step interpolation; generates "H" and "V" commands. +function d3_svg_lineStepBefore(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ",", p[1]]; + while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); + return path.join(""); +} + +// Step interpolation; generates "H" and "V" commands. +function d3_svg_lineStepAfter(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ",", p[1]]; + while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); + return path.join(""); +} + +// Open cardinal spline interpolation; generates "C" commands. +function d3_svg_lineCardinalOpen(points, tension) { + return points.length < 4 + ? d3_svg_lineLinear(points) + : points[1] + d3_svg_lineHermite(points.slice(1, -1), + d3_svg_lineCardinalTangents(points, tension)); +} + +// Closed cardinal spline interpolation; generates "C" commands. +function d3_svg_lineCardinalClosed(points, tension) { + return points.length < 3 + ? d3_svg_lineLinearClosed(points) + : points[0] + d3_svg_lineHermite((points.push(points[0]), points), + d3_svg_lineCardinalTangents([points[points.length - 2]] + .concat(points, [points[1]]), tension)); +} + +// Cardinal spline interpolation; generates "C" commands. +function d3_svg_lineCardinal(points, tension) { + return points.length < 3 + ? d3_svg_lineLinear(points) + : points[0] + d3_svg_lineHermite(points, + d3_svg_lineCardinalTangents(points, tension)); +} + +// Hermite spline construction; generates "C" commands. +function d3_svg_lineHermite(points, tangents) { + if (tangents.length < 1 + || (points.length != tangents.length + && points.length != tangents.length + 2)) { + return d3_svg_lineLinear(points); + } + + var quad = points.length != tangents.length, + path = "", + p0 = points[0], + p = points[1], + t0 = tangents[0], + t = t0, + pi = 1; + + if (quad) { + path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + + "," + p[0] + "," + p[1]; + p0 = points[1]; + pi = 2; + } + + if (tangents.length > 1) { + t = tangents[1]; + p = points[pi]; + pi++; + path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + + "," + p[0] + "," + p[1]; + for (var i = 2; i < tangents.length; i++, pi++) { + p = points[pi]; + t = tangents[i]; + path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + + "," + p[0] + "," + p[1]; + } + } + + if (quad) { + var lp = points[pi]; + path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + + "," + lp[0] + "," + lp[1]; + } + + return path; +} + +// Generates tangents for a cardinal spline. +function d3_svg_lineCardinalTangents(points, tension) { + var tangents = [], + a = (1 - tension) / 2, + p0, + p1 = points[0], + p2 = points[1], + i = 1, + n = points.length; + while (++i < n) { + p0 = p1; + p1 = p2; + p2 = points[i]; + tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]); + } + return tangents; +} + +// B-spline interpolation; generates "C" commands. +function d3_svg_lineBasis(points) { + if (points.length < 3) return d3_svg_lineLinear(points); + var i = 1, + n = points.length, + pi = points[0], + x0 = pi[0], + y0 = pi[1], + px = [x0, x0, x0, (pi = points[1])[0]], + py = [y0, y0, y0, pi[1]], + path = [x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)]; + points.push(points[n - 1]); + while (++i <= n) { + pi = points[i]; + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + points.pop(); + path.push("L", pi); + return path.join(""); +} + +// Open B-spline interpolation; generates "C" commands. +function d3_svg_lineBasisOpen(points) { + if (points.length < 4) return d3_svg_lineLinear(points); + var path = [], + i = -1, + n = points.length, + pi, + px = [0], + py = [0]; + while (++i < 3) { + pi = points[i]; + px.push(pi[0]); + py.push(pi[1]); + } + path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); + --i; while (++i < n) { + pi = points[i]; + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); +} + +// Closed B-spline interpolation; generates "C" commands. +function d3_svg_lineBasisClosed(points) { + var path, + i = -1, + n = points.length, + m = n + 4, + pi, + px = [], + py = []; + while (++i < 4) { + pi = points[i % n]; + px.push(pi[0]); + py.push(pi[1]); + } + path = [ + d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) + ]; + --i; while (++i < m) { + pi = points[i % n]; + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); +} + +function d3_svg_lineBundle(points, tension) { + var n = points.length - 1; + if (n) { + var x0 = points[0][0], + y0 = points[0][1], + dx = points[n][0] - x0, + dy = points[n][1] - y0, + i = -1, + p, + t; + while (++i <= n) { + p = points[i]; + t = i / n; + p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); + p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); + } + } + return d3_svg_lineBasis(points); +} + +// Returns the dot product of the given four-element vectors. +function d3_svg_lineDot4(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; +} + +// Matrix to transform basis (b-spline) control points to bezier +// control points. Derived from FvD 11.2.8. +var d3_svg_lineBasisBezier1 = [0, 2/3, 1/3, 0], + d3_svg_lineBasisBezier2 = [0, 1/3, 2/3, 0], + d3_svg_lineBasisBezier3 = [0, 1/6, 2/3, 1/6]; + +// Pushes a "C" Bézier curve onto the specified path array, given the +// two specified four-element arrays which define the control points. +function d3_svg_lineBasisBezier(path, x, y) { + path.push( + "C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); +} + +// Computes the slope from points p0 to p1. +function d3_svg_lineSlope(p0, p1) { + return (p1[1] - p0[1]) / (p1[0] - p0[0]); +} + +// Compute three-point differences for the given points. +// http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Finite_difference +function d3_svg_lineFiniteDifferences(points) { + var i = 0, + j = points.length - 1, + m = [], + p0 = points[0], + p1 = points[1], + d = m[0] = d3_svg_lineSlope(p0, p1); + while (++i < j) { + m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2; + } + m[i] = d; + return m; +} + +// Interpolates the given points using Fritsch-Carlson Monotone cubic Hermite +// interpolation. Returns an array of tangent vectors. For details, see +// http://en.wikipedia.org/wiki/Monotone_cubic_interpolation +function d3_svg_lineMonotoneTangents(points) { + var tangents = [], + d, + a, + b, + s, + m = d3_svg_lineFiniteDifferences(points), + i = -1, + j = points.length - 1; + + // The first two steps are done by computing finite-differences: + // 1. Compute the slopes of the secant lines between successive points. + // 2. Initialize the tangents at every point as the average of the secants. + + // Then, for each segment… + while (++i < j) { + d = d3_svg_lineSlope(points[i], points[i + 1]); + + // 3. If two successive yk = y{k + 1} are equal (i.e., d is zero), then set + // mk = m{k + 1} = 0 as the spline connecting these points must be flat to + // preserve monotonicity. Ignore step 4 and 5 for those k. + + if (abs(d) < ε) { + m[i] = m[i + 1] = 0; + } else { + // 4. Let ak = mk / dk and bk = m{k + 1} / dk. + a = m[i] / d; + b = m[i + 1] / d; + + // 5. Prevent overshoot and ensure monotonicity by restricting the + // magnitude of vector to a circle of radius 3. + s = a * a + b * b; + if (s > 9) { + s = d * 3 / Math.sqrt(s); + m[i] = s * a; + m[i + 1] = s * b; + } + } + } + + // Compute the normalized tangent vector from the slopes. Note that if x is + // not monotonic, it's possible that the slope will be infinite, so we protect + // against NaN by setting the coordinate to zero. + i = -1; while (++i <= j) { + s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i])); + tangents.push([s || 0, m[i] * s || 0]); + } + + return tangents; +} + +function d3_svg_lineMonotone(points) { + return points.length < 3 + ? d3_svg_lineLinear(points) + : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/svg.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/svg.js new file mode 100644 index 000000000..374924821 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/svg.js @@ -0,0 +1 @@ +d3.svg = {}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/symbol.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/symbol.js new file mode 100644 index 000000000..6ac58bf8e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/svg/symbol.js @@ -0,0 +1,105 @@ +import "../arrays/map"; +import "../core/functor"; +import "../math/trigonometry"; +import "svg"; + +d3.svg.symbol = function() { + var type = d3_svg_symbolType, + size = d3_svg_symbolSize; + + function symbol(d, i) { + return (d3_svg_symbols.get(type.call(this, d, i)) + || d3_svg_symbolCircle) + (size.call(this, d, i)); + } + + symbol.type = function(x) { + if (!arguments.length) return type; + type = d3_functor(x); + return symbol; + }; + + // size of symbol in square pixels + symbol.size = function(x) { + if (!arguments.length) return size; + size = d3_functor(x); + return symbol; + }; + + return symbol; +}; + +function d3_svg_symbolSize() { + return 64; +} + +function d3_svg_symbolType() { + return "circle"; +} + +function d3_svg_symbolCircle(size) { + var r = Math.sqrt(size / π); + return "M0," + r + + "A" + r + "," + r + " 0 1,1 0," + (-r) + + "A" + r + "," + r + " 0 1,1 0," + r + + "Z"; +} + +// TODO cross-diagonal? +var d3_svg_symbols = d3.map({ + "circle": d3_svg_symbolCircle, + "cross": function(size) { + var r = Math.sqrt(size / 5) / 2; + return "M" + -3 * r + "," + -r + + "H" + -r + + "V" + -3 * r + + "H" + r + + "V" + -r + + "H" + 3 * r + + "V" + r + + "H" + r + + "V" + 3 * r + + "H" + -r + + "V" + r + + "H" + -3 * r + + "Z"; + }, + "diamond": function(size) { + var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), + rx = ry * d3_svg_symbolTan30; + return "M0," + -ry + + "L" + rx + ",0" + + " 0," + ry + + " " + -rx + ",0" + + "Z"; + }, + "square": function(size) { + var r = Math.sqrt(size) / 2; + return "M" + -r + "," + -r + + "L" + r + "," + -r + + " " + r + "," + r + + " " + -r + "," + r + + "Z"; + }, + "triangle-down": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), + ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + ry + + "L" + rx +"," + -ry + + " " + -rx + "," + -ry + + "Z"; + }, + "triangle-up": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), + ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + -ry + + "L" + rx +"," + ry + + " " + -rx + "," + ry + + "Z"; + } +}); + +d3.svg.symbolTypes = d3_svg_symbols.keys(); + +var d3_svg_symbolSqrt3 = Math.sqrt(3), + d3_svg_symbolTan30 = Math.tan(30 * d3_radians); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/day.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/day.js new file mode 100644 index 000000000..3b8e7dec0 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/day.js @@ -0,0 +1,21 @@ +import "interval"; +import "time"; +import "year"; + +d3_time.day = d3_time_interval(function(date) { + var day = new d3_date(2000, 0); + day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); + return day; +}, function(date, offset) { + date.setDate(date.getDate() + offset); +}, function(date) { + return date.getDate() - 1; +}); + +d3_time.days = d3_time.day.range; +d3_time.days.utc = d3_time.day.utc.range; + +d3_time.dayOfYear = function(date) { + var year = d3_time.year(date); + return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format-iso.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format-iso.js new file mode 100644 index 000000000..1bcd860ce --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format-iso.js @@ -0,0 +1,19 @@ +import "format"; +import "format-utc"; + +var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ"); + +d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") + ? d3_time_formatIsoNative + : d3_time_formatIso; + +function d3_time_formatIsoNative(date) { + return date.toISOString(); +} + +d3_time_formatIsoNative.parse = function(string) { + var date = new Date(string); + return isNaN(date) ? null : date; +}; + +d3_time_formatIsoNative.toString = d3_time_formatIso.toString; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format-utc.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format-utc.js new file mode 100644 index 000000000..f5b4808c0 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format-utc.js @@ -0,0 +1,3 @@ +import "format"; + +var d3_time_formatUtc = d3_time_format.utc; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format.js new file mode 100644 index 000000000..3ad7f5f6d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/format.js @@ -0,0 +1,4 @@ +import "../locale/en-US"; +import "time"; + +var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/hour.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/hour.js new file mode 100644 index 000000000..0c6011d28 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/hour.js @@ -0,0 +1,14 @@ +import "interval"; +import "time"; + +d3_time.hour = d3_time_interval(function(date) { + var timezone = date.getTimezoneOffset() / 60; + return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5); +}, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 36e5); // DST breaks setHours +}, function(date) { + return date.getHours(); +}); + +d3_time.hours = d3_time.hour.range; +d3_time.hours.utc = d3_time.hour.utc.range; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/index.js new file mode 100644 index 000000000..b041fc6dd --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/index.js @@ -0,0 +1,14 @@ +import "time"; +import "format"; +import "format-utc"; +import "format-iso"; +import "interval"; +import "second"; +import "minute"; +import "hour"; +import "day"; +import "week"; +import "month"; +import "year"; +import "scale"; +import "scale-utc"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/interval.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/interval.js new file mode 100644 index 000000000..b177b2001 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/interval.js @@ -0,0 +1,71 @@ +import "time"; + +function d3_time_interval(local, step, number) { + + function round(date) { + var d0 = local(date), d1 = offset(d0, 1); + return date - d0 < d1 - date ? d0 : d1; + } + + function ceil(date) { + step(date = local(new d3_date(date - 1)), 1); + return date; + } + + function offset(date, k) { + step(date = new d3_date(+date), k); + return date; + } + + function range(t0, t1, dt) { + var time = ceil(t0), times = []; + if (dt > 1) { + while (time < t1) { + if (!(number(time) % dt)) times.push(new Date(+time)); + step(time, 1); + } + } else { + while (time < t1) times.push(new Date(+time)), step(time, 1); + } + return times; + } + + function range_utc(t0, t1, dt) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = t0; + return range(utc, t1, dt); + } finally { + d3_date = Date; + } + } + + local.floor = local; + local.round = round; + local.ceil = ceil; + local.offset = offset; + local.range = range; + + var utc = local.utc = d3_time_interval_utc(local); + utc.floor = utc; + utc.round = d3_time_interval_utc(round); + utc.ceil = d3_time_interval_utc(ceil); + utc.offset = d3_time_interval_utc(offset); + utc.range = range_utc; + + return local; +} + +function d3_time_interval_utc(method) { + return function(date, k) { + try { + d3_date = d3_date_utc; + var utc = new d3_date_utc(); + utc._ = date; + return method(utc, k)._; + } finally { + d3_date = Date; + } + }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/minute.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/minute.js new file mode 100644 index 000000000..ad081f68c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/minute.js @@ -0,0 +1,13 @@ +import "interval"; +import "time"; + +d3_time.minute = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 6e4) * 6e4); +}, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 6e4); // DST breaks setMinutes +}, function(date) { + return date.getMinutes(); +}); + +d3_time.minutes = d3_time.minute.range; +d3_time.minutes.utc = d3_time.minute.utc.range; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/month.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/month.js new file mode 100644 index 000000000..577d5b20f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/month.js @@ -0,0 +1,16 @@ +import "day"; +import "interval"; +import "time"; + +d3_time.month = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setDate(1); + return date; +}, function(date, offset) { + date.setMonth(date.getMonth() + offset); +}, function(date) { + return date.getMonth(); +}); + +d3_time.months = d3_time.month.range; +d3_time.months.utc = d3_time.month.utc.range; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/scale-utc.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/scale-utc.js new file mode 100644 index 000000000..1c6e30fe6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/scale-utc.js @@ -0,0 +1,25 @@ +import "../core/true"; +import "../scale/linear"; +import "scale"; +import "format-utc"; + +var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) { + return [m[0].utc, m[1]]; +}); + +var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ + [".%L", function(d) { return d.getUTCMilliseconds(); }], + [":%S", function(d) { return d.getUTCSeconds(); }], + ["%I:%M", function(d) { return d.getUTCMinutes(); }], + ["%I %p", function(d) { return d.getUTCHours(); }], + ["%a %d", function(d) { return d.getUTCDay() && d.getUTCDate() != 1; }], + ["%b %d", function(d) { return d.getUTCDate() != 1; }], + ["%B", function(d) { return d.getUTCMonth(); }], + ["%Y", d3_true] +]); + +d3_time_scaleUtcMethods.year = d3_time.year.utc; + +d3_time.scale.utc = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/scale.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/scale.js new file mode 100644 index 000000000..90a23df9e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/scale.js @@ -0,0 +1,155 @@ +import "../arrays/bisect"; +import "../arrays/range"; +import "../core/identity"; +import "../core/true"; +import "../scale/linear"; +import "../scale/nice"; +import "format"; +import "day"; +import "hour"; +import "minute"; +import "month"; +import "second"; +import "time"; +import "week"; +import "year"; + +function d3_time_scale(linear, methods, format) { + + function scale(x) { + return linear(x); + } + + scale.invert = function(x) { + return d3_time_scaleDate(linear.invert(x)); + }; + + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(d3_time_scaleDate); + linear.domain(x); + return scale; + }; + + function tickMethod(extent, count) { + var span = extent[1] - extent[0], + target = span / count, + i = d3.bisect(d3_time_scaleSteps, target); + return i == d3_time_scaleSteps.length ? [methods.year, d3_scale_linearTickRange(extent.map(function(d) { return d / 31536e6; }), count)[2]] + : !i ? [d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2]] + : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i]; + } + + scale.nice = function(interval, skip) { + var domain = scale.domain(), + extent = d3_scaleExtent(domain), + method = interval == null ? tickMethod(extent, 10) + : typeof interval === "number" && tickMethod(extent, interval); + + if (method) interval = method[0], skip = method[1]; + + function skipped(date) { + return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length; + } + + return scale.domain(d3_scale_nice(domain, skip > 1 ? { + floor: function(date) { + while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1); + return date; + }, + ceil: function(date) { + while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1); + return date; + } + } : interval)); + }; + + scale.ticks = function(interval, skip) { + var extent = d3_scaleExtent(scale.domain()), + method = interval == null ? tickMethod(extent, 10) + : typeof interval === "number" ? tickMethod(extent, interval) + : !interval.range && [{range: interval}, skip]; // assume deprecated range function + + if (method) interval = method[0], skip = method[1]; + + return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip); // inclusive upper bound + }; + + scale.tickFormat = function() { + return format; + }; + + scale.copy = function() { + return d3_time_scale(linear.copy(), methods, format); + }; + + return d3_scale_linearRebind(scale, linear); +} + +function d3_time_scaleDate(t) { + return new Date(t); +} + +var d3_time_scaleSteps = [ + 1e3, // 1-second + 5e3, // 5-second + 15e3, // 15-second + 3e4, // 30-second + 6e4, // 1-minute + 3e5, // 5-minute + 9e5, // 15-minute + 18e5, // 30-minute + 36e5, // 1-hour + 108e5, // 3-hour + 216e5, // 6-hour + 432e5, // 12-hour + 864e5, // 1-day + 1728e5, // 2-day + 6048e5, // 1-week + 2592e6, // 1-month + 7776e6, // 3-month + 31536e6 // 1-year +]; + +var d3_time_scaleLocalMethods = [ + [d3_time.second, 1], + [d3_time.second, 5], + [d3_time.second, 15], + [d3_time.second, 30], + [d3_time.minute, 1], + [d3_time.minute, 5], + [d3_time.minute, 15], + [d3_time.minute, 30], + [d3_time.hour, 1], + [d3_time.hour, 3], + [d3_time.hour, 6], + [d3_time.hour, 12], + [d3_time.day, 1], + [d3_time.day, 2], + [d3_time.week, 1], + [d3_time.month, 1], + [d3_time.month, 3], + [d3_time.year, 1] +]; + +var d3_time_scaleLocalFormat = d3_time_format.multi([ + [".%L", function(d) { return d.getMilliseconds(); }], + [":%S", function(d) { return d.getSeconds(); }], + ["%I:%M", function(d) { return d.getMinutes(); }], + ["%I %p", function(d) { return d.getHours(); }], + ["%a %d", function(d) { return d.getDay() && d.getDate() != 1; }], + ["%b %d", function(d) { return d.getDate() != 1; }], + ["%B", function(d) { return d.getMonth(); }], + ["%Y", d3_true] +]); + +var d3_time_scaleMilliseconds = { + range: function(start, stop, step) { return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate); }, + floor: d3_identity, + ceil: d3_identity +}; + +d3_time_scaleLocalMethods.year = d3_time.year; + +d3_time.scale = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/second.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/second.js new file mode 100644 index 000000000..745c4b911 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/second.js @@ -0,0 +1,13 @@ +import "interval"; +import "time"; + +d3_time.second = d3_time_interval(function(date) { + return new d3_date(Math.floor(date / 1e3) * 1e3); +}, function(date, offset) { + date.setTime(date.getTime() + Math.floor(offset) * 1e3); // DST breaks setSeconds +}, function(date) { + return date.getSeconds(); +}); + +d3_time.seconds = d3_time.second.range; +d3_time.seconds.utc = d3_time.second.utc.range; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/time.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/time.js new file mode 100644 index 000000000..ddfc018dd --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/time.js @@ -0,0 +1,33 @@ +var d3_time = d3.time = {}, + d3_date = Date; + +function d3_date_utc() { + this._ = new Date(arguments.length > 1 + ? Date.UTC.apply(this, arguments) + : arguments[0]); +} + +d3_date_utc.prototype = { + getDate: function() { return this._.getUTCDate(); }, + getDay: function() { return this._.getUTCDay(); }, + getFullYear: function() { return this._.getUTCFullYear(); }, + getHours: function() { return this._.getUTCHours(); }, + getMilliseconds: function() { return this._.getUTCMilliseconds(); }, + getMinutes: function() { return this._.getUTCMinutes(); }, + getMonth: function() { return this._.getUTCMonth(); }, + getSeconds: function() { return this._.getUTCSeconds(); }, + getTime: function() { return this._.getTime(); }, + getTimezoneOffset: function() { return 0; }, + valueOf: function() { return this._.valueOf(); }, + setDate: function() { d3_time_prototype.setUTCDate.apply(this._, arguments); }, + setDay: function() { d3_time_prototype.setUTCDay.apply(this._, arguments); }, + setFullYear: function() { d3_time_prototype.setUTCFullYear.apply(this._, arguments); }, + setHours: function() { d3_time_prototype.setUTCHours.apply(this._, arguments); }, + setMilliseconds: function() { d3_time_prototype.setUTCMilliseconds.apply(this._, arguments); }, + setMinutes: function() { d3_time_prototype.setUTCMinutes.apply(this._, arguments); }, + setMonth: function() { d3_time_prototype.setUTCMonth.apply(this._, arguments); }, + setSeconds: function() { d3_time_prototype.setUTCSeconds.apply(this._, arguments); }, + setTime: function() { d3_time_prototype.setTime.apply(this._, arguments); } +}; + +var d3_time_prototype = Date.prototype; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/week.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/week.js new file mode 100644 index 000000000..8fdfe136e --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/week.js @@ -0,0 +1,31 @@ +import "day"; +import "interval"; +import "time"; +import "year"; + +["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"].forEach(function(day, i) { + i = 7 - i; + + var interval = d3_time[day] = d3_time_interval(function(date) { + (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7); + return date; + }, function(date, offset) { + date.setDate(date.getDate() + Math.floor(offset) * 7); + }, function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i); + }); + + d3_time[day + "s"] = interval.range; + d3_time[day + "s"].utc = interval.utc.range; + + d3_time[day + "OfYear"] = function(date) { + var day = d3_time.year(date).getDay(); + return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7); + }; +}); + +d3_time.week = d3_time.sunday; +d3_time.weeks = d3_time.sunday.range; +d3_time.weeks.utc = d3_time.sunday.utc.range; +d3_time.weekOfYear = d3_time.sundayOfYear; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/year.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/year.js new file mode 100644 index 000000000..3ac02a256 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/time/year.js @@ -0,0 +1,16 @@ +import "day"; +import "interval"; +import "time"; + +d3_time.year = d3_time_interval(function(date) { + date = d3_time.day(date); + date.setMonth(0, 1); + return date; +}, function(date, offset) { + date.setFullYear(date.getFullYear() + offset); +}, function(date) { + return date.getFullYear(); +}); + +d3_time.years = d3_time.year.range; +d3_time.years.utc = d3_time.year.utc.range; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/attr.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/attr.js new file mode 100644 index 000000000..31c77f146 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/attr.js @@ -0,0 +1,58 @@ +import "../core/ns"; +import "../interpolate/interpolate"; +import "../interpolate/transform"; +import "transition"; +import "tween"; + +d3_transitionPrototype.attr = function(nameNS, value) { + if (arguments.length < 2) { + + // For attr(object), the object specifies the names and values of the + // attributes to transition. The values may be functions that are + // evaluated for each element. + for (value in nameNS) this.attr(value, nameNS[value]); + return this; + } + + var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate, + name = d3.ns.qualify(nameNS); + + // For attr(string, null), remove the attribute with the specified name. + function attrNull() { + this.removeAttribute(name); + } + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + + // For attr(string, string), set the attribute with the specified name. + function attrTween(b) { + return b == null ? attrNull : (b += "", function() { + var a = this.getAttribute(name), i; + return a !== b && (i = interpolate(a, b), function(t) { this.setAttribute(name, i(t)); }); + }); + } + function attrTweenNS(b) { + return b == null ? attrNullNS : (b += "", function() { + var a = this.getAttributeNS(name.space, name.local), i; + return a !== b && (i = interpolate(a, b), function(t) { this.setAttributeNS(name.space, name.local, i(t)); }); + }); + } + + return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween); +}; + +d3_transitionPrototype.attrTween = function(nameNS, tween) { + var name = d3.ns.qualify(nameNS); + + function attrTween(d, i) { + var f = tween.call(this, d, i, this.getAttribute(name)); + return f && function(t) { this.setAttribute(name, f(t)); }; + } + function attrTweenNS(d, i) { + var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local)); + return f && function(t) { this.setAttributeNS(name.space, name.local, f(t)); }; + } + + return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/delay.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/delay.js new file mode 100644 index 000000000..068e04071 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/delay.js @@ -0,0 +1,10 @@ +import "../selection/each"; +import "transition"; + +d3_transitionPrototype.delay = function(value) { + var id = this.id, ns = this.namespace; + if (arguments.length < 1) return this.node()[ns][id].delay; + return d3_selection_each(this, typeof value === "function" + ? function(node, i, j) { node[ns][id].delay = +value.call(node, node.__data__, i, j); } + : (value = +value, function(node) { node[ns][id].delay = value; })); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/duration.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/duration.js new file mode 100644 index 000000000..c9db2dc1a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/duration.js @@ -0,0 +1,10 @@ +import "../selection/each"; +import "transition"; + +d3_transitionPrototype.duration = function(value) { + var id = this.id, ns = this.namespace; + if (arguments.length < 1) return this.node()[ns][id].duration; + return d3_selection_each(this, typeof value === "function" + ? function(node, i, j) { node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j)); } + : (value = Math.max(1, value), function(node) { node[ns][id].duration = value; })); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/each.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/each.js new file mode 100644 index 000000000..f1b2057a9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/each.js @@ -0,0 +1,26 @@ +import "../selection/each"; +import "transition"; + +d3_transitionPrototype.each = function(type, listener) { + var id = this.id, ns = this.namespace; + if (arguments.length < 2) { + var inherit = d3_transitionInherit, + inheritId = d3_transitionInheritId; + try { + d3_transitionInheritId = id; + d3_selection_each(this, function(node, i, j) { + d3_transitionInherit = node[ns][id]; + type.call(node, node.__data__, i, j); + }); + } finally { + d3_transitionInherit = inherit; + d3_transitionInheritId = inheritId; + } + } else { + d3_selection_each(this, function(node) { + var transition = node[ns][id]; + (transition.event || (transition.event = d3.dispatch("start", "end", "interrupt"))).on(type, listener); + }); + } + return this; +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/ease.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/ease.js new file mode 100644 index 000000000..5c3564d46 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/ease.js @@ -0,0 +1,10 @@ +import "../interpolate/ease"; +import "../selection/each"; +import "transition"; + +d3_transitionPrototype.ease = function(value) { + var id = this.id, ns = this.namespace; + if (arguments.length < 1) return this.node()[ns][id].ease; + if (typeof value !== "function") value = d3.ease.apply(d3, arguments); + return d3_selection_each(this, function(node) { node[ns][id].ease = value; }); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/filter.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/filter.js new file mode 100644 index 000000000..7e0e13a34 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/filter.js @@ -0,0 +1,22 @@ +import "../selection/filter"; +import "transition"; + +d3_transitionPrototype.filter = function(filter) { + var subgroups = [], + subgroup, + group, + node; + + if (typeof filter !== "function") filter = d3_selection_filter(filter); + + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { + subgroup.push(node); + } + } + } + + return d3_transition(subgroups, this.namespace, this.id); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/index.js new file mode 100644 index 000000000..c2a6702ff --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/index.js @@ -0,0 +1 @@ +import "transition"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/remove.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/remove.js new file mode 100644 index 000000000..8e6e56976 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/remove.js @@ -0,0 +1,9 @@ +import "transition"; + +d3_transitionPrototype.remove = function() { + var ns = this.namespace; + return this.each("end.transition", function() { + var p; + if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this); + }); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/select.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/select.js new file mode 100644 index 000000000..e537368f8 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/select.js @@ -0,0 +1,28 @@ +import "../selection/select"; +import "transition"; + +d3_transitionPrototype.select = function(selector) { + var id = this.id, + ns = this.namespace, + subgroups = [], + subgroup, + subnode, + node; + + selector = d3_selection_selector(selector); + + for (var j = -1, m = this.length; ++j < m;) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + d3_transitionNode(subnode, i, ns, id, node[ns][id]); + subgroup.push(subnode); + } else { + subgroup.push(null); + } + } + } + + return d3_transition(subgroups, ns, id); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/selectAll.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/selectAll.js new file mode 100644 index 000000000..5500d90f1 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/selectAll.js @@ -0,0 +1,31 @@ +import "../selection/selectAll"; +import "transition"; + +d3_transitionPrototype.selectAll = function(selector) { + var id = this.id, + ns = this.namespace, + subgroups = [], + subgroup, + subnodes, + node, + subnode, + transition; + + selector = d3_selection_selectorAll(selector); + + for (var j = -1, m = this.length; ++j < m;) { + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + transition = node[ns][id]; + subnodes = selector.call(node, node.__data__, i, j); + subgroups.push(subgroup = []); + for (var k = -1, o = subnodes.length; ++k < o;) { + if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition); + subgroup.push(subnode); + } + } + } + } + + return d3_transition(subgroups, ns, id); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/style.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/style.js new file mode 100644 index 000000000..313c2a4c4 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/style.js @@ -0,0 +1,53 @@ +import "../core/document"; +import "../interpolate/interpolate"; +import "transition"; +import "tween"; + +d3_transitionPrototype.style = function(name, value, priority) { + var n = arguments.length; + if (n < 3) { + + // For style(object) or style(object, string), the object specifies the + // names and values of the attributes to set or remove. The values may be + // functions that are evaluated for each element. The optional string + // specifies the priority. + if (typeof name !== "string") { + if (n < 2) value = ""; + for (priority in name) this.style(priority, name[priority], value); + return this; + } + + // For style(string, string) or style(string, function), use the default + // priority. The priority is ignored for style(string, null). + priority = ""; + } + + // For style(name, null) or style(name, null, priority), remove the style + // property with the specified name. The priority is ignored. + function styleNull() { + this.style.removeProperty(name); + } + + // For style(name, string) or style(name, string, priority), set the style + // property with the specified name, using the specified priority. + // Otherwise, a name, value and priority are specified, and handled as below. + function styleString(b) { + return b == null ? styleNull : (b += "", function() { + var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i; + return a !== b && (i = d3_interpolate(a, b), function(t) { this.style.setProperty(name, i(t), priority); }); + }); + } + + return d3_transition_tween(this, "style." + name, value, styleString); +}; + +d3_transitionPrototype.styleTween = function(name, tween, priority) { + if (arguments.length < 3) priority = ""; + + function styleTween(d, i) { + var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name)); + return f && function(t) { this.style.setProperty(name, f(t), priority); }; + } + + return this.tween("style." + name, styleTween); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/subtransition.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/subtransition.js new file mode 100644 index 000000000..7b2229e8d --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/subtransition.js @@ -0,0 +1,25 @@ +import "transition"; + +d3_transitionPrototype.transition = function() { + var id0 = this.id, + id1 = ++d3_transitionId, + ns = this.namespace, + subgroups = [], + subgroup, + group, + node, + transition; + + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + if (node = group[i]) { + transition = node[ns][id0]; + d3_transitionNode(node, i, ns, id1, {time: transition.time, ease: transition.ease, delay: transition.delay + transition.duration, duration: transition.duration}); + } + subgroup.push(node); + } + } + + return d3_transition(subgroups, ns, id1); +}; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/text.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/text.js new file mode 100644 index 000000000..0e2455a27 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/text.js @@ -0,0 +1,11 @@ +import "transition"; +import "tween"; + +d3_transitionPrototype.text = function(value) { + return d3_transition_tween(this, "text", value, d3_transition_text); +}; + +function d3_transition_text(b) { + if (b == null) b = ""; + return function() { this.textContent = b; }; +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/transition.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/transition.js new file mode 100644 index 000000000..15af4e06f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/transition.js @@ -0,0 +1,161 @@ +import "../arrays/map"; +import "../core/subclass"; +import "../core/true"; +import "../event/dispatch"; +import "../event/timer"; +import "../selection/selection"; +import "../selection/transition"; +import "../selection/interrupt"; + +function d3_transition(groups, ns, id) { + d3_subclass(groups, d3_transitionPrototype); + + // Note: read-only! + groups.namespace = ns; + groups.id = id; + + return groups; +} + +var d3_transitionPrototype = [], + d3_transitionId = 0, + d3_transitionInheritId, + d3_transitionInherit; + +d3_transitionPrototype.call = d3_selectionPrototype.call; +d3_transitionPrototype.empty = d3_selectionPrototype.empty; +d3_transitionPrototype.node = d3_selectionPrototype.node; +d3_transitionPrototype.size = d3_selectionPrototype.size; + +d3.transition = function(selection, name) { + return selection && selection.transition + ? (d3_transitionInheritId ? selection.transition(name) : selection) + : d3.selection().transition(selection); +}; + +d3.transition.prototype = d3_transitionPrototype; + +import "select"; +import "selectAll"; +import "filter"; +import "attr"; +import "style"; +import "text"; +import "remove"; +import "ease"; +import "delay"; +import "duration"; +import "each"; +import "subtransition"; +import "tween"; + +function d3_transitionNamespace(name) { + return name == null ? "__transition__" : "__transition_" + name + "__"; +} + +function d3_transitionNode(node, i, ns, id, inherit) { + var lock = node[ns] || (node[ns] = {active: 0, count: 0}), + transition = lock[id], + time, + timer, + duration, + ease, + tweens; + + function schedule(elapsed) { + var delay = transition.delay; + timer.t = delay + time; + if (delay <= elapsed) return start(elapsed - delay); + timer.c = start; + } + + function start(elapsed) { + + // Interrupt the active transition, if any. + var activeId = lock.active, + active = lock[activeId]; + if (active) { + active.timer.c = null; + active.timer.t = NaN; + --lock.count; + delete lock[activeId]; + active.event && active.event.interrupt.call(node, node.__data__, active.index); + } + + // Cancel any pre-empted transitions. No interrupt event is dispatched + // because the cancelled transitions never started. + for (var cancelId in lock) { + if (+cancelId < id) { + var cancel = lock[cancelId]; + cancel.timer.c = null; + cancel.timer.t = NaN; + --lock.count; + delete lock[cancelId]; + } + } + + // Defer tween invocation to end of current frame; see mbostock/d3#1576. + // Note that this transition may be canceled before then! + // This must be scheduled before the start event; see d3/d3-transition#16! + timer.c = tick; + d3_timer(function() { + if (timer.c && tick(elapsed || 1)) { + timer.c = null; + timer.t = NaN; + } + return 1; + }, 0, time); + + // Start the transition. + lock.active = id; + transition.event && transition.event.start.call(node, node.__data__, i); + + // Initialize the tweens. + tweens = []; + transition.tween.forEach(function(key, value) { + if (value = value.call(node, node.__data__, i)) { + tweens.push(value); + } + }); + + // Defer capture to allow tween initialization to set ease & duration. + ease = transition.ease; + duration = transition.duration; + } + + function tick(elapsed) { + var t = elapsed / duration, + e = ease(t), + n = tweens.length; + + while (n > 0) { + tweens[--n].call(node, e); + } + + if (t >= 1) { + transition.event && transition.event.end.call(node, node.__data__, i); + if (--lock.count) delete lock[id]; + else delete node[ns]; + return 1; + } + } + + if (!transition) { + time = inherit.time; + timer = d3_timer(schedule, 0, time); + + transition = lock[id] = { + tween: new d3_Map, + time: time, + timer: timer, + delay: inherit.delay, + duration: inherit.duration, + ease: inherit.ease, + index: i + }; + + inherit = null; // allow gc + + ++lock.count; + } +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/tween.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/tween.js new file mode 100644 index 000000000..108daa96b --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/transition/tween.js @@ -0,0 +1,17 @@ +import "../selection/each"; +import "transition"; + +d3_transitionPrototype.tween = function(name, tween) { + var id = this.id, ns = this.namespace; + if (arguments.length < 2) return this.node()[ns][id].tween.get(name); + return d3_selection_each(this, tween == null + ? function(node) { node[ns][id].tween.remove(name); } + : function(node) { node[ns][id].tween.set(name, tween); }); +}; + +function d3_transition_tween(groups, name, value, tween) { + var id = groups.id, ns = groups.namespace; + return d3_selection_each(groups, typeof value === "function" + ? function(node, i, j) { node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j))); } + : (value = tween(value), function(node) { node[ns][id].tween.set(name, value); })); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/html.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/html.js new file mode 100644 index 000000000..d42283b9f --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/html.js @@ -0,0 +1,12 @@ +import "../core/document"; +import "xhr"; + +d3.html = function(url, callback) { + return d3_xhr(url, "text/html", d3_html, callback); +}; + +function d3_html(request) { + var range = d3_document.createRange(); + range.selectNode(d3_document.body); + return range.createContextualFragment(request.responseText); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/index.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/index.js new file mode 100644 index 000000000..c71b4666a --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/index.js @@ -0,0 +1,5 @@ +import "xhr"; +import "text"; +import "json"; +import "html"; +import "xml"; diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/json.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/json.js new file mode 100644 index 000000000..f51bc2c04 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/json.js @@ -0,0 +1,9 @@ +import "xhr"; + +d3.json = function(url, callback) { + return d3_xhr(url, "application/json", d3_json, callback); +}; + +function d3_json(request) { + return JSON.parse(request.responseText); +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/text.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/text.js new file mode 100644 index 000000000..1f51e3dca --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/text.js @@ -0,0 +1,5 @@ +import "xhr"; + +d3.text = d3_xhrType(function(request) { + return request.responseText; +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/xhr.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/xhr.js new file mode 100644 index 000000000..d0a87a0d9 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/xhr.js @@ -0,0 +1,126 @@ +import "../core/array"; +import "../core/document"; +import "../core/identity"; +import "../core/rebind"; +import "../event/dispatch"; + +d3.xhr = d3_xhrType(d3_identity); + +function d3_xhrType(response) { + return function(url, mimeType, callback) { + if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, mimeType = null; + return d3_xhr(url, mimeType, response, callback); + }; +} + +function d3_xhr(url, mimeType, response, callback) { + var xhr = {}, + dispatch = d3.dispatch("beforesend", "progress", "load", "error"), + headers = {}, + request = new XMLHttpRequest, + responseType = null; + + // If IE does not support CORS, use XDomainRequest. + if (this.XDomainRequest + && !("withCredentials" in request) + && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest; + + "onload" in request + ? request.onload = request.onerror = respond + : request.onreadystatechange = function() { request.readyState > 3 && respond(); }; + + function respond() { + var status = request.status, result; + if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) { + try { + result = response.call(xhr, request); + } catch (e) { + dispatch.error.call(xhr, e); + return; + } + dispatch.load.call(xhr, result); + } else { + dispatch.error.call(xhr, request); + } + } + + request.onprogress = function(event) { + var o = d3.event; + d3.event = event; + try { dispatch.progress.call(xhr, request); } + finally { d3.event = o; } + }; + + xhr.header = function(name, value) { + name = (name + "").toLowerCase(); + if (arguments.length < 2) return headers[name]; + if (value == null) delete headers[name]; + else headers[name] = value + ""; + return xhr; + }; + + // If mimeType is non-null and no Accept header is set, a default is used. + xhr.mimeType = function(value) { + if (!arguments.length) return mimeType; + mimeType = value == null ? null : value + ""; + return xhr; + }; + + // Specifies what type the response value should take; + // for instance, arraybuffer, blob, document, or text. + xhr.responseType = function(value) { + if (!arguments.length) return responseType; + responseType = value; + return xhr; + }; + + // Specify how to convert the response content to a specific type; + // changes the callback value on "load" events. + xhr.response = function(value) { + response = value; + return xhr; + }; + + // Convenience methods. + ["get", "post"].forEach(function(method) { + xhr[method] = function() { + return xhr.send.apply(xhr, [method].concat(d3_array(arguments))); + }; + }); + + // If callback is non-null, it will be used for error and load events. + xhr.send = function(method, data, callback) { + if (arguments.length === 2 && typeof data === "function") callback = data, data = null; + request.open(method, url, true); + if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*"; + if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]); + if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType); + if (responseType != null) request.responseType = responseType; + if (callback != null) xhr.on("error", callback).on("load", function(request) { callback(null, request); }); + dispatch.beforesend.call(xhr, request); + request.send(data == null ? null : data); + return xhr; + }; + + xhr.abort = function() { + request.abort(); + return xhr; + }; + + d3.rebind(xhr, dispatch, "on"); + + return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback)); +}; + +function d3_xhr_fixCallback(callback) { + return callback.length === 1 + ? function(error, request) { callback(error == null ? request : null); } + : callback; +} + +function d3_xhrHasResponse(request) { + var type = request.responseType; + return type && type !== "text" + ? request.response // null on error + : request.responseText; // "" on error +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/xml.js b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/xml.js new file mode 100644 index 000000000..09c18e217 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/d3/src/xhr/xml.js @@ -0,0 +1,5 @@ +import "xhr"; + +d3.xml = d3_xhrType(function(request) { + return request.responseXML; +}); diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.babelrc b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.babelrc new file mode 100644 index 000000000..31a5b4395 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.babelrc @@ -0,0 +1,7 @@ +{ + "plugins": [ + "transform-react-jsx", + "add-module-exports" + ], + "presets": ["es2015"] +} diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.npmignore b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.npmignore new file mode 100644 index 000000000..7a1e5f2b8 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.npmignore @@ -0,0 +1,11 @@ +*.svg +.eslintignore +.eslintrc.js +.overcommit.yml +.projections.json +CHANGELOG.md +karma.conf.js +spec +src +tests.webpack.js +webpack.conf.js diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.travis.yml b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.travis.yml new file mode 100644 index 000000000..1b1aeadd3 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: + - '0.10' +before_install: + - npm install -g npm@2 +before_script: + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/CHANGELOG.md b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/CHANGELOG.md new file mode 100644 index 000000000..13d80a9a5 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/CHANGELOG.md @@ -0,0 +1,38 @@ +## master (unreleased) + +## 0.4.1 +- Use `prop-types` package instead of `React.PropTypes` + +## 0.4.0 +- Relax dependency on React to allow v15 + +## 0.3.1 +- Make bundled pie-chart.js easier to import + +## 0.3.0 + +- Upgrade Babel from 5 to 6 +- Convert to ES2015 module +- Convert to ES2015 class + +## 0.2.2 + +- Fix centering when rendering as a circle + +## 0.2.1 + +- Update for React 0.14 +- Move `react` from `dependencies` to `peerDependencies` + +## 0.2.0 + +- Reduce jaggedness from thin segments +- Remove size prop + +## 0.1.1 + +- Fix npm dependencies + +## 0.1.0 + +- Initial release diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/LICENSE b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/LICENSE new file mode 100644 index 000000000..41ec79d0c --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Brigade + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/README.md b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/README.md new file mode 100644 index 000000000..ac1858389 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/README.md @@ -0,0 +1,54 @@ +# React Simple Pie Chart + +[![npm version](https://badge.fury.io/js/react-simple-pie-chart.svg)](http://badge.fury.io/js/react-simple-pie-chart) +[![Build Status](https://travis-ci.org/brigade/react-simple-pie-chart.svg?branch=master)](https://travis-ci.org/brigade/react-simple-pie-chart) + +Need a simple `` pie chart and don't want to bring in any heavy +dependencies? You've come to the right place. + +[Demo](http://jsfiddle.net/qgxyw3mp/3/) + +![Example pie +chart](http://brigade.github.io/react-simple-pie-chart/example-pie-chart.svg) + +## Installation + +### npm + +```bash +npm install react-simple-pie-chart --save +``` + +## Usage + +```javascript +import PieChart from 'react-simple-pie-chart'; +``` + +```javascript + +``` + +## Code of conduct + +This project adheres to the [Open Code of Conduct][code-of-conduct]. By +participating, you are expected to honor this code. + +[code-of-conduct]: https://github.com/brigade/code-of-conduct + +## License + +[MIT][mit-license] + +[mit-license]: ./LICENSE diff --git a/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/package.json b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/package.json new file mode 100644 index 000000000..07828a7c6 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/node_modules/react-simple-pie-chart/package.json @@ -0,0 +1,142 @@ +{ + "_args": [ + [ + { + "raw": "react-simple-pie-chart", + "scope": null, + "escapedName": "react-simple-pie-chart", + "name": "react-simple-pie-chart", + "rawSpec": "", + "spec": "latest", + "type": "tag" + }, + "/Users/mathisonian/projects/idyll/idyll/packages/idyll-cli/test/test-project/src" + ] + ], + "_from": "react-simple-pie-chart@latest", + "_id": "react-simple-pie-chart@0.4.1", + "_inCache": true, + "_location": "/react-simple-pie-chart", + "_nodeVersion": "6.1.0", + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/react-simple-pie-chart-0.4.1.tgz_1494319311158_0.9599986257962883" + }, + "_npmUser": { + "name": "trotzig", + "email": "henric.trotzig@gmail.com" + }, + "_npmVersion": "3.8.6", + "_phantomChildren": {}, + "_requested": { + "raw": "react-simple-pie-chart", + "scope": null, + "escapedName": "react-simple-pie-chart", + "name": "react-simple-pie-chart", + "rawSpec": "", + "spec": "latest", + "type": "tag" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/react-simple-pie-chart/-/react-simple-pie-chart-0.4.1.tgz", + "_shasum": "d1f4e09238b4c9ea9faa55aaf3df5721c56d26c6", + "_shrinkwrap": null, + "_spec": "react-simple-pie-chart", + "_where": "/Users/mathisonian/projects/idyll/idyll/packages/idyll-cli/test/test-project/src", + "author": { + "name": "Brigade Engineering" + }, + "bugs": { + "url": "https://github.com/brigade/react-simple-pie-chart/issues" + }, + "contributors": [ + { + "name": "Joe Lencioni" + } + ], + "dependencies": {}, + "description": "A React component to generate simple pie charts.", + "devDependencies": { + "babel": "^6.0.0", + "babel-cli": "^6.0.0", + "babel-core": "^6.0.0", + "babel-loader": "^6.0.0", + "babel-plugin-add-module-exports": "^0.1.2", + "babel-plugin-transform-react-jsx": "^6.0.0", + "babel-preset-es2015": "^6.0.0", + "eslint": "^1.3.1", + "eslint-config-brigade": "^1.6.0", + "eslint-plugin-react": "^3.3.1", + "jasmine-core": "^2.1.3", + "karma": "^0.13.9", + "karma-chrome-launcher": "^0.2.0", + "karma-cli": "^0.1.0", + "karma-firefox-launcher": "^0.1.6", + "karma-jasmine": "^0.3.6", + "karma-webpack": "^1.7.0", + "prop-types": "^15.5.8", + "react": "^0.14.0", + "react-addons-test-utils": "^0.14.0", + "react-dom": "^0.14.0", + "webpack": "^1.12.0" + }, + "directories": {}, + "dist": { + "shasum": "d1f4e09238b4c9ea9faa55aaf3df5721c56d26c6", + "tarball": "https://registry.npmjs.org/react-simple-pie-chart/-/react-simple-pie-chart-0.4.1.tgz" + }, + "gitHead": "95c7a73382a48910b6529858091d4ec29e77f5c9", + "homepage": "https://github.com/brigade/react-simple-pie-chart", + "keywords": [ + "react", + "component", + "react-component", + "charts", + "charting", + "data visualization", + "pie chart" + ], + "license": "MIT", + "main": "build/npm/pie_chart.js", + "maintainers": [ + { + "name": "bigsley", + "email": "bigsley@gmail.com" + }, + { + "name": "brigade", + "email": "services+npm@brigade.com" + }, + { + "name": "janpaul123", + "email": "me@janpaulposma.nl" + }, + { + "name": "lencioni", + "email": "joe.lencioni@gmail.com" + }, + { + "name": "trotzig", + "email": "henric.trotzig@gmail.com" + } + ], + "name": "react-simple-pie-chart", + "optionalDependencies": {}, + "peerDependencies": { + "react": ">=0.13" + }, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+https://github.com/brigade/react-simple-pie-chart.git" + }, + "scripts": { + "build-npm": "rm -rf build/npm && mkdir -p build/npm && babel src/pie_chart.jsx --out-file build/npm/pie_chart.js", + "prepublish": "npm run build-npm", + "test": "eslint . --ext .js,.jsx && ./node_modules/.bin/karma start" + }, + "version": "0.4.1" +} diff --git a/packages/idyll-cli/test/env-options/outer-project/package.json b/packages/idyll-cli/test/env-options/outer-project/package.json new file mode 100644 index 000000000..6129aa198 --- /dev/null +++ b/packages/idyll-cli/test/env-options/outer-project/package.json @@ -0,0 +1,32 @@ +{ + "name": "test-project", + "version": "1.0.0", + "scripts": { + "start": "idyll index.idl --watch --css styles.css --layout centered --theme github --spellcheck" + }, + "idyll": [ + ["default-env", + { + "layout": "blog" + }], + ["my-env", + { + "alias": { + "PackageJsonComponentTest": "CustomComponent" + }, + "layout": "none" + }], + ["outer-env", + { + "alias": { + "PackageJsonComponentTest": "CustomComponent" + }, + "layout": "centered" + }] + ], + "dependencies": { + "idyll-component": "^1.1.0", + "react-simple-pie-chart": "^0.4.1" + }, + "devDependencies": {} +} diff --git a/packages/idyll-cli/test/env-options/outer-project/static/favicon.ico b/packages/idyll-cli/test/env-options/outer-project/static/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..7031685a9c15e7d7e2fe2278658df20f5f42878f GIT binary patch literal 5430 zcmeHLOHUI~6dsK~fS=Hny3(avHzw>%)M$(vb)lj$5=9Jgp;3%6ypbqEf5v_;w~<>W|g zv`Bf|Bx$=ONft}`e>f8xD5Z(LAXE8Ao$=lJU!!3`@gJt4R6;N{7(izW2oc> zw3Y$*I)+TiD1DS3a}d)OEKuMSL_#+RM`j6B7+S^U3|C;w~KejWpn8*T8n4ssiq&a+Sy_CR>e zb~C*`v&(Nu!Ner-jD_8M*-d=3(v{8LHf02IvkBgJ_;f^WJ`);;tNGgD3347;?H!TN z{&#%Yt+6`T_)q-r`s6_BNI8D&xP(A`5A4K=CSo`1cNq@Vy!eGWxW2j&D`?`iJf7bG zhZ+#O2Uhn8Pp|0a`Yw$>Wq1n7W0g>bZNl~txz+xwZwf{by=KM2?gF@(FUX#xfAZvg zVffLa7Pvmky#F9wsfSDCJwoEl!*n0Rd_#W7+P8m*AHvtGUtyN%C_B8!*q`C*<=u!D zHY0JqPAGo#dMoUDI@Z0c2cFx1FVhRCeG{0^y(1K#>`(aN;ttNe^SQ+=?yBIlDI8a{ z{XK8TF?*_p^}wSU`%_Ogd%A}Aq@wXthe|WLI&CWA7wgmZCY#*t#QeV7;_c7kRPCKW z>Tnqrb`_*+Fv~}Z`*{9ivG^?4LuFmu_hfhK1ikT_S1*yToOO?{w!81X55WZ#iw V#|GjVdA>QWn~zueF0fJaKLJed { + return fs.readdirSync(dir).filter(f => f !== '.DS_Store'); +}; + +const dirToHash = dir => { + return getFilenames(dir).reduce((acc, val) => { + let fullPath = join(dir, val); + + if (fs.statSync(fullPath).isFile()) { + acc[val] = fs.readFileSync(fullPath, 'utf8'); + } else { + acc[val] = dirToHash(fullPath); + } + + return acc; + }, {}); +}; + +const PROJECT_DIR = join(__dirname, 'outer-project', 'inner-project'); + +const PROJECT_BUILD_DIR = join(PROJECT_DIR, 'build'); + +test('no env provided', () => { + const idyll = Idyll({ + inputFile: join(PROJECT_DIR, 'index.idl'), + output: PROJECT_BUILD_DIR, + htmlTemplate: join(PROJECT_DIR, '_index.html'), + components: join(PROJECT_DIR, 'components'), + datasets: join(PROJECT_DIR, 'data'), + theme: join(PROJECT_DIR, 'custom-theme.css'), + css: join(PROJECT_DIR, 'styles.css'), + googleFonts: ['Hanalei Fill'], + favicon: 'static/favicon.ico', + compiler: { + spellcheck: false + }, + minify: false + }); + + expect(idyll.getOptions()).toEqual({ + alias: {}, + compileLibs: false, + compiler: { spellcheck: false }, + components: join(PROJECT_DIR, 'components'), + css: join(PROJECT_DIR, 'styles.css'), + datasets: join(PROJECT_DIR, 'data'), + defaultComponents: dirname(require.resolve('idyll-components')), + favicon: 'static/favicon.ico', + googleFonts: ['Hanalei Fill'], + htmlTemplate: join(PROJECT_DIR, '_index.html'), + inputFile: join(PROJECT_DIR, 'index.idl'), + layout: 'none', + minify: false, + open: true, + output: join(PROJECT_DIR, 'build'), + outputCSS: 'idyll_styles.css', + outputJS: 'idyll_index.js', + port: 3000, + ssr: true, + static: 'static', + temp: '.idyll', + template: resolve(join(__dirname, '/../../src/client/_index.html')), + theme: join(PROJECT_DIR, 'custom-theme.css'), + transform: [], + watch: false + }); +}); + +test('my-env provided', () => { + const idyll = Idyll({ + inputFile: join(PROJECT_DIR, 'index.idl'), + output: PROJECT_BUILD_DIR, + htmlTemplate: join(PROJECT_DIR, '_index.html'), + components: join(PROJECT_DIR, 'components'), + datasets: join(PROJECT_DIR, 'data'), + theme: join(PROJECT_DIR, 'custom-theme.css'), + css: join(PROJECT_DIR, 'styles.css'), + googleFonts: ['Hanalei Fill'], + favicon: 'static/favicon.ico', + compiler: { + spellcheck: false + }, + minify: false, + env: 'my-env' + }); + + expect(idyll.getOptions()).toEqual({ + env: 'my-env', + alias: { PackageJsonComponentTest: 'CustomComponent' }, + compileLibs: false, + compiler: { spellcheck: false }, + components: join(PROJECT_DIR, 'components'), + css: join(PROJECT_DIR, 'styles.css'), + datasets: join(PROJECT_DIR, 'data'), + defaultComponents: dirname(require.resolve('idyll-components')), + favicon: 'static/favicon.ico', + googleFonts: ['Hanalei Fill'], + htmlTemplate: join(PROJECT_DIR, '_index.html'), + inputFile: join(PROJECT_DIR, 'index.idl'), + layout: 'none', + minify: false, + open: true, + output: join(PROJECT_DIR, 'build'), + outputCSS: 'idyll_styles.css', + outputJS: 'idyll_index.js', + port: 3000, + ssr: true, + static: 'static', + temp: '.idyll', + template: resolve(join(__dirname, '/../../src/client/_index.html')), + theme: join(PROJECT_DIR, 'custom-theme.css'), + transform: [], + watch: false + }); +}); From c581b630daf921018d0d30d0a8306370e36c19c8 Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Sun, 21 Feb 2021 23:20:11 -0800 Subject: [PATCH 10/12] Added docs --- .../pages/docs/configuration-and-styles.js | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/packages/idyll-docs/pages/docs/configuration-and-styles.js b/packages/idyll-docs/pages/docs/configuration-and-styles.js index 41382ed52..0f8fbc6c7 100644 --- a/packages/idyll-docs/pages/docs/configuration-and-styles.js +++ b/packages/idyll-docs/pages/docs/configuration-and-styles.js @@ -199,6 +199,40 @@ export default ({ url }) => (

You can also compile an input string directly instead of a file:

{ExampleCodeB} +
+

Selecting Idyll options using the env parameter

+

+ Oftentimes it can be helpful to change your options based on where You + are running Idyll. Idyll supports an env paramter you can use either by + API or with the command-line with \`--env my-env\` +

+

+ To use the env parameter you need to change the format of package.json + to support multiple options. +

+

package.json example

+ + {`"idyll": [ + "my-env", { + "layout": "blog", + "theme": "my-custom-theme.css", + "components": ["./components/", "../some-other-components/"], + "googleFonts": ["Hanalei Fill"], + "favicon": "static/favicon.ico", + "alias": { + "VL": "IdyllVegaLite" + }], + [ + "prod-env", { + "theme": "my-custom-prod-theme.css", + }] + ]}`} + +

+ If no env is supplied and package.json is in list format, the first env + will be used by default. +

+

Continue to the next section to learn about{' '} From fe5b95a7129671c6bc01c0672a00b2c8dd236c19 Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Tue, 2 Mar 2021 19:09:32 -0800 Subject: [PATCH 11/12] Updated yarn with commandlineargs --- yarn.lock | 2779 ++++++++++++++++++++++++++++------------------------- 1 file changed, 1456 insertions(+), 1323 deletions(-) diff --git a/yarn.lock b/yarn.lock index 717a7a6ef..5f3eedb93 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,12 +2,12 @@ # yarn lockfile v1 -"@ampproject/toolbox-core@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.6.0.tgz#9824d5f133d82106a9bf0774920843c69fa5c869" - integrity sha512-sDMnHj8WaX3tqJS5VsIHkeW98nq5WQ0C9RoFc1PPS3rmYIlS0vhAfHbrjJw6wtuxBTQFxccje+Ew+2OJ2D15kA== +"@ampproject/toolbox-core@2.7.4", "@ampproject/toolbox-core@^2.6.0": + version "2.7.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.7.4.tgz#8355136f16301458ce942acf6c55952c9a415627" + integrity sha512-qpBhcS4urB7IKc+jx2kksN7BuvvwCo7Y3IstapWo+EW+COY5EYAUwb2pil37v3TsaqHKgX//NloFP1SKzGZAnw== dependencies: - cross-fetch "3.0.5" + cross-fetch "3.0.6" lru-cache "6.0.0" "@ampproject/toolbox-optimizer@2.6.0": @@ -35,11 +35,11 @@ terser "4.8.0" "@ampproject/toolbox-runtime-version@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.6.0.tgz#c2a310840a6c60a7f5046d2ccaf45646a761bd4f" - integrity sha512-wT+Ehsoq2PRXqpgjebygHD01BpSlaAE4HfDEVxgPVT8oAsLzE4ywZgzI2VQZfaCdb8qLyO5+WXrLSoJXxDBo2Q== + version "2.7.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.7.4.tgz#f49da0dab122101ef75ed3caed3a0142487b73e1" + integrity sha512-SAdOUOERp42thVNWaBJlnFvFVvnacMVnz5z9LyUZHSnoL1EqrAW5Sz5jv+Ly+gkA8NYsEaUxAdSCBAzE9Uzb4Q== dependencies: - "@ampproject/toolbox-core" "^2.6.0" + "@ampproject/toolbox-core" "2.7.4" "@ampproject/toolbox-script-csp@^2.5.4": version "2.5.4" @@ -47,27 +47,30 @@ integrity sha512-+knTYetI5nWllRZ9wFcj7mYxelkiiFVRAAW/hl0ad8EnKHMH82tRlk40CapEnUHhp6Er5sCYkumQ8dngs3Q4zQ== "@ampproject/toolbox-validator-rules@^2.5.4": - version "2.5.4" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.5.4.tgz#7dee3a3edceefea459d060571db8cc6e7bbf0dd6" - integrity sha512-bS7uF+h0s5aiklc/iRaujiSsiladOsZBLrJ6QImJDXvubCAQtvE7om7ShlGSXixkMAO0OVMDWyuwLlEy8V1Ing== + version "2.7.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.7.4.tgz#a58b5eca723f6c3557ac83b696de0247f5f03ce4" + integrity sha512-z3JRcpIZLLdVC9XVe7YTZuB3a/eR9s2SjElYB9AWRdyJyL5Jt7+pGNv4Uwh1uHVoBXsWEVQzNOWSNtrO3mSwZA== dependencies: - cross-fetch "3.0.5" + cross-fetch "3.0.6" -"@babel/code-frame@7.10.4", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5": +"@babel/code-frame@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" - integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== +"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.5.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" + "@babel/highlight" "^7.12.13" + +"@babel/compat-data@^7.11.0", "@babel/compat-data@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.8.tgz#5b783b9808f15cef71547f1b691f34f8ff6003a6" + integrity sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog== "@babel/core@7.7.7": version "7.7.7" @@ -89,254 +92,224 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.11.5", "@babel/generator@^7.7.7": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" - integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== +"@babel/generator@^7.13.0", "@babel/generator@^7.7.7": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" + integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== dependencies: - "@babel/types" "^7.11.5" + "@babel/types" "^7.13.0" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== +"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" + integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.13" -"@babel/helper-builder-react-jsx-experimental@^7.10.4", "@babel/helper-builder-react-jsx-experimental@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz#4ea43dd63857b0a35cd1f1b161dc29b43414e79f" - integrity sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" + integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/types" "^7.11.5" + "@babel/helper-explode-assignable-expression" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/helper-builder-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" - integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== +"@babel/helper-compilation-targets@^7.10.4", "@babel/helper-compilation-targets@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.8.tgz#02bdb22783439afb11b2f009814bdd88384bd468" + integrity sha512-pBljUGC1y3xKLn1nrx2eAhurLMA8OqBtBP/JwG4U8skN7kf8/aqwwxpV1N6T0e7r6+7uNitIa/fUxPFagSXp3A== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-compilation-targets@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" - integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== - dependencies: - "@babel/compat-data" "^7.10.4" - browserslist "^4.12.0" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" - integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.5" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" - integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" - integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" - -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b" - integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-get-function-arity@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" - integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" - integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" + "@babel/compat-data" "^7.13.8" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^6.3.0" -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" - integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/template" "^7.10.4" - "@babel/types" "^7.11.0" +"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.13.0": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.8.tgz#0367bd0a7505156ce018ca464f7ac91ba58c1a04" + integrity sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" + +"@babel/helper-create-regexp-features-plugin@^7.12.13": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" + integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + regexpu-core "^4.7.1" + +"@babel/helper-explode-assignable-expression@^7.12.13": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" + integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== + dependencies: + "@babel/types" "^7.13.0" + +"@babel/helper-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" + integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-hoist-variables@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" + integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== + dependencies: + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helper-member-expression-to-functions@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz#6aa4bb678e0f8c22f58cdb79451d30494461b091" + integrity sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== + dependencies: + "@babel/types" "^7.13.0" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" + integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz#42eb4bd8eea68bab46751212c357bfed8b40f6f1" + integrity sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" lodash "^4.17.19" -"@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.13" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" + integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== -"@babel/helper-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== +"@babel/helper-remap-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" + integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== dependencies: - lodash "^4.17.19" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-wrap-function" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" - integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA== +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz#6034b7b51943094cb41627848cb219cb02be1d24" + integrity sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== +"@babel/helper-simple-access@^7.10.4", "@babel/helper-simple-access@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" + integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.13" -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.1" -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" - integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.12.13" -"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" - integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== - dependencies: - "@babel/types" "^7.11.0" +"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== -"@babel/helper-wrap-function@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" - integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== +"@babel/helper-wrap-function@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" + integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-function-name" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" "@babel/helpers@^7.7.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.0.tgz#7647ae57377b4f0408bf4f8a7af01c42e41badc0" + integrity sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ== dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== +"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.8.tgz#10b2dac78526424dfc1f47650d0e415dfd9dc481" + integrity sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" + "@babel/helper-validator-identifier" "^7.12.11" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.7.7": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" - integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== +"@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.7.7": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.9.tgz#ca34cb95e1c2dd126863a84465ae8ef66114be99" + integrity sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw== "@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" - integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz#87aacb574b3bc4b5603f6fe41458d72a5a2ec4b1" + integrity sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@7.10.4", "@babel/plugin-proposal-class-properties@^7.10.4": +"@babel/plugin-proposal-class-properties@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== @@ -344,15 +317,23 @@ "@babel/helper-create-class-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-proposal-class-properties@^7.10.4": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" + integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-proposal-dynamic-import@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" + integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@7.10.4", "@babel/plugin-proposal-export-namespace-from@^7.10.4": +"@babel/plugin-proposal-export-namespace-from@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== @@ -360,31 +341,39 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" +"@babel/plugin-proposal-export-namespace-from@^7.10.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" + integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-proposal-json-strings@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" + integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-proposal-logical-assignment-operators@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" - integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" + integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@7.10.4", "@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" - integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" + integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@7.10.4", "@babel/plugin-proposal-numeric-separator@^7.10.4": +"@babel/plugin-proposal-numeric-separator@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== @@ -392,7 +381,15 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.11.0": +"@babel/plugin-proposal-numeric-separator@^7.10.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" + integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== @@ -401,40 +398,51 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.10.4" +"@babel/plugin-proposal-object-rest-spread@^7.11.0": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" + integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== + dependencies: + "@babel/compat-data" "^7.13.8" + "@babel/helper-compilation-targets" "^7.13.8" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-proposal-optional-catch-binding@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" + integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@7.11.0", "@babel/plugin-proposal-optional-chaining@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" - integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== +"@babel/plugin-proposal-optional-chaining@^7.11.0": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz#e39df93efe7e7e621841babc197982e140e90756" + integrity sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-proposal-private-methods@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" - integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" + integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" + integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-async-generators@^7.8.0": +"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== @@ -449,13 +457,13 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" - integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-dynamic-import@7.8.3", "@babel/plugin-syntax-dynamic-import@^7.8.0": +"@babel/plugin-syntax-dynamic-import@7.8.3", "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== @@ -469,20 +477,27 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-json-strings@^7.8.0": +"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.10.4": +"@babel/plugin-syntax-jsx@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-syntax-jsx@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" + integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -490,7 +505,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== @@ -504,21 +519,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": +"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.8.0": +"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== @@ -526,139 +541,138 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-top-level-await@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-typescript@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25" - integrity sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ== +"@babel/plugin-syntax-typescript@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474" + integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-arrow-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" + integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" + integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" "@babel/plugin-transform-block-scoped-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" + integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-block-scoping@^7.10.4": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" - integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" + integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-classes@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" + integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" + integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-destructuring@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" + integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" + integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-duplicate-keys@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" + integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-exponentiation-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" + integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-for-of@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" + integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" + integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" + integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-member-expression-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" + integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-modules-amd@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" - integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" + integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== dependencies: - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@7.10.4", "@babel/plugin-transform-modules-commonjs@^7.10.4": +"@babel/plugin-transform-modules-commonjs@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== @@ -668,124 +682,131 @@ "@babel/helper-simple-access" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" - integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== +"@babel/plugin-transform-modules-commonjs@^7.10.4": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" + integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.10.4": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" + integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== + dependencies: + "@babel/helper-hoist-variables" "^7.13.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" + integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" + integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/plugin-transform-new-target@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" + integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-object-super@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" + integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" -"@babel/plugin-transform-parameters@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" - integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== +"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" + integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-property-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" + integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-react-display-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" - integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" + integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-react-jsx-development@^7.10.4": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz#e1439e6a57ee3d43e9f54ace363fb29cefe5d7b6" - integrity sha512-cImAmIlKJ84sDmpQzm4/0q/2xrXlDezQoixy3qoz1NJeZL/8PRon6xZtluvr4H4FzwlDGI5tCcFupMnXGtr+qw== + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" + integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.11.5" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" + "@babel/plugin-transform-react-jsx" "^7.12.17" "@babel/plugin-transform-react-jsx-self@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" - integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz#422d99d122d592acab9c35ea22a6cfd9bf189f60" + integrity sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-react-jsx-source@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" - integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz#051d76126bee5c9a6aa3ba37be2f6c1698856bcb" + integrity sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" - integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== +"@babel/plugin-transform-react-jsx@^7.10.4", "@babel/plugin-transform-react-jsx@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz#dd2c1299f5e26de584939892de3cfc1807a38f24" + integrity sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw== dependencies: - "@babel/helper-builder-react-jsx" "^7.10.4" - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/types" "^7.12.17" "@babel/plugin-transform-react-pure-annotations@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501" - integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" + integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-regenerator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" + integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== dependencies: regenerator-transform "^0.14.2" "@babel/plugin-transform-reserved-words@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" + integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-runtime@7.11.5": version "7.11.5" @@ -798,66 +819,64 @@ semver "^5.5.1" "@babel/plugin-transform-shorthand-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" + integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" + integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" + integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-template-literals@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" + integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" + integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-typescript@^7.10.4": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb" - integrity sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz#4a498e1f3600342d2a9e61f60131018f55774853" + integrity sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-typescript" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-typescript" "^7.12.13" "@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" - integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" + integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" + integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/preset-env@7.11.5": version "7.11.5" @@ -965,38 +984,45 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-typescript" "^7.10.4" -"@babel/runtime@7.11.2", "@babel/runtime@^7.8.4": +"@babel/runtime@7.11.2": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4", "@babel/template@^7.7.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== +"@babel/runtime@^7.8.4": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.9.tgz#97dbe2116e2630c489f22e0656decd60aaa1fcee" + integrity sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA== dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" + regenerator-runtime "^0.13.4" -"@babel/traverse@^7.10.4", "@babel/traverse@^7.7.4": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" - integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.5" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.5" - "@babel/types" "^7.11.5" +"@babel/template@^7.12.13", "@babel/template@^7.7.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.7.4": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" + integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.0" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.13.0" + "@babel/types" "^7.13.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@7.11.5", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.4.4", "@babel/types@^7.7.4": +"@babel/types@7.11.5": version "7.11.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== @@ -1014,15 +1040,54 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.11.5", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.13.0", "@babel/types@^7.4.4", "@babel/types@^7.7.4": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" + integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@hapi/accept@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.1.tgz#068553e867f0f63225a506ed74e899441af53e10" + integrity sha512-fMr4d7zLzsAXo28PRRQPXR1o2Wmu+6z+VY1UzDp0iFo13Twj8WePakwXBiqn3E1aAlTpSNzCXdnnQXFhst8h8Q== + dependencies: + "@hapi/boom" "9.x.x" + "@hapi/hoek" "9.x.x" + +"@hapi/boom@9.x.x": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.1.tgz#89e6f0e01637c2a4228da0d113e8157c93677b04" + integrity sha512-VNR8eDbBrOxBgbkddRYIe7+8DZ+vSbV6qlmaN2x7eWjsUjy2VmQgChkOKcVZIeupEZYj+I0dqNg430OhwzagjA== + dependencies: + "@hapi/hoek" "9.x.x" + +"@hapi/hoek@9.x.x": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.1.tgz#9daf5745156fd84b8e9889a2dc721f0c58e894aa" + integrity sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw== + "@improved/node@^1.0.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@improved/node/-/node-1.1.1.tgz#7be3d401b7cd2f848d5bb8713d2826b84fc51817" integrity sha512-ePDxG9UuU9Kobk90ZUjtmDW8IT9U7aRb1/Rl9683MRNM+ur0ocHL2v7TPH2ajTiVSBUFbbeW8vKIt9jrb0JIAA== -"@next/react-dev-overlay@9.5.3": - version "9.5.3" - resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-9.5.3.tgz#3275301f08045ecc709e3273031973a1f5e81427" - integrity sha512-R2ZAyFjHHaMTBVi19ZZNRJNXiwn46paRi7EZvKNvMxbrzBcUYtSFj/edU3jQoF1UOcC6vGeMhtPqH55ONrIjCQ== +"@next/env@9.5.5": + version "9.5.5" + resolved "https://registry.yarnpkg.com/@next/env/-/env-9.5.5.tgz#db993649ec6e619e34a36de90dc2baa52fc5280f" + integrity sha512-N9wdjU6XoqLqNQWtrGiWtp1SUuJsYK1cNrZ24A6YD+4w5CNV5SkZX6aewKZCCLP5Y8UNfTij2FkJiSYUfBjX8g== + +"@next/polyfill-module@9.5.5": + version "9.5.5" + resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-9.5.5.tgz#d9c65679a66664ab4859078f58997113c9d01f10" + integrity sha512-itqYFeHo3yN4ccpHq2uNFC2UVQm12K6DxUVwYdui9MJiiueT0pSGb2laYEjf/G5+vVq7M2vb+DkjkOkPMBVfeg== + +"@next/react-dev-overlay@9.5.5": + version "9.5.5" + resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-9.5.5.tgz#11b36813d75c43b7bd9d5e478bded1ed5391d03a" + integrity sha512-B1nDANxjXr2oyohv+tX0OXZTmJtO5qEWmisNPGnqQ2Z32IixfaAgyNYVuCVf20ap6EUz5elhgNUwRIFh/e26mQ== dependencies: "@babel/code-frame" "7.10.4" ally.js "1.4.1" @@ -1035,25 +1100,23 @@ stacktrace-parser "0.1.10" strip-ansi "6.0.0" -"@next/react-refresh-utils@9.5.3": - version "9.5.3" - resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-9.5.3.tgz#a14fb6489d412b201b98aa44716fb8727ca4c6ae" - integrity sha512-W3VKOqbg+4Kw+k6M/SODf+WIzwcx60nAemGV1nNPa/yrDtAS2YcJfqiswrJ3+2nJHzqefAFWn4XOfM0fy8ww2Q== +"@next/react-refresh-utils@9.5.5": + version "9.5.5" + resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-9.5.5.tgz#fe559b5ca51c038cb7840e0d669a6d7ef01fe4eb" + integrity sha512-Gz5z0+ID+KAGto6Tkgv1a340damEw3HG6ANLKwNi5/QSHqQ3JUAVxMuhz3qnL54505I777evpzL89ofWEMIWKw== -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" "@types/json-schema@^7.0.5": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" - integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== - -"@types/node@*": - version "14.11.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.2.tgz#2de1ed6670439387da1c9f549a2ade2b0a799256" - integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA== + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== "@webassemblyjs/ast@1.9.0": version "1.9.0" @@ -1296,14 +1359,14 @@ acorn@^5.5.3: integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^6.0.1, acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== acorn@^7.0.0, acorn@^7.1.1: - version "7.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" - integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== add-stream@^1.0.0: version "1.0.0" @@ -1327,9 +1390,9 @@ after@0.8.2: integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= agent-base@6: - version "6.0.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.1.tgz#808007e4e5867decb0ab6ab2f928fbdb5a596db4" - integrity sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg== + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" @@ -1366,10 +1429,10 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.5.2: - version "6.12.5" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" - integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.5.2: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -1451,11 +1514,10 @@ ansi-styles@^3.0.0, ansi-styles@^3.2.0, ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - "@types/color-name" "^1.1.1" color-convert "^2.0.1" anymatch@^1.3.0: @@ -1611,12 +1673,13 @@ array.prototype.find@^2.1.1: es-abstract "^1.17.4" array.prototype.flat@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" arraybuffer.slice@~0.0.7: version "0.0.7" @@ -1718,9 +1781,9 @@ atob@^2.1.2: integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== aws-sdk@^2.315.0: - version "2.758.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.758.0.tgz#9df99d5e3e22031b4ab7d9332f82782ecc29a7b3" - integrity sha512-jxuJuoUb/yVkYaJy6OuPQ5XKRajZXDKPZHvSiF0u5n3DlZfNoj92yHxidm+zpC1DeS/4is6xFCAmEct5lHAy/Q== + version "2.855.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.855.0.tgz#2788e2655d8e2eecfc9d86acafd13d872725e73a" + integrity sha512-u1lO75V82E4REeu0Pt3RE1Kg2CdtUoMgMnyR02cUxdWnoTBpdSlwvz2X2U0VEGW2oYzeJJYp0N0H1sgSRnv8vg== dependencies: buffer "4.9.2" events "1.1.1" @@ -1738,17 +1801,16 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" - integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" - integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== +axios@0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== dependencies: - follow-redirects "1.5.10" - is-buffer "^2.0.2" + follow-redirects "^1.10.0" babel-cli@6.26.0, babel-cli@^6.26.0: version "6.26.0" @@ -2562,20 +2624,20 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= +base64-arraybuffer@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" + integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== base@^0.11.1: version "0.11.2" @@ -2602,13 +2664,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -2620,9 +2675,9 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bindings@^1.5.0: version "1.5.0" @@ -2646,17 +2701,17 @@ bluebird@~3.5.0: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" - integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== -boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= @@ -2724,7 +2779,7 @@ brfs@^1.4.3: static-module "^2.2.0" through2 "^2.0.0" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -2765,49 +2820,49 @@ browser-stdout@1.3.1: resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browser-sync-client@^2.26.12: - version "2.26.12" - resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.26.12.tgz#b6c81335c6a9f1a79bca1951438800d3e7f170c8" - integrity sha512-bEBDRkufKxrIfjOsIB1FN9itUEXr2oLtz1AySgSSr80K2AWzmtoYnxtVASx/i40qFrSdeI31pNvdCjHivihLVA== +browser-sync-client@^2.26.14: + version "2.26.14" + resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.26.14.tgz#f2f0a8e5febc65b725fb38c8d648389214a38947" + integrity sha512-be0m1MchmKv/26r/yyyolxXcBi052aYrmaQep5nm8YNMjFcEyzv0ZoOKn/c3WEXNlEB/KeXWaw70fAOJ+/F1zQ== dependencies: etag "1.8.1" fresh "0.5.2" mitt "^1.1.3" rxjs "^5.5.6" -browser-sync-ui@^2.26.12: - version "2.26.12" - resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-2.26.12.tgz#6a309644d3ae0fe743906558a94caf6fd118719f" - integrity sha512-PkAJNf/TfCFTCkQUfXplR2Kp/+/lbCWFO9lrgLZsmxIhvMLx2pYZFBbTBIaem8qjXhld9ZcESUC8EdU5VWFJgQ== +browser-sync-ui@^2.26.14: + version "2.26.14" + resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-2.26.14.tgz#96632c38dda72560a3be8e985716d7a735e94749" + integrity sha512-6oT1sboM4KVNnWCCJDMGbRIeTBw97toMFQ+srImvwQ6J5t9KMgizaIX8HcKLiemsUMSJkgGM9RVKIpq2UblgOA== dependencies: async-each-series "0.1.1" connect-history-api-fallback "^1" immutable "^3" server-destroy "1.0.1" - socket.io-client "^2.0.4" + socket.io-client "^2.4.0" stream-throttle "^0.1.3" browser-sync@^2.18.8: - version "2.26.12" - resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.26.12.tgz#2724df702ef8880e711c1bf62afd7c93a3a80462" - integrity sha512-1GjAe+EpZQJgtKhWsxklEjpaMV0DrRylpHRvZWgOphDQt+bfLZjfynl/j1WjSFIx8ozj9j78g6Yk4TqD3gKaMA== + version "2.26.14" + resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.26.14.tgz#716c13ef91e72dfe092ff84bec3ddf62ea9d81fd" + integrity sha512-3TtpsheGolJT6UFtM2CZWEcGJmI4ZEvoCKiKE2bvcDnPxRkhQT4nIGVtfiyPcoHKXGM0LwMOZmYJNWfiNfVXWA== dependencies: - browser-sync-client "^2.26.12" - browser-sync-ui "^2.26.12" + browser-sync-client "^2.26.14" + browser-sync-ui "^2.26.14" bs-recipes "1.3.4" bs-snippet-injector "^2.0.1" - chokidar "^3.4.1" + chokidar "^3.5.1" connect "3.6.6" connect-history-api-fallback "^1" dev-ip "^1.0.1" easy-extender "^2.3.4" - eazy-logger "^3" + eazy-logger "3.1.0" etag "^1.8.1" fresh "^0.5.2" fs-extra "3.0.1" http-proxy "^1.18.1" immutable "^3" - localtunnel "^2.0.0" + localtunnel "^2.0.1" micromatch "^4.0.2" opn "5.3.0" portscanner "2.1.1" @@ -2819,7 +2874,7 @@ browser-sync@^2.18.8: serve-index "1.9.1" serve-static "1.13.2" server-destroy "1.0.1" - socket.io "2.1.1" + socket.io "2.4.0" ua-parser-js "^0.7.18" yargs "^15.4.1" @@ -2874,11 +2929,11 @@ browserify-incremental@^3.1.1: xtend "^4.0.0" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: @@ -2975,15 +3030,16 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.12.0, browserslist@^4.8.5: - version "4.14.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.4.tgz#66a18131439f9e16c3da7f352518dfa12f60b0e3" - integrity sha512-7FOuawafVdEwa5Jv4nzeik/PepAjVte6HmVGHsjt2bC237jeL9QlcTBDF3PnHEvcC6uHwLGYPwZHNZMB7wWAnw== +browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.3: + version "4.16.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" + integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== dependencies: - caniuse-lite "^1.0.30001135" - electron-to-chromium "^1.3.570" - escalade "^3.1.0" - node-releases "^1.1.61" + caniuse-lite "^1.0.30001181" + colorette "^1.2.1" + electron-to-chromium "^1.3.649" + escalade "^3.1.1" + node-releases "^1.1.70" bs-pretty-message@^1.0.8: version "1.0.8" @@ -3074,28 +3130,27 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== +cacache@15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" fs-minipass "^2.0.0" glob "^7.1.4" - graceful-fs "^4.2.2" infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" + lru-cache "^6.0.0" + minipass "^3.1.1" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" + mkdirp "^1.0.3" + p-map "^4.0.0" promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" unique-filename "^1.1.1" cacache@^12.0.2: @@ -3148,6 +3203,14 @@ cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -3162,7 +3225,7 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" -callsite@1.0.0, callsite@^1.0.0: +callsite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= @@ -3202,7 +3265,7 @@ camelcase@5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== -camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@5.3.1, camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -3222,10 +3285,15 @@ camelcase@^4.0.0, camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001113, caniuse-lite@^1.0.30001135: - version "1.0.30001135" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001135.tgz#995b1eb94404a3c9a0d7600c113c9bb27f2cd8aa" - integrity sha512-ziNcheTGTHlu9g34EVoHQdIu5g4foc8EsxMGC7Xkokmvw0dqNtX8BS8RgCgFBaAiSp2IdjvBxNdh0ssib28eVQ== +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001113, caniuse-lite@^1.0.30001181: + version "1.0.30001194" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001194.tgz#3d16ff3d734a5a7d9818402c28b1f636c5be5bed" + integrity sha512-iDUOH+oFeBYk5XawYsPtsx/8fFpndAPUQJC7gBTfxHM8xw5nOZv7ceAD4frS1MKCLUac7QL5wdAJiFQlDRjXlA== capture-stack-trace@^1.0.0: version "1.0.1" @@ -3252,7 +3320,7 @@ chalk@4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -3301,17 +3369,29 @@ chardet@^0.4.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= -cheerio@^1.0.0-rc.3: - version "1.0.0-rc.3" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" - integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== +cheerio-select-tmp@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz#55bbef02a4771710195ad736d5e346763ca4e646" + integrity sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ== dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.1" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash "^4.15.0" - parse5 "^3.0.1" + css-select "^3.1.2" + css-what "^4.0.0" + domelementtype "^2.1.0" + domhandler "^4.0.0" + domutils "^2.4.4" + +cheerio@^1.0.0-rc.3: + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.5.tgz#88907e1828674e8f9fee375188b27dadd4f0fa2f" + integrity sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw== + dependencies: + cheerio-select-tmp "^0.1.0" + dom-serializer "~1.2.0" + domhandler "^4.0.0" + entities "~2.1.0" + htmlparser2 "^6.0.0" + parse5 "^6.0.0" + parse5-htmlparser2-tree-adapter "^6.0.0" chokidar@2.1.8, chokidar@^2.1.8: version "2.1.8" @@ -3348,10 +3428,10 @@ chokidar@^1.6.1: optionalDependencies: fsevents "^1.0.0" -chokidar@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== +chokidar@^3.4.1, chokidar@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -3359,15 +3439,20 @@ chokidar@^3.4.1: is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.4.0" + readdirp "~3.5.0" optionalDependencies: - fsevents "~2.1.2" + fsevents "~2.3.1" -chownr@^1.1.1, chownr@^1.1.2: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -3471,14 +3556,14 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" clone@^1.0.2: version "1.0.4" @@ -3499,9 +3584,9 @@ code-point-at@^1.0.0: integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= collect-all@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/collect-all/-/collect-all-1.0.3.tgz#1abcc20448b58a1447487fcf34130e9512b0acf8" - integrity sha512-0y0rBgoX8IzIjBAUnO73SEtSb4Mhk3IoceWJq5zZSxb9mWORhWH8xLYo4EDSOE1jRBk1LhmfjqWFFt10h/+MEA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/collect-all/-/collect-all-1.0.4.tgz#50cd7119ac24b8e12a661f0f8c3aa0ea7222ddfc" + integrity sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA== dependencies: stream-connect "^1.0.2" stream-via "^1.0.4" @@ -3538,6 +3623,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + columnify@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" @@ -3942,10 +4032,10 @@ convert-source-map@~1.1.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= +cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== cookiejar@^2.1.0: version "2.1.2" @@ -3975,11 +4065,11 @@ cords@^1.0.4: integrity sha1-cHIo7gQNV5UxD3ZII2TV0+c7PWU= core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== + version "3.9.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.1.tgz#4e572acfe90aff69d76d8c37759d21a5c59bb455" + integrity sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== dependencies: - browserslist "^4.8.5" + browserslist "^4.16.3" semver "7.0.0" core-js@^1.0.0: @@ -3988,14 +4078,9 @@ core-js@^1.0.0: integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= core-js@^2.4.0, core-js@^2.5.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-js@^3.6.4: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -4059,11 +4144,10 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: sha.js "^2.4.8" create-react-class@^15.6.0: - version "15.6.3" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" - integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== + version "15.7.0" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e" + integrity sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng== dependencies: - fbjs "^0.8.9" loose-envify "^1.3.1" object-assign "^4.1.1" @@ -4081,7 +4165,7 @@ cross-fetch@3.0.5: dependencies: node-fetch "2.6.0" -cross-fetch@^3.0.4: +cross-fetch@3.0.6, cross-fetch@^3.0.4: version "3.0.6" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c" integrity sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ== @@ -4130,39 +4214,39 @@ crypto-random-string@^1.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= -css-loader@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.5.3.tgz#95ac16468e1adcd95c844729e0bb167639eb0bcf" - integrity sha512-UEr9NH5Lmi7+dguAm+/JSPovNjYbm2k3TK58EiwQHzOHH5Jfq1Y+XoP2bQO6TMn7PptMd0opxxedAWcaSTRKHw== +css-loader@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" + integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== dependencies: - camelcase "^5.3.1" + camelcase "^6.0.0" cssesc "^3.0.0" icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.27" + loader-utils "^2.0.0" + postcss "^7.0.32" postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" + postcss-modules-local-by-default "^3.0.3" postcss-modules-scope "^2.2.0" postcss-modules-values "^3.0.0" - postcss-value-parser "^4.0.3" - schema-utils "^2.6.6" - semver "^6.3.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.1" + semver "^7.3.2" -css-select@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= +css-select@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" + boolbase "^1.0.0" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" + nth-check "^2.0.0" -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== +css-what@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== css.escape@^1.5.0: version "1.5.1" @@ -4235,9 +4319,9 @@ cssstyle@^1.0.0: cssom "0.3.x" csv-parse@^4.8.2: - version "4.12.0" - resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.12.0.tgz#fd42d6291bbaadd51d3009f6cadbb3e53b4ce026" - integrity sha512-wPQl3H79vWLPI8cgKFcQXl0NBgYYEqVnT1i6/So7OjMpsI540oD7p93r3w6fDSyPvwkTepG05F69/7AViX2lXg== + version "4.15.3" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.15.3.tgz#8a62759617a920c328cb31c351b05053b8f92b10" + integrity sha512-jlTqDvLdHnYMSr08ynNfk4IAUSJgJjTKy2U5CQBSu4cN9vQOJonLVZP4Qo4gKKrIgIQ5dr07UwOJdi+lRqT12w== currently-unhandled@^0.4.1: version "0.4.1" @@ -4408,34 +4492,41 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6. dependencies: ms "2.0.0" -debug@3.2.6, debug@^3.1.0: +debug@3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debug@4, debug@^4.0.1, debug@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" - integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== +debug@4, debug@4.3.1, debug@^4.0.1, debug@^4.1.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" -debug@4.1.1, debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@=3.1.0, debug@~3.1.0: +debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" +debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + decache@^4.1.0: version "4.6.0" resolved "https://registry.yarnpkg.com/decache/-/decache-4.6.0.tgz#87026bc6e696759e82d57a3841c4e251a30356e8" @@ -4612,6 +4703,11 @@ discontinuous-range@1.0.0: resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + dmd@^3.0.10: version "3.0.13" resolved "https://registry.yarnpkg.com/dmd/-/dmd-3.0.13.tgz#73294e8fae1a7a1a1c849d86b027adf04fbd5662" @@ -4647,37 +4743,29 @@ dom-serializer@1.0.1: domhandler "^3.0.0" entities "^2.0.0" -dom-serializer@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.1.0.tgz#5f7c828f1bfc44887dc2a315ab5c45691d544b58" - integrity sha512-ox7bvGXt2n+uLWtCRLybYx60IrOlWL/aCebWJk1T0d4m3y2tzf4U3ij9wBMUb6YJZpz06HCCYuyCDveE2xXmzQ== +dom-serializer@^1.0.1, dom-serializer@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" + integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== dependencies: domelementtype "^2.0.1" - domhandler "^3.0.0" + domhandler "^4.0.0" entities "^2.0.0" -dom-serializer@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - domain-browser@^1.1.1, domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: +domelementtype@1, domelementtype@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" - integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA== +domelementtype@^2.0.1, domelementtype@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== domexception@^1.0.1: version "1.0.1" @@ -4693,7 +4781,7 @@ domhandler@2.3.0: dependencies: domelementtype "1" -domhandler@3.0.0, domhandler@^3.0.0: +domhandler@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.0.0.tgz#51cd13efca31da95bbb0c5bee3a48300e333b3e9" integrity sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw== @@ -4707,13 +4795,19 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= +domhandler@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" + integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.0.1" + +domhandler@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" + integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== + dependencies: + domelementtype "^2.1.0" domutils@2.1.0: version "2.1.0" @@ -4732,14 +4826,14 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" -domutils@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.3.0.tgz#6469c63a3da2de0c3016f3a59e6a969e10705bce" - integrity sha512-xWC75PM3QF6MjE5e58OzwTX0B/rPQnlqH0YyXB/c056RtVJA+eu60da2I/bdnEHzEYC00g8QaZUlAbqOZVbOsw== +domutils@^2.0.0, domutils@^2.4.3, domutils@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3" + integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== dependencies: dom-serializer "^1.0.1" domelementtype "^2.0.1" - domhandler "^3.0.0" + domhandler "^4.0.0" dot-case@^2.1.0: version "2.1.1" @@ -4815,12 +4909,12 @@ easy-extender@^2.3.4: dependencies: lodash "^4.17.10" -eazy-logger@^3: - version "3.0.2" - resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-3.0.2.tgz#a325aa5e53d13a2225889b2ac4113b2b9636f4fc" - integrity sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw= +eazy-logger@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-3.1.0.tgz#b169eb56df714608fa114f164c8a2956bec9f0f3" + integrity sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ== dependencies: - tfunk "^3.0.1" + tfunk "^4.0.0" ecc-jsbn@~0.1.1: version "0.1.2" @@ -4835,23 +4929,23 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.488, electron-to-chromium@^1.3.570: - version "1.3.570" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.570.tgz#3f5141cc39b4e3892a276b4889980dabf1d29c7f" - integrity sha512-Y6OCoVQgFQBP5py6A/06+yWxUZHDlNr/gNDGatjH8AZqXl8X0tE4LfjLJsXGz/JmWJz8a6K7bR1k+QzZ+k//fg== +electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.488, electron-to-chromium@^1.3.649: + version "1.3.678" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.678.tgz#c7c6960463167126b7ed076fade14cac6223bfff" + integrity sha512-E5ha1pE9+aWWrT2fUD5wdPBWUnYtKnEnloewbtVyrkAs79HvodOiNO4rMR94+hKbxgMFQG4fnPQACOc1cfMfBg== elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" emoji-regex@^7.0.1: version "7.0.3" @@ -4892,117 +4986,95 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -engine.io-client@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~3.3.1" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-client@~3.4.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.3.tgz#192d09865403e3097e3575ebfeb3861c4d01a66c" - integrity sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw== +engine.io-client@~3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.1.tgz#b500458a39c0cd197a921e0e759721a746d0bdb9" + integrity sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ== dependencies: component-emitter "~1.3.0" component-inherit "0.0.3" - debug "~4.1.0" + debug "~3.1.0" engine.io-parser "~2.2.0" has-cors "1.1.0" indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~6.1.0" + parseqs "0.0.6" + parseuri "0.0.6" + ws "~7.4.2" xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" - integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - engine.io-parser@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" - integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== + version "2.2.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" + integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== dependencies: after "0.8.2" arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" + base64-arraybuffer "0.1.4" blob "0.0.5" has-binary2 "~1.0.2" -engine.io@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== +engine.io@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b" + integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== dependencies: accepts "~1.3.4" - base64id "1.0.0" - cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" + base64id "2.0.0" + cookie "~0.4.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" + ws "~7.4.2" enhanced-resolve@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" - integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" tapable "^1.0.0" -entities@^1.1.1, "entities@~ 1.1.1", entities@~1.1.1: +entities@^1.1.1, "entities@~ 1.1.1": version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== enzyme-adapter-react-16@^1.0.0: - version "1.15.4" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.4.tgz#328a782365a363ecb424f99283c4833dd92c0f21" - integrity sha512-wPzxs+JaGDK2TPYzl5a9YWGce6i2SQ3Cg51ScLeyj2WotUZ8Obcq1ke/U1Y2VGpYlb9rrX2yCjzSMgtKCeAt5w== + version "1.15.6" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz#fd677a658d62661ac5afd7f7f541f141f8085901" + integrity sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g== dependencies: - enzyme-adapter-utils "^1.13.1" + enzyme-adapter-utils "^1.14.0" enzyme-shallow-equal "^1.0.4" has "^1.0.3" - object.assign "^4.1.0" - object.values "^1.1.1" + object.assign "^4.1.2" + object.values "^1.1.2" prop-types "^15.7.2" react-is "^16.13.1" react-test-renderer "^16.0.0-0" semver "^5.7.0" -enzyme-adapter-utils@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.1.tgz#59c1b734b0927543e3d8dc477299ec957feb312d" - integrity sha512-5A9MXXgmh/Tkvee3bL/9RCAAgleHqFnsurTYCbymecO4ohvtNO5zqIhHxV370t7nJAwaCfkgtffarKpC0GPt0g== +enzyme-adapter-utils@^1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz#afbb0485e8033aa50c744efb5f5711e64fbf1ad0" + integrity sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg== dependencies: airbnb-prop-types "^2.16.0" - function.prototype.name "^1.1.2" - object.assign "^4.1.0" - object.fromentries "^2.0.2" + function.prototype.name "^1.1.3" + has "^1.0.3" + object.assign "^4.1.2" + object.fromentries "^2.0.3" prop-types "^15.7.2" semver "^5.7.1" @@ -5043,9 +5115,9 @@ enzyme@^3.0.0: string.prototype.trim "^1.2.1" errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" @@ -5056,40 +5128,44 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0-next.1, es-abstract@^1.17.4, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== +es-abstract@^1.17.4: + version "1.17.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.2.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" object-keys "^1.1.1" - object.assign "^4.1.0" + object.assign "^4.1.1" string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.0: - version "1.18.0-next.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc" - integrity sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ== +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0-next.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.3.tgz#56bc8b5cc36b2cca25a13be07f3c02c2343db6b7" + integrity sha512-VMzHx/Bczjg59E6jZOQjHeN3DEoptdhejpARgflAViidlqSpjdq9zA6lKwlhRRs/lOw1gHJv2xkkSFRgvEwbQg== dependencies: + call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + get-intrinsic "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -5126,10 +5202,10 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" -escalade@^3.0.1, escalade@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e" - integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig== +escalade@^3.0.1, escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-html@~1.0.3: version "1.0.3" @@ -5231,9 +5307,9 @@ events@^2.0.0: integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== events@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -5450,11 +5526,10 @@ fbjs-css-vars@^1.0.0: integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== fbjs@*: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-2.0.0.tgz#01fb812138d7e31831ed3e374afe27b9169ef442" - integrity sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ== + version "3.0.0" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.0.tgz#0907067fb3f57a78f45d95f1eacffcacd623c165" + integrity sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg== dependencies: - core-js "^3.6.4" cross-fetch "^3.0.4" fbjs-css-vars "^1.0.0" loose-envify "^1.0.0" @@ -5611,9 +5686,9 @@ find-up@^4.0.0, find-up@^4.1.0: path-exists "^4.0.0" flat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" - integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== + version "4.1.1" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" + integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== dependencies: is-buffer "~2.0.3" @@ -5625,17 +5700,10 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -follow-redirects@^1.0.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" - integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== +follow-redirects@^1.0.0, follow-redirects@^1.10.0: + version "1.13.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" + integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== fontfaceobserver@^2.0.13: version "2.1.0" @@ -5779,29 +5847,30 @@ fsevents@^1.0.0, fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" - integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== +function.prototype.name@^1.1.2, function.prototype.name@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.4.tgz#e4ea839b9d3672ae99d0efd9f38d9191c5eaac83" + integrity sha512-iqy1pIotY/RmhdFZygSSlW0wko2yxkSCKqsuv4pr8QESohpYyG/Z7B/XXvPRKTJS//960rgguE5mSRUsDdaJrQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - functions-have-names "^1.2.0" + es-abstract "^1.18.0-next.2" + functions-have-names "^1.2.2" -functions-have-names@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" - integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== +functions-have-names@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" + integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== gauge@~2.7.3: version "2.7.4" @@ -5827,11 +5896,20 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-caller-file@^2.0.1: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-pkg-repo@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" @@ -6020,10 +6098,10 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.2: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== gray-matter@^3.1.1: version "3.1.1" @@ -6046,9 +6124,9 @@ growly@^1.3.0: integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= handlebars@^4.0.11, handlebars@^4.0.2, handlebars@^4.0.3: - version "4.7.6" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" - integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== dependencies: minimist "^1.2.5" neo-async "^2.6.0" @@ -6077,6 +6155,11 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" +has-bigints@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + has-binary2@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" @@ -6109,10 +6192,10 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== has-unicode@^2.0.0: version "2.0.1" @@ -6188,16 +6271,16 @@ header-case@^1.0.0: upper-case "^1.1.3" highlight.js@^9.11.0: - version "9.18.3" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" - integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== + version "9.18.5" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" + integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== highlight.js@~9.12.0: version "9.12.0" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" integrity sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4= -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -6228,11 +6311,12 @@ html-dom-parser@0.1.3: htmlparser2 "3.9.1" html-element-map@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" - integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== + version "1.3.0" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.0.tgz#fcf226985d7111e6c2b958169312ec750d02f0d3" + integrity sha512-AqCt/m9YaiMwaaAyOPdq4Ga0cM+jdDWWGueUMkdROZcTeClaGpN0AQeyGchZhTegQoABmc6+IqH7oCR/8vhQYg== dependencies: array-filter "^1.0.0" + call-bind "^1.0.2" html-encoding-sniffer@^1.0.1, html-encoding-sniffer@^1.0.2: version "1.0.2" @@ -6287,17 +6371,15 @@ htmlparser2@4.1.0: domutils "^2.0.0" entities "^2.0.0" -htmlparser2@^3.9.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== +htmlparser2@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.0.0.tgz#c2da005030390908ca4c91e5629e418e0665ac01" + integrity sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw== dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.4.4" + entities "^2.0.0" http-errors@1.7.3: version "1.7.3" @@ -6402,11 +6484,16 @@ idyll-component-children@^1.0.7: resolved "https://registry.yarnpkg.com/idyll-component-children/-/idyll-component-children-1.0.10.tgz#ff4d177f27c8ab8cfb01541f799accde8a1b81ad" integrity sha512-D1DgjXtdf+kIrjmO5jPGitoDVRh698Sxl1R3R2cwEFXAkRTRKsOU0UD8UAZcVeYy8MAB28WXvwv1i7tvueuWZA== -ieee754@1.1.13, ieee754@^1.1.4: +ieee754@1.1.13: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" @@ -6501,9 +6588,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== inline-source-map@~0.6.0: version "0.6.2" @@ -6557,9 +6644,9 @@ insert-css@^2.0.0: integrity sha1-610Ql7dUL0x56jBg067gfQU4gPQ= insert-module-globals@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" - integrity sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw== + version "7.2.1" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3" + integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg== dependencies: JSONStream "^1.0.3" acorn-node "^1.5.2" @@ -6577,7 +6664,7 @@ intersection-observer@^0.5.0: resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.5.1.tgz#e340fc56ce74290fe2b2394d1ce88c4353ac6dfa" integrity sha512-Zd7Plneq82kiXFixs7bX62YnuZ0BMRci9br7io88LwDyF3V43cQMI+G5IiTlTNTt+LsDUppl19J/M2Fp9UkH6g== -invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -6613,6 +6700,11 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-bigint@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" + integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -6627,20 +6719,22 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e" - integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ== +is-boolean-object@^1.0.1, is-boolean-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + dependencies: + call-bind "^1.0.0" is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@^2.0.2, is-buffer@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== +is-buffer@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-builtin-module@^1.0.0: version "1.0.0" @@ -6649,10 +6743,10 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" - integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== +is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.2, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== is-ci@^1.0.10: version "1.2.1" @@ -6668,6 +6762,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -6802,10 +6903,10 @@ is-lower-case@^1.1.0: dependencies: lower-case "^1.1.0" -is-negative-zero@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" - integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-npm@^1.0.0: version "1.0.0" @@ -6887,11 +6988,12 @@ is-redirect@^1.0.0: resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= -is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== +is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1, is-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== dependencies: + call-bind "^1.0.2" has-symbols "^1.0.1" is-retry-allowed@^1.0.0: @@ -6914,7 +7016,7 @@ is-subset@^0.1.1: resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= -is-symbol@^1.0.2: +is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== @@ -7334,9 +7436,9 @@ js-yaml@3.13.1: esprima "^4.0.0" js-yaml@^3.10.0, js-yaml@^3.13.1, js-yaml@^3.7.0, js-yaml@^3.8.4: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -7530,9 +7632,9 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.1.0, json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== dependencies: minimist "^1.2.5" @@ -7613,6 +7715,11 @@ klaw@~2.0.0: dependencies: graceful-fs "^4.1.9" +klona@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + labeled-stream-splicer@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" @@ -7795,15 +7902,15 @@ loader-utils@^1.2.3: emojis-list "^3.0.0" json5 "^1.0.1" -localtunnel@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.0.tgz#2ea71174fa80e34cce91b2a7ce416e6a57d9ff7c" - integrity sha512-g6E0aLgYYDvQDxIjIXkgJo2+pHj3sGg4Wz/XP3h2KtZnRsWPbOQY+hw1H8Z91jep998fkcVE9l+kghO+97vllg== +localtunnel@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.1.tgz#8f7c593f3005647f7675e6e69af9bf746571a631" + integrity sha512-LiaI5wZdz0xFkIQpXbNI62ZnNn8IMsVhwxHmhA+h4vj8R9JG/07bQHWwQlyy7b95/5fVOCHJfIHv+a5XnkvaJA== dependencies: - axios "0.19.0" - debug "4.1.1" + axios "0.21.1" + debug "4.3.1" openurl "1.1.1" - yargs "13.3.0" + yargs "16.2.0" locate-path@^2.0.0: version "2.0.0" @@ -7898,10 +8005,10 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@2.2.0, log-symbols@^2.2.0: version "2.2.0" @@ -7950,7 +8057,7 @@ lowlight@~1.9.1: fault "^1.0.2" highlight.js "~9.12.0" -lru-cache@6.0.0: +lru-cache@6.0.0, lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== @@ -8213,17 +8320,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== +mime-db@1.46.0: + version "1.46.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" + integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + version "2.1.29" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" + integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== dependencies: - mime-db "1.44.0" + mime-db "1.46.0" mime@1.4.1: version "1.4.1" @@ -8250,7 +8357,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= @@ -8313,6 +8420,14 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -8373,6 +8488,11 @@ mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.0, mkdirp@~0.5.1: dependencies: minimist "^1.2.5" +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mocha@6.1: version "6.1.4" resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.1.4.tgz#e35fada242d5434a7e163d555c705f6875951640" @@ -8429,9 +8549,9 @@ module-deps@^6.2.3: xtend "^4.0.0" moment@^2.6.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.0.tgz#fcbef955844d91deb55438613ddcec56e86a3425" - integrity sha512-z6IJ5HXYiuxvFTI6eiQ9dm77uE0gyy1yXNApVHqTcnIKfY9tIwEjlzsZ6u1LQXvVgKeTnv9Xm7NDvJ7lso3MtA== + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== moo@^0.5.0: version "0.5.1" @@ -8465,11 +8585,16 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@2.1.2, ms@^2.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + multimatch@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" @@ -8491,9 +8616,9 @@ mute-stream@0.0.7: integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanomatch@^1.2.9: version "1.2.13" @@ -8525,15 +8650,14 @@ natural-compare@^1.4.0: integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= nearley@^2.15.0, nearley@^2.7.10: - version "2.19.7" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.19.7.tgz#eafbe3e2d8ccfe70adaa5c026ab1f9709c116218" - integrity sha512-Y+KNwhBPcSJKeyQCFjn8B/MIe+DDlhaaDgjVldhy5xtFewIbiQgcbZV8k2gCVwkI1ZsKCnjIYZbR+0Fim5QYgg== + version "2.20.1" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" + integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== dependencies: commander "^2.19.0" moo "^0.5.0" railroad-diagrams "^1.0.0" randexp "0.4.6" - semver "^5.4.1" negotiator@0.6.2: version "0.6.2" @@ -8545,7 +8669,7 @@ neo-async@2.6.1: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -8556,21 +8680,20 @@ next-tick@~1.0.0: integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= next@^9.5.1: - version "9.5.3" - resolved "https://registry.yarnpkg.com/next/-/next-9.5.3.tgz#7af5270631f98d330a7f75a6e8e1ac202aa155e2" - integrity sha512-DGrpTNGV2RNMwLaSzpgbkbaUuVk30X71/roXHS10isSXo2Gm+qWcjonDyOxf1KmOvHZRHA/Fa+LaAR7ysdYS3A== + version "9.5.5" + resolved "https://registry.yarnpkg.com/next/-/next-9.5.5.tgz#37a37095e7c877ed6c94ba82e34ab9ed02b4eb33" + integrity sha512-KF4MIdTYeI6YIGODNw27w9HGzCll4CXbUpkP6MNvyoHlpsunx8ybkQHm/hYa7lWMozmsn58LwaXJOhe4bSrI0g== dependencies: "@ampproject/toolbox-optimizer" "2.6.0" "@babel/code-frame" "7.10.4" "@babel/core" "7.7.7" "@babel/plugin-proposal-class-properties" "7.10.4" "@babel/plugin-proposal-export-namespace-from" "7.10.4" - "@babel/plugin-proposal-nullish-coalescing-operator" "7.10.4" "@babel/plugin-proposal-numeric-separator" "7.10.4" "@babel/plugin-proposal-object-rest-spread" "7.11.0" - "@babel/plugin-proposal-optional-chaining" "7.11.0" "@babel/plugin-syntax-bigint" "7.8.3" "@babel/plugin-syntax-dynamic-import" "7.8.3" + "@babel/plugin-syntax-jsx" "7.10.4" "@babel/plugin-transform-modules-commonjs" "7.10.4" "@babel/plugin-transform-runtime" "7.11.5" "@babel/preset-env" "7.11.5" @@ -8579,19 +8702,21 @@ next@^9.5.1: "@babel/preset-typescript" "7.10.4" "@babel/runtime" "7.11.2" "@babel/types" "7.11.5" - "@next/react-dev-overlay" "9.5.3" - "@next/react-refresh-utils" "9.5.3" + "@hapi/accept" "5.0.1" + "@next/env" "9.5.5" + "@next/polyfill-module" "9.5.5" + "@next/react-dev-overlay" "9.5.5" + "@next/react-refresh-utils" "9.5.5" ast-types "0.13.2" - babel-plugin-syntax-jsx "6.18.0" babel-plugin-transform-define "2.0.0" babel-plugin-transform-react-remove-prop-types "0.4.24" browserslist "4.13.0" buffer "5.6.0" - cacache "13.0.1" + cacache "15.0.5" caniuse-lite "^1.0.30001113" chokidar "2.1.8" crypto-browserify "3.12.0" - css-loader "3.5.3" + css-loader "4.3.0" cssnano-simple "1.2.0" find-cache-dir "3.3.1" jest-worker "24.9.0" @@ -8608,15 +8733,15 @@ next@^9.5.1: react-is "16.13.1" react-refresh "0.8.3" resolve-url-loader "3.1.1" - sass-loader "8.0.2" - schema-utils "2.6.6" + sass-loader "10.0.2" + schema-utils "2.7.1" stream-browserify "3.0.0" style-loader "1.2.1" styled-jsx "3.3.0" use-subscription "1.4.1" vm-browserify "1.1.2" watchpack "2.0.0-beta.13" - web-vitals "0.2.1" + web-vitals "0.2.4" webpack "4.44.1" webpack-sources "1.4.3" @@ -8659,9 +8784,9 @@ node-fetch@^1.0.1: is-stream "^1.0.1" node-html-parser@^1.2.19: - version "1.2.21" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.2.21.tgz#93b074d877007c7148d594968a642cd65d254daa" - integrity sha512-6vDhgen6J332syN5HUmeT4FfBG7m6bFRrPN+FXY8Am7FGuVpsIxTASVbeoO5PF2IHbX2s+WEIudb1hgxOjllNQ== + version "1.4.9" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.9.tgz#3c8f6cac46479fae5800725edb532e9ae8fd816c" + integrity sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw== dependencies: he "1.2.0" @@ -8710,10 +8835,10 @@ node-notifier@^5.0.2: shellwords "^0.1.1" which "^1.3.0" -node-releases@^1.1.58, node-releases@^1.1.61: - version "1.1.61" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e" - integrity sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g== +node-releases@^1.1.58, node-releases@^1.1.70: + version "1.1.71" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" + integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== normalize-html-whitespace@1.0.0: version "1.0.0" @@ -8759,12 +8884,12 @@ npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== dependencies: - boolbase "~1.0.0" + boolbase "^1.0.0" number-is-nan@^1.0.0: version "1.0.1" @@ -8791,11 +8916,6 @@ object-assign@*, object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, o resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -8810,10 +8930,10 @@ object-get@^2.1.0: resolved "https://registry.yarnpkg.com/object-get/-/object-get-2.1.1.tgz#1dad63baf6d94df184d1c58756cc9be55b174dac" integrity sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg== -object-inspect@^1.7.0, object-inspect@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== +object-inspect@^1.7.0, object-inspect@^1.8.0, object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== object-inspect@~1.4.0: version "1.4.1" @@ -8821,12 +8941,12 @@ object-inspect@~1.4.0: integrity sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw== object-is@^1.0.2, object-is@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: version "1.1.1" @@ -8838,11 +8958,6 @@ object-path@0.11.4: resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" integrity sha1-NwrnUvvzfePqcKhhwju6iRVpGUk= -object-path@^0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5" - integrity sha1-D9mnT8X60a45aLWGvaXGMr1sBaU= - object-to-spawn-args@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz#77da8827f073d011c9e1b173f895781470246785" @@ -8865,42 +8980,44 @@ object.assign@4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" - integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== +object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.0" has-symbols "^1.0.1" object-keys "^1.1.1" object.entries@^1.0.4, object.entries@^1.1.1, object.entries@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" - integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.5" + es-abstract "^1.18.0-next.1" has "^1.0.3" -object.fromentries@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" - integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== +object.fromentries@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.2" has "^1.0.3" object.getownpropertydescriptors@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.2" object.omit@^2.0.0: version "2.0.1" @@ -8917,14 +9034,14 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.0.4, object.values@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== +object.values@^1.0.4, object.values@^1.1.1, object.values@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" + integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.2" has "^1.0.3" on-finished@~2.3.0: @@ -9088,10 +9205,10 @@ p-map@^1.1.1: resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" @@ -9184,6 +9301,13 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" @@ -9194,26 +9318,20 @@ parse5@^1.5.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" integrity sha1-m387DeMr543CQBsXVzzK8Pb1nZQ= -parse5@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" - integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== - dependencies: - "@types/node" "*" +parse5@^6.0.0, parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" +parseqs@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" + integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" +parseuri@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" + integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== parseurl@~1.3.2: version "1.3.3" @@ -9431,7 +9549,7 @@ postcss-modules-extract-imports@^2.0.0: dependencies: postcss "^7.0.5" -postcss-modules-local-by-default@^3.0.2: +postcss-modules-local-by-default@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== @@ -9465,16 +9583,16 @@ postcss-safe-parser@4.0.2: postcss "^7.0.26" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.3.tgz#766d77728728817cc140fa1ac6da5e77f9fada98" - integrity sha512-0ClFaY4X1ra21LRqbW6y3rUbWcxnSVkDFG57R7Nxus9J9myPFlv+jYDMohzpkBx0RrjjiqjtycpchQ+PLGmZ9w== + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== dependencies: cssesc "^3.0.0" indexes-of "^1.0.1" uniq "^1.0.1" util-deprecate "^1.0.2" -postcss-value-parser@^4.0.3, postcss-value-parser@^4.1.0: +postcss-value-parser@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== @@ -9497,10 +9615,10 @@ postcss@7.0.32: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.34" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.34.tgz#f2baf57c36010df7de4009940f21532c16d65c20" - integrity sha512-H/7V2VeNScX9KE83GDrDZNiGT1m2H+UTnlinIzhjlLX9hfMUn1mHNnGeX81a1c8JSBdBvqk7c2ZOG6ZPn5itGw== +postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -9669,9 +9787,9 @@ qs@6.2.3: integrity sha1-HPyyXBCpsrSDBT/zn138kjOQjP4= qs@^6.5.1: - version "6.9.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== + version "6.9.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" + integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== qs@~6.5.2: version "6.5.2" @@ -9683,11 +9801,16 @@ querystring-es3@^0.2.0, querystring-es3@~0.2.0: resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= -querystring@0.2.0, querystring@^0.2.0: +querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" @@ -9787,9 +9910,9 @@ react-dom-factories@^1.0.1: integrity sha1-63cFxNs2+1AbOqOP91lhaqD/luA= react-dom@^16.0.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" + integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -9850,9 +9973,9 @@ react-table@6.8.6: classnames "^2.2.5" react-test-renderer@^16.0.0, react-test-renderer@^16.0.0-0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" - integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" + integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" @@ -9867,18 +9990,18 @@ react-tooltip@^3.8.4: prop-types "^15.6.0" react-youtube@^7.6.0: - version "7.12.0" - resolved "https://registry.yarnpkg.com/react-youtube/-/react-youtube-7.12.0.tgz#632b770556fd415179093e4a6eeea36d109fb3d4" - integrity sha512-26ARkEJlTnS4xLSbxvSf/SFYq76x9n+u8YQHwPn5EEd/LOA09uq+TOl0R2ren7U02BsPSZQq+MIZY/XUYzhYng== + version "7.13.1" + resolved "https://registry.yarnpkg.com/react-youtube/-/react-youtube-7.13.1.tgz#3b327599a687bf22e071468818522920b36bcb57" + integrity sha512-b++TLHmHDpd0ZBS1wcbYabbuchU+W4jtx5A2MUQX0BINNKKsaIQX29sn/aLvZ9v5luwAoceia3VGtyz9blaB9w== dependencies: fast-deep-equal "3.1.3" prop-types "15.7.2" youtube-player "5.5.2" react@15: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" - integrity sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI= + version "15.7.0" + resolved "https://registry.yarnpkg.com/react/-/react-15.7.0.tgz#10308fd42ac6912a250bf00380751abc41ac7106" + integrity sha512-5/MMRYmpmM0sMTHGLossnJCrmXQIiJilD6y3YN3TzAwGFj6zdnMtFv6xmi65PHKRV+pehIHpT7oy67Sr6s9AHA== dependencies: create-react-class "^15.6.0" fbjs "^0.8.9" @@ -9887,9 +10010,9 @@ react@15: prop-types "^15.5.10" react@^16.0.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== + version "16.14.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" + integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -9982,7 +10105,7 @@ read-pkg@^4.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.5.0, readable-stream@^3.6.0: +readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -10000,10 +10123,10 @@ readdirp@^2.0.0, readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" @@ -10067,9 +10190,9 @@ regenerate-unicode-properties@^8.2.0: regenerate "^1.4.0" regenerate@^1.2.1, regenerate@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.10.5: version "0.10.5" @@ -10131,7 +10254,7 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^4.7.0: +regexpu-core@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== @@ -10176,9 +10299,9 @@ regjsparser@^0.1.4: jsesc "~0.5.0" regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + version "0.6.7" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.7.tgz#c00164e1e6713c2e3ee641f1701c4b7aa0a7f86c" + integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== dependencies: jsesc "~0.5.0" @@ -10312,10 +10435,11 @@ resolve@1.1.7: integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= resolve@^1.1.4, resolve@^1.1.5, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.8.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: + is-core-module "^2.2.0" path-parse "^1.0.6" resp-modifier@6.0.2: @@ -10359,13 +10483,20 @@ rimraf@2.6.2: dependencies: glob "^7.0.5" -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -10424,9 +10555,9 @@ rxjs@^5.5.2, rxjs@^5.5.6: symbol-observable "1.0.1" rxjs@^6.5.2: - version "6.6.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" - integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + version "6.6.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.6.tgz#14d8417aa5a07c5e633995b525e1e3c0dec03b70" + integrity sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg== dependencies: tslib "^1.9.0" @@ -10465,16 +10596,16 @@ sane@~1.6.0: walker "~1.0.5" watch "~0.10.0" -sass-loader@8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" - integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== +sass-loader@10.0.2: + version "10.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.2.tgz#c7b73010848b264792dd45372eea0b87cba4401e" + integrity sha512-wV6NDUVB8/iEYMalV/+139+vl2LaRFlZGEd5/xmdcdzQcgmis+npyco6NsDTVOlNA3y2NV9Gcz+vHyFMIT+ffg== dependencies: - clone-deep "^4.0.1" - loader-utils "^1.2.3" - neo-async "^2.6.1" - schema-utils "^2.6.1" - semver "^6.3.0" + klona "^2.0.3" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^2.7.1" + semver "^7.3.2" sax@1.2.1: version "1.2.1" @@ -10494,13 +10625,14 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@2.6.6: - version "2.6.6" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c" - integrity sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA== +schema-utils@2.7.1, schema-utils@^2.6.6, schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: - ajv "^6.12.0" - ajv-keywords "^3.4.1" + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" schema-utils@^1.0.0: version "1.0.0" @@ -10511,15 +10643,6 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.1, schema-utils@^2.6.6: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - scrollama@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/scrollama/-/scrollama-1.4.4.tgz#e0fd474e04c0be4c95d08280bdc2d636f619db59" @@ -10562,6 +10685,13 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" @@ -10662,13 +10792,6 @@ sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: inherits "^2.0.1" safe-buffer "^5.0.1" -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - shallow-copy@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" @@ -10744,9 +10867,9 @@ slash@^2.0.0: integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== smartquotes@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/smartquotes/-/smartquotes-2.3.1.tgz#01ebb595d6c7a9e24d90e8cb95c17d0e1af49407" - integrity sha1-Aeu1ldbHqeJNkOjLlcF9Dhr0lAc= + version "2.3.2" + resolved "https://registry.yarnpkg.com/smartquotes/-/smartquotes-2.3.2.tgz#fb1630c49ba04e57446e1a97dc10d590072af4a6" + integrity sha512-0R6YJ5hLpDH4mZR7N5eZ12oCMLspvGOHL9A9SEm2e3b/CQmQidekW4SWSKEmor/3x6m3NCBBEqLzikcZC9VJNQ== snake-case@^2.1.0: version "2.1.0" @@ -10790,75 +10913,52 @@ socket.io-adapter@~1.1.0: resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== -socket.io-client@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== +socket.io-client@2.4.0, socket.io-client@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" + integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== dependencies: backo2 "1.0.2" - base64-arraybuffer "0.1.5" component-bind "1.0.0" - component-emitter "1.2.1" + component-emitter "~1.3.0" debug "~3.1.0" - engine.io-client "~3.2.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.2.0" - to-array "0.1.4" - -socket.io-client@^2.0.4: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" - integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~4.1.0" - engine.io-client "~3.4.0" + engine.io-client "~3.5.0" has-binary2 "~1.0.2" - has-cors "1.1.0" indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" + parseqs "0.0.6" + parseuri "0.0.6" socket.io-parser "~3.3.0" to-array "0.1.4" -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== +socket.io-parser@~3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" + integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== dependencies: - component-emitter "1.2.1" + component-emitter "~1.3.0" debug "~3.1.0" isarray "2.0.1" -socket.io-parser@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" - integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== +socket.io-parser@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" + integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== dependencies: component-emitter "1.2.1" - debug "~3.1.0" + debug "~4.1.0" isarray "2.0.1" -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== +socket.io@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.0.tgz#01030a2727bd8eb2e85ea96d69f03692ee53d47e" + integrity sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ== dependencies: - debug "~3.1.0" - engine.io "~3.2.0" + debug "~4.1.0" + engine.io "~3.5.0" has-binary2 "~1.0.2" socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" + socket.io-client "2.4.0" + socket.io-parser "~3.4.0" sort-array@^2.0.0: version "2.0.0" @@ -10908,9 +11008,9 @@ source-map-support@~0.5.12: source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" @@ -10961,9 +11061,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce" - integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw== + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -11013,12 +11113,11 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== +ssri@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: - figgy-pudding "^3.5.1" minipass "^3.1.1" stacktrace-parser@0.1.10: @@ -11208,9 +11307,9 @@ string-width@^3.0.0, string-width@^3.1.0: strip-ansi "^5.1.0" string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" @@ -11222,28 +11321,29 @@ string.prototype.repeat@^0.2.0: integrity sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8= string.prototype.trim@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.2.tgz#f538d0bacd98fc4297f0bef645226d5aaebf59f3" - integrity sha512-b5yrbl3BXIjHau9Prk7U0RRYcUYdN4wGSVaqoBQS50CCE3KBuYU0TYRNPFCP7aVoNMX87HKThdMRVIP3giclKg== + version "1.2.4" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz#6014689baf5efaf106ad031a5fa45157666ed1bd" + integrity sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.0" + es-abstract "^1.18.0-next.2" -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== +string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== +string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -11516,6 +11616,18 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tar@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -11617,13 +11729,13 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -tfunk@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-3.1.0.tgz#38e4414fc64977d87afdaa72facb6d29f82f7b5b" - integrity sha1-OORBT8ZJd9h6/apy+sttKfgve1s= +tfunk@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-4.0.0.tgz#de9399feaf2060901d590b7faad80fcd5443077e" + integrity sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ== dependencies: - chalk "^1.1.1" - object-path "^0.9.0" + chalk "^1.1.3" + dlv "^1.1.3" throat@^3.0.0: version "3.2.0" @@ -11656,9 +11768,9 @@ timers-browserify@^1.0.1: process "~0.11.0" timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" @@ -11795,9 +11907,9 @@ ts-pnp@^1.1.6: integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tty-browserify@0.0.0: version "0.0.0" @@ -11839,9 +11951,9 @@ type@^1.0.1: integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" - integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.3.0.tgz#ada7c045f07ead08abf9e2edd29be1a0c0661132" + integrity sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg== typedarray@^0.0.6: version "0.0.6" @@ -11859,25 +11971,30 @@ typical@^4.0.0: integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== ua-parser-js@^0.7.18: - version "0.7.22" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" - integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== + version "0.7.24" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz#8d3ecea46ed4f1f1d63ec25f17d8568105dc027c" + integrity sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw== uglify-js@^3.1.4: - version "3.10.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.4.tgz#dd680f5687bc0d7a93b14a3482d16db6eba2bfbb" - integrity sha512-kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw== - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + version "3.13.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.0.tgz#66ed69f7241f33f13531d3d51d5bcebf00df7f69" + integrity sha512-TWYSWa9T2pPN4DIJYbU9oAjQx+5qdV5RUDxwARg8fmJZrD/V27Zj0JngW5xg1DFz42G0uDYl2XhzF6alSzD62w== umd@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== +unbox-primitive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.0.tgz#eeacbc4affa28e9b3d36b5eaeccc50b3251b1d3f" + integrity sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.0" + has-symbols "^1.0.0" + which-boxed-primitive "^1.0.1" + undeclared-identifiers@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" @@ -12010,9 +12127,9 @@ upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= uri-js@^4.2.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" - integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" @@ -12238,10 +12355,10 @@ watch@~0.10.0: resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" integrity sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw= -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== dependencies: chokidar "^2.1.8" @@ -12254,15 +12371,15 @@ watchpack@2.0.0-beta.13: graceful-fs "^4.1.2" watchpack@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.0" + watchpack-chokidar2 "^2.0.1" wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" @@ -12271,10 +12388,10 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web-vitals@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.1.tgz#60782fa690243fe35613759a0c26431f57ba7b2d" - integrity sha512-2pdRlp6gJpOCg0oMMqwFF0axjk5D9WInc09RSYtqFgPXQ15+YKNQ7YnBBEqAL5jvmfH9WvoXDMb8DHwux7pIew== +web-vitals@0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.4.tgz#ec3df43c834a207fd7cdefd732b2987896e08511" + integrity sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg== webidl-conversions@^3.0.0: version "3.0.1" @@ -12331,9 +12448,9 @@ whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: iconv-lite "0.4.24" whatwg-fetch@>=0.10.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz#e5f871572d6879663fa5674c8f833f15a8425ab3" - integrity sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ== + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== whatwg-fetch@^2.0.3: version "2.0.4" @@ -12371,6 +12488,17 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" +which-boxed-primitive@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" @@ -12453,6 +12581,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -12494,21 +12631,10 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@~3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -ws@~6.1.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" - integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== - dependencies: - async-limiter "~1.0.0" +ws@~7.4.2: + version "7.4.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" + integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== x-path@^0.0.2: version "0.0.2" @@ -12571,14 +12697,19 @@ xtend@~3.0.0: integrity sha1-XM50B7r2Qsunvs2laBEcST9ZZlo= y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== yallist@^2.1.2: version "2.1.2" @@ -12619,7 +12750,7 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^13.0.0, yargs-parser@^13.1.1, yargs-parser@^13.1.2: +yargs-parser@^13.0.0, yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== @@ -12643,6 +12774,11 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^20.2.2: + version "20.2.6" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" + integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA== + yargs-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" @@ -12676,21 +12812,18 @@ yargs@13.2.2: y18n "^4.0.0" yargs-parser "^13.0.0" -yargs@13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" yargs@^12.0.5: version "12.0.5" From faf03c8250071c0da4adcb3621f54e7fab2f69db Mon Sep 17 00:00:00 2001 From: Matteo Hoch Date: Tue, 2 Mar 2021 19:12:36 -0800 Subject: [PATCH 12/12] Updated yarn take 2, installed starting from idyll main master --- yarn.lock | 2779 +++++++++++++++++++++++++---------------------------- 1 file changed, 1323 insertions(+), 1456 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5f3eedb93..717a7a6ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,12 +2,12 @@ # yarn lockfile v1 -"@ampproject/toolbox-core@2.7.4", "@ampproject/toolbox-core@^2.6.0": - version "2.7.4" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.7.4.tgz#8355136f16301458ce942acf6c55952c9a415627" - integrity sha512-qpBhcS4urB7IKc+jx2kksN7BuvvwCo7Y3IstapWo+EW+COY5EYAUwb2pil37v3TsaqHKgX//NloFP1SKzGZAnw== +"@ampproject/toolbox-core@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.6.0.tgz#9824d5f133d82106a9bf0774920843c69fa5c869" + integrity sha512-sDMnHj8WaX3tqJS5VsIHkeW98nq5WQ0C9RoFc1PPS3rmYIlS0vhAfHbrjJw6wtuxBTQFxccje+Ew+2OJ2D15kA== dependencies: - cross-fetch "3.0.6" + cross-fetch "3.0.5" lru-cache "6.0.0" "@ampproject/toolbox-optimizer@2.6.0": @@ -35,11 +35,11 @@ terser "4.8.0" "@ampproject/toolbox-runtime-version@^2.6.0": - version "2.7.4" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.7.4.tgz#f49da0dab122101ef75ed3caed3a0142487b73e1" - integrity sha512-SAdOUOERp42thVNWaBJlnFvFVvnacMVnz5z9LyUZHSnoL1EqrAW5Sz5jv+Ly+gkA8NYsEaUxAdSCBAzE9Uzb4Q== + version "2.6.0" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.6.0.tgz#c2a310840a6c60a7f5046d2ccaf45646a761bd4f" + integrity sha512-wT+Ehsoq2PRXqpgjebygHD01BpSlaAE4HfDEVxgPVT8oAsLzE4ywZgzI2VQZfaCdb8qLyO5+WXrLSoJXxDBo2Q== dependencies: - "@ampproject/toolbox-core" "2.7.4" + "@ampproject/toolbox-core" "^2.6.0" "@ampproject/toolbox-script-csp@^2.5.4": version "2.5.4" @@ -47,30 +47,27 @@ integrity sha512-+knTYetI5nWllRZ9wFcj7mYxelkiiFVRAAW/hl0ad8EnKHMH82tRlk40CapEnUHhp6Er5sCYkumQ8dngs3Q4zQ== "@ampproject/toolbox-validator-rules@^2.5.4": - version "2.7.4" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.7.4.tgz#a58b5eca723f6c3557ac83b696de0247f5f03ce4" - integrity sha512-z3JRcpIZLLdVC9XVe7YTZuB3a/eR9s2SjElYB9AWRdyJyL5Jt7+pGNv4Uwh1uHVoBXsWEVQzNOWSNtrO3mSwZA== + version "2.5.4" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.5.4.tgz#7dee3a3edceefea459d060571db8cc6e7bbf0dd6" + integrity sha512-bS7uF+h0s5aiklc/iRaujiSsiladOsZBLrJ6QImJDXvubCAQtvE7om7ShlGSXixkMAO0OVMDWyuwLlEy8V1Ing== dependencies: - cross-fetch "3.0.6" + cross-fetch "3.0.5" -"@babel/code-frame@7.10.4": +"@babel/code-frame@7.10.4", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.5.5": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== +"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" + integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/compat-data@^7.11.0", "@babel/compat-data@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.8.tgz#5b783b9808f15cef71547f1b691f34f8ff6003a6" - integrity sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog== + browserslist "^4.12.0" + invariant "^2.2.4" + semver "^5.5.0" "@babel/core@7.7.7": version "7.7.7" @@ -92,224 +89,254 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.13.0", "@babel/generator@^7.7.7": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" - integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== +"@babel/generator@^7.11.5", "@babel/generator@^7.7.7": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" + integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== dependencies: - "@babel/types" "^7.13.0" + "@babel/types" "^7.11.5" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" - integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== +"@babel/helper-annotate-as-pure@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" + integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.10.4" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" - integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" + integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== dependencies: - "@babel/helper-explode-assignable-expression" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.10.4", "@babel/helper-compilation-targets@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.8.tgz#02bdb22783439afb11b2f009814bdd88384bd468" - integrity sha512-pBljUGC1y3xKLn1nrx2eAhurLMA8OqBtBP/JwG4U8skN7kf8/aqwwxpV1N6T0e7r6+7uNitIa/fUxPFagSXp3A== +"@babel/helper-builder-react-jsx-experimental@^7.10.4", "@babel/helper-builder-react-jsx-experimental@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz#4ea43dd63857b0a35cd1f1b161dc29b43414e79f" + integrity sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw== dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" - semver "^6.3.0" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-module-imports" "^7.10.4" + "@babel/types" "^7.11.5" -"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.13.0": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.8.tgz#0367bd0a7505156ce018ca464f7ac91ba58c1a04" - integrity sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-member-expression-to-functions" "^7.13.0" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-split-export-declaration" "^7.12.13" - -"@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" - integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - regexpu-core "^4.7.1" - -"@babel/helper-explode-assignable-expression@^7.12.13": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" - integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== - dependencies: - "@babel/types" "^7.13.0" - -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-hoist-variables@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" - integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== - dependencies: - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-member-expression-to-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz#6aa4bb678e0f8c22f58cdb79451d30494461b091" - integrity sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== - dependencies: - "@babel/types" "^7.13.0" - -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" - integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz#42eb4bd8eea68bab46751212c357bfed8b40f6f1" - integrity sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== - dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" +"@babel/helper-builder-react-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" + integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-compilation-targets@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" + integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== + dependencies: + "@babel/compat-data" "^7.10.4" + browserslist "^4.12.0" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" + integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + +"@babel/helper-create-regexp-features-plugin@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" + integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + regexpu-core "^4.7.0" + +"@babel/helper-define-map@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" + integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/types" "^7.10.5" lodash "^4.17.19" -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== +"@babel/helper-explode-assignable-expression@^7.10.4": + version "7.11.4" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b" + integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.10.4" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-remap-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" - integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-wrap-function" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/types" "^7.10.4" -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz#6034b7b51943094cb41627848cb219cb02be1d24" - integrity sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== +"@babel/helper-hoist-variables@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" + integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.0" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/types" "^7.10.4" -"@babel/helper-simple-access@^7.10.4", "@babel/helper-simple-access@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" - integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== +"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" + integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.11.0" -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" - integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== +"@babel/helper-module-imports@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" + integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== dependencies: - "@babel/types" "^7.12.1" + "@babel/types" "^7.10.4" -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" + integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== dependencies: - "@babel/types" "^7.12.13" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/template" "^7.10.4" + "@babel/types" "^7.11.0" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" + integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-regex@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" + integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== + dependencies: + lodash "^4.17.19" -"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-remap-async-to-generator@^7.10.4": + version "7.11.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" + integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-replace-supers@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" + integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-simple-access@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" + integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== + dependencies: + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" + integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== + dependencies: + "@babel/types" "^7.11.0" -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== -"@babel/helper-wrap-function@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" - integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== +"@babel/helper-wrap-function@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" + integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/helper-function-name" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" "@babel/helpers@^7.7.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.0.tgz#7647ae57377b4f0408bf4f8a7af01c42e41badc0" - integrity sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" + integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.8.tgz#10b2dac78526424dfc1f47650d0e415dfd9dc481" - integrity sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw== +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.10.4" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.7.7": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.9.tgz#ca34cb95e1c2dd126863a84465ae8ef66114be99" - integrity sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw== +"@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.7.7": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" + integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== "@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz#87aacb574b3bc4b5603f6fe41458d72a5a2ec4b1" - integrity sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" + integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@7.10.4": +"@babel/plugin-proposal-class-properties@7.10.4", "@babel/plugin-proposal-class-properties@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== @@ -317,23 +344,15 @@ "@babel/helper-create-class-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-class-properties@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" - integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-proposal-dynamic-import@^7.10.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" - integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" + integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-export-namespace-from@7.10.4": +"@babel/plugin-proposal-export-namespace-from@7.10.4", "@babel/plugin-proposal-export-namespace-from@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== @@ -341,39 +360,31 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" - integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-proposal-json-strings@^7.10.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" - integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" + integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.0" "@babel/plugin-proposal-logical-assignment-operators@^7.11.0": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" - integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" + integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" - integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== +"@babel/plugin-proposal-nullish-coalescing-operator@7.10.4", "@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" + integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@7.10.4": +"@babel/plugin-proposal-numeric-separator@7.10.4", "@babel/plugin-proposal-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== @@ -381,15 +392,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-numeric-separator@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" - integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@7.11.0": +"@babel/plugin-proposal-object-rest-spread@7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== @@ -398,51 +401,40 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.11.0": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" - integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== - dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-compilation-targets" "^7.13.8" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.13.0" - "@babel/plugin-proposal-optional-catch-binding@^7.10.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" - integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" + integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.11.0": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz#e39df93efe7e7e621841babc197982e140e90756" - integrity sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== +"@babel/plugin-proposal-optional-chaining@7.11.0", "@babel/plugin-proposal-optional-chaining@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" + integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" "@babel/plugin-proposal-private-methods@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" - integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" + integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" - integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" + integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": +"@babel/plugin-syntax-async-generators@^7.8.0": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== @@ -457,13 +449,13 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" + integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-dynamic-import@7.8.3", "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": +"@babel/plugin-syntax-dynamic-import@7.8.3", "@babel/plugin-syntax-dynamic-import@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== @@ -477,27 +469,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": +"@babel/plugin-syntax-json-strings@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@7.10.4": +"@babel/plugin-syntax-jsx@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" - integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -505,7 +490,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== @@ -519,21 +504,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": +"@babel/plugin-syntax-optional-chaining@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== @@ -541,138 +526,139 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-top-level-await@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" + integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-typescript@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474" - integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== +"@babel/plugin-syntax-typescript@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25" + integrity sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-arrow-functions@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" - integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" + integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-async-to-generator@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" - integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" + integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" "@babel/plugin-transform-block-scoped-functions@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" - integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" + integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-block-scoping@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" - integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== + version "7.11.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" + integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-classes@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" - integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-split-export-declaration" "^7.12.13" + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" + integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-define-map" "^7.10.4" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" - integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" + integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-destructuring@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" - integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" + integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" - integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" + integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-duplicate-keys@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" - integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" + integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-exponentiation-operator@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" - integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" + integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-for-of@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" - integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" + integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-function-name@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" - integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" + integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-literals@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" - integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" + integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-member-expression-literals@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" - integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" + integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-modules-amd@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" - integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" + integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@7.10.4": +"@babel/plugin-transform-modules-commonjs@7.10.4", "@babel/plugin-transform-modules-commonjs@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== @@ -682,131 +668,124 @@ "@babel/helper-simple-access" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.10.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" - integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== - dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" - babel-plugin-dynamic-import-node "^2.3.3" - "@babel/plugin-transform-modules-systemjs@^7.10.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" - integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== - dependencies: - "@babel/helper-hoist-variables" "^7.13.0" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-identifier" "^7.12.11" + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" + integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== + dependencies: + "@babel/helper-hoist-variables" "^7.10.4" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" - integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" + integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" - integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" + integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/plugin-transform-new-target@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" - integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" + integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-object-super@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" - integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" + integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" -"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" - integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== +"@babel/plugin-transform-parameters@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" + integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-property-literals@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" - integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" + integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-react-display-name@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" - integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" + integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-react-jsx-development@^7.10.4": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" - integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz#e1439e6a57ee3d43e9f54ace363fb29cefe5d7b6" + integrity sha512-cImAmIlKJ84sDmpQzm4/0q/2xrXlDezQoixy3qoz1NJeZL/8PRon6xZtluvr4H4FzwlDGI5tCcFupMnXGtr+qw== dependencies: - "@babel/plugin-transform-react-jsx" "^7.12.17" + "@babel/helper-builder-react-jsx-experimental" "^7.11.5" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" "@babel/plugin-transform-react-jsx-self@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz#422d99d122d592acab9c35ea22a6cfd9bf189f60" - integrity sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" + integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" "@babel/plugin-transform-react-jsx-source@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz#051d76126bee5c9a6aa3ba37be2f6c1698856bcb" - integrity sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" + integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-react-jsx@^7.10.4", "@babel/plugin-transform-react-jsx@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz#dd2c1299f5e26de584939892de3cfc1807a38f24" - integrity sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw== +"@babel/plugin-transform-react-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" + integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/types" "^7.12.17" + "@babel/helper-builder-react-jsx" "^7.10.4" + "@babel/helper-builder-react-jsx-experimental" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" "@babel/plugin-transform-react-pure-annotations@^7.10.4": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" - integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501" + integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-regenerator@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" - integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" + integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== dependencies: regenerator-transform "^0.14.2" "@babel/plugin-transform-reserved-words@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" - integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" + integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-runtime@7.11.5": version "7.11.5" @@ -819,64 +798,66 @@ semver "^5.5.1" "@babel/plugin-transform-shorthand-properties@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" - integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" + integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-spread@^7.11.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" - integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" + integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" "@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" - integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" + integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-regex" "^7.10.4" "@babel/plugin-transform-template-literals@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" - integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" + integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" - integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" + integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-typescript@^7.10.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz#4a498e1f3600342d2a9e61f60131018f55774853" - integrity sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ== + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb" + integrity sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-typescript" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-typescript" "^7.10.4" "@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" - integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" + integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" - integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" + integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/preset-env@7.11.5": version "7.11.5" @@ -984,45 +965,38 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-typescript" "^7.10.4" -"@babel/runtime@7.11.2": +"@babel/runtime@7.11.2", "@babel/runtime@^7.8.4": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.8.4": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.9.tgz#97dbe2116e2630c489f22e0656decd60aaa1fcee" - integrity sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA== +"@babel/template@^7.10.4", "@babel/template@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== dependencies: - regenerator-runtime "^0.13.4" + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/template@^7.12.13", "@babel/template@^7.7.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.7.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" - integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.0" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.0" - "@babel/types" "^7.13.0" +"@babel/traverse@^7.10.4", "@babel/traverse@^7.7.4": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" + integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.11.5" + "@babel/types" "^7.11.5" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@7.11.5": +"@babel/types@7.11.5", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.4.4", "@babel/types@^7.7.4": version "7.11.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== @@ -1040,54 +1014,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.11.5", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.13.0", "@babel/types@^7.4.4", "@babel/types@^7.7.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" - integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@hapi/accept@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.1.tgz#068553e867f0f63225a506ed74e899441af53e10" - integrity sha512-fMr4d7zLzsAXo28PRRQPXR1o2Wmu+6z+VY1UzDp0iFo13Twj8WePakwXBiqn3E1aAlTpSNzCXdnnQXFhst8h8Q== - dependencies: - "@hapi/boom" "9.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/boom@9.x.x": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.1.tgz#89e6f0e01637c2a4228da0d113e8157c93677b04" - integrity sha512-VNR8eDbBrOxBgbkddRYIe7+8DZ+vSbV6qlmaN2x7eWjsUjy2VmQgChkOKcVZIeupEZYj+I0dqNg430OhwzagjA== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/hoek@9.x.x": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.1.tgz#9daf5745156fd84b8e9889a2dc721f0c58e894aa" - integrity sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw== - "@improved/node@^1.0.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@improved/node/-/node-1.1.1.tgz#7be3d401b7cd2f848d5bb8713d2826b84fc51817" integrity sha512-ePDxG9UuU9Kobk90ZUjtmDW8IT9U7aRb1/Rl9683MRNM+ur0ocHL2v7TPH2ajTiVSBUFbbeW8vKIt9jrb0JIAA== -"@next/env@9.5.5": - version "9.5.5" - resolved "https://registry.yarnpkg.com/@next/env/-/env-9.5.5.tgz#db993649ec6e619e34a36de90dc2baa52fc5280f" - integrity sha512-N9wdjU6XoqLqNQWtrGiWtp1SUuJsYK1cNrZ24A6YD+4w5CNV5SkZX6aewKZCCLP5Y8UNfTij2FkJiSYUfBjX8g== - -"@next/polyfill-module@9.5.5": - version "9.5.5" - resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-9.5.5.tgz#d9c65679a66664ab4859078f58997113c9d01f10" - integrity sha512-itqYFeHo3yN4ccpHq2uNFC2UVQm12K6DxUVwYdui9MJiiueT0pSGb2laYEjf/G5+vVq7M2vb+DkjkOkPMBVfeg== - -"@next/react-dev-overlay@9.5.5": - version "9.5.5" - resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-9.5.5.tgz#11b36813d75c43b7bd9d5e478bded1ed5391d03a" - integrity sha512-B1nDANxjXr2oyohv+tX0OXZTmJtO5qEWmisNPGnqQ2Z32IixfaAgyNYVuCVf20ap6EUz5elhgNUwRIFh/e26mQ== +"@next/react-dev-overlay@9.5.3": + version "9.5.3" + resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-9.5.3.tgz#3275301f08045ecc709e3273031973a1f5e81427" + integrity sha512-R2ZAyFjHHaMTBVi19ZZNRJNXiwn46paRi7EZvKNvMxbrzBcUYtSFj/edU3jQoF1UOcC6vGeMhtPqH55ONrIjCQ== dependencies: "@babel/code-frame" "7.10.4" ally.js "1.4.1" @@ -1100,23 +1035,25 @@ stacktrace-parser "0.1.10" strip-ansi "6.0.0" -"@next/react-refresh-utils@9.5.5": - version "9.5.5" - resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-9.5.5.tgz#fe559b5ca51c038cb7840e0d669a6d7ef01fe4eb" - integrity sha512-Gz5z0+ID+KAGto6Tkgv1a340damEw3HG6ANLKwNi5/QSHqQ3JUAVxMuhz3qnL54505I777evpzL89ofWEMIWKw== +"@next/react-refresh-utils@9.5.3": + version "9.5.3" + resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-9.5.3.tgz#a14fb6489d412b201b98aa44716fb8727ca4c6ae" + integrity sha512-W3VKOqbg+4Kw+k6M/SODf+WIzwcx60nAemGV1nNPa/yrDtAS2YcJfqiswrJ3+2nJHzqefAFWn4XOfM0fy8ww2Q== -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== "@types/json-schema@^7.0.5": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + +"@types/node@*": + version "14.11.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.2.tgz#2de1ed6670439387da1c9f549a2ade2b0a799256" + integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA== "@webassemblyjs/ast@1.9.0": version "1.9.0" @@ -1359,14 +1296,14 @@ acorn@^5.5.3: integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^6.0.1, acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== acorn@^7.0.0, acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + version "7.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" + integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== add-stream@^1.0.0: version "1.0.0" @@ -1390,9 +1327,9 @@ after@0.8.2: integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + version "6.0.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.1.tgz#808007e4e5867decb0ab6ab2f928fbdb5a596db4" + integrity sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg== dependencies: debug "4" @@ -1429,10 +1366,10 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.5.2: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.5.2: + version "6.12.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" + integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -1514,10 +1451,11 @@ ansi-styles@^3.0.0, ansi-styles@^3.2.0, ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== dependencies: + "@types/color-name" "^1.1.1" color-convert "^2.0.1" anymatch@^1.3.0: @@ -1673,13 +1611,12 @@ array.prototype.find@^2.1.1: es-abstract "^1.17.4" array.prototype.flat@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" - integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== dependencies: - call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + es-abstract "^1.17.0-next.1" arraybuffer.slice@~0.0.7: version "0.0.7" @@ -1781,9 +1718,9 @@ atob@^2.1.2: integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== aws-sdk@^2.315.0: - version "2.855.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.855.0.tgz#2788e2655d8e2eecfc9d86acafd13d872725e73a" - integrity sha512-u1lO75V82E4REeu0Pt3RE1Kg2CdtUoMgMnyR02cUxdWnoTBpdSlwvz2X2U0VEGW2oYzeJJYp0N0H1sgSRnv8vg== + version "2.758.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.758.0.tgz#9df99d5e3e22031b4ab7d9332f82782ecc29a7b3" + integrity sha512-jxuJuoUb/yVkYaJy6OuPQ5XKRajZXDKPZHvSiF0u5n3DlZfNoj92yHxidm+zpC1DeS/4is6xFCAmEct5lHAy/Q== dependencies: buffer "4.9.2" events "1.1.1" @@ -1801,16 +1738,17 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + version "1.10.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" + integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== -axios@0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== +axios@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" + integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== dependencies: - follow-redirects "^1.10.0" + follow-redirects "1.5.10" + is-buffer "^2.0.2" babel-cli@6.26.0, babel-cli@^6.26.0: version "6.26.0" @@ -2624,20 +2562,20 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-arraybuffer@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" - integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== -base64id@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= base@^0.11.1: version "0.11.2" @@ -2664,6 +2602,13 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -2675,9 +2620,9 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== bindings@^1.5.0: version "1.5.0" @@ -2701,17 +2646,17 @@ bluebird@~3.5.0: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +bn.js@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== -boolbase@^1.0.0: +boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= @@ -2779,7 +2724,7 @@ brfs@^1.4.3: static-module "^2.2.0" through2 "^2.0.0" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -2820,49 +2765,49 @@ browser-stdout@1.3.1: resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browser-sync-client@^2.26.14: - version "2.26.14" - resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.26.14.tgz#f2f0a8e5febc65b725fb38c8d648389214a38947" - integrity sha512-be0m1MchmKv/26r/yyyolxXcBi052aYrmaQep5nm8YNMjFcEyzv0ZoOKn/c3WEXNlEB/KeXWaw70fAOJ+/F1zQ== +browser-sync-client@^2.26.12: + version "2.26.12" + resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.26.12.tgz#b6c81335c6a9f1a79bca1951438800d3e7f170c8" + integrity sha512-bEBDRkufKxrIfjOsIB1FN9itUEXr2oLtz1AySgSSr80K2AWzmtoYnxtVASx/i40qFrSdeI31pNvdCjHivihLVA== dependencies: etag "1.8.1" fresh "0.5.2" mitt "^1.1.3" rxjs "^5.5.6" -browser-sync-ui@^2.26.14: - version "2.26.14" - resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-2.26.14.tgz#96632c38dda72560a3be8e985716d7a735e94749" - integrity sha512-6oT1sboM4KVNnWCCJDMGbRIeTBw97toMFQ+srImvwQ6J5t9KMgizaIX8HcKLiemsUMSJkgGM9RVKIpq2UblgOA== +browser-sync-ui@^2.26.12: + version "2.26.12" + resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-2.26.12.tgz#6a309644d3ae0fe743906558a94caf6fd118719f" + integrity sha512-PkAJNf/TfCFTCkQUfXplR2Kp/+/lbCWFO9lrgLZsmxIhvMLx2pYZFBbTBIaem8qjXhld9ZcESUC8EdU5VWFJgQ== dependencies: async-each-series "0.1.1" connect-history-api-fallback "^1" immutable "^3" server-destroy "1.0.1" - socket.io-client "^2.4.0" + socket.io-client "^2.0.4" stream-throttle "^0.1.3" browser-sync@^2.18.8: - version "2.26.14" - resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.26.14.tgz#716c13ef91e72dfe092ff84bec3ddf62ea9d81fd" - integrity sha512-3TtpsheGolJT6UFtM2CZWEcGJmI4ZEvoCKiKE2bvcDnPxRkhQT4nIGVtfiyPcoHKXGM0LwMOZmYJNWfiNfVXWA== + version "2.26.12" + resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.26.12.tgz#2724df702ef8880e711c1bf62afd7c93a3a80462" + integrity sha512-1GjAe+EpZQJgtKhWsxklEjpaMV0DrRylpHRvZWgOphDQt+bfLZjfynl/j1WjSFIx8ozj9j78g6Yk4TqD3gKaMA== dependencies: - browser-sync-client "^2.26.14" - browser-sync-ui "^2.26.14" + browser-sync-client "^2.26.12" + browser-sync-ui "^2.26.12" bs-recipes "1.3.4" bs-snippet-injector "^2.0.1" - chokidar "^3.5.1" + chokidar "^3.4.1" connect "3.6.6" connect-history-api-fallback "^1" dev-ip "^1.0.1" easy-extender "^2.3.4" - eazy-logger "3.1.0" + eazy-logger "^3" etag "^1.8.1" fresh "^0.5.2" fs-extra "3.0.1" http-proxy "^1.18.1" immutable "^3" - localtunnel "^2.0.1" + localtunnel "^2.0.0" micromatch "^4.0.2" opn "5.3.0" portscanner "2.1.1" @@ -2874,7 +2819,7 @@ browser-sync@^2.18.8: serve-index "1.9.1" serve-static "1.13.2" server-destroy "1.0.1" - socket.io "2.4.0" + socket.io "2.1.1" ua-parser-js "^0.7.18" yargs "^15.4.1" @@ -2929,11 +2874,11 @@ browserify-incremental@^3.1.1: xtend "^4.0.0" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: - bn.js "^5.0.0" + bn.js "^4.1.0" randombytes "^2.0.1" browserify-sign@^4.0.0: @@ -3030,16 +2975,15 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.3: - version "4.16.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" - integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== +browserslist@^4.12.0, browserslist@^4.8.5: + version "4.14.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.4.tgz#66a18131439f9e16c3da7f352518dfa12f60b0e3" + integrity sha512-7FOuawafVdEwa5Jv4nzeik/PepAjVte6HmVGHsjt2bC237jeL9QlcTBDF3PnHEvcC6uHwLGYPwZHNZMB7wWAnw== dependencies: - caniuse-lite "^1.0.30001181" - colorette "^1.2.1" - electron-to-chromium "^1.3.649" - escalade "^3.1.1" - node-releases "^1.1.70" + caniuse-lite "^1.0.30001135" + electron-to-chromium "^1.3.570" + escalade "^3.1.0" + node-releases "^1.1.61" bs-pretty-message@^1.0.8: version "1.0.8" @@ -3130,27 +3074,28 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== +cacache@13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" + integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== dependencies: - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" + chownr "^1.1.2" + figgy-pudding "^3.5.1" fs-minipass "^2.0.0" glob "^7.1.4" + graceful-fs "^4.2.2" infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" + lru-cache "^5.1.1" + minipass "^3.0.0" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + p-map "^3.0.0" promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.0" - tar "^6.0.2" + rimraf "^2.7.1" + ssri "^7.0.0" unique-filename "^1.1.1" cacache@^12.0.2: @@ -3203,14 +3148,6 @@ cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -3225,7 +3162,7 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" -callsite@^1.0.0: +callsite@1.0.0, callsite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= @@ -3265,7 +3202,7 @@ camelcase@5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== -camelcase@5.3.1, camelcase@^5.0.0: +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -3285,15 +3222,10 @@ camelcase@^4.0.0, camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -camelcase@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001113, caniuse-lite@^1.0.30001181: - version "1.0.30001194" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001194.tgz#3d16ff3d734a5a7d9818402c28b1f636c5be5bed" - integrity sha512-iDUOH+oFeBYk5XawYsPtsx/8fFpndAPUQJC7gBTfxHM8xw5nOZv7ceAD4frS1MKCLUac7QL5wdAJiFQlDRjXlA== +caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001113, caniuse-lite@^1.0.30001135: + version "1.0.30001135" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001135.tgz#995b1eb94404a3c9a0d7600c113c9bb27f2cd8aa" + integrity sha512-ziNcheTGTHlu9g34EVoHQdIu5g4foc8EsxMGC7Xkokmvw0dqNtX8BS8RgCgFBaAiSp2IdjvBxNdh0ssib28eVQ== capture-stack-trace@^1.0.0: version "1.0.1" @@ -3320,7 +3252,7 @@ chalk@4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^1.1.3: +chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -3369,29 +3301,17 @@ chardet@^0.4.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= -cheerio-select-tmp@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz#55bbef02a4771710195ad736d5e346763ca4e646" - integrity sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ== - dependencies: - css-select "^3.1.2" - css-what "^4.0.0" - domelementtype "^2.1.0" - domhandler "^4.0.0" - domutils "^2.4.4" - cheerio@^1.0.0-rc.3: - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.5.tgz#88907e1828674e8f9fee375188b27dadd4f0fa2f" - integrity sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw== - dependencies: - cheerio-select-tmp "^0.1.0" - dom-serializer "~1.2.0" - domhandler "^4.0.0" - entities "~2.1.0" - htmlparser2 "^6.0.0" - parse5 "^6.0.0" - parse5-htmlparser2-tree-adapter "^6.0.0" + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" + integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.1" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash "^4.15.0" + parse5 "^3.0.1" chokidar@2.1.8, chokidar@^2.1.8: version "2.1.8" @@ -3428,10 +3348,10 @@ chokidar@^1.6.1: optionalDependencies: fsevents "^1.0.0" -chokidar@^3.4.1, chokidar@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== +chokidar@^3.4.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" + integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -3439,20 +3359,15 @@ chokidar@^3.4.1, chokidar@^3.5.1: is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.5.0" + readdirp "~3.4.0" optionalDependencies: - fsevents "~2.3.1" + fsevents "~2.1.2" -chownr@^1.1.1: +chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -3556,14 +3471,14 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" clone@^1.0.2: version "1.0.4" @@ -3584,9 +3499,9 @@ code-point-at@^1.0.0: integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= collect-all@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/collect-all/-/collect-all-1.0.4.tgz#50cd7119ac24b8e12a661f0f8c3aa0ea7222ddfc" - integrity sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/collect-all/-/collect-all-1.0.3.tgz#1abcc20448b58a1447487fcf34130e9512b0acf8" + integrity sha512-0y0rBgoX8IzIjBAUnO73SEtSb4Mhk3IoceWJq5zZSxb9mWORhWH8xLYo4EDSOE1jRBk1LhmfjqWFFt10h/+MEA== dependencies: stream-connect "^1.0.2" stream-via "^1.0.4" @@ -3623,11 +3538,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - columnify@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" @@ -4032,10 +3942,10 @@ convert-source-map@~1.1.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= -cookie@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= cookiejar@^2.1.0: version "2.1.2" @@ -4065,11 +3975,11 @@ cords@^1.0.4: integrity sha1-cHIo7gQNV5UxD3ZII2TV0+c7PWU= core-js-compat@^3.6.2: - version "3.9.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.1.tgz#4e572acfe90aff69d76d8c37759d21a5c59bb455" - integrity sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== dependencies: - browserslist "^4.16.3" + browserslist "^4.8.5" semver "7.0.0" core-js@^1.0.0: @@ -4078,9 +3988,14 @@ core-js@^1.0.0: integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= core-js@^2.4.0, core-js@^2.5.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + +core-js@^3.6.4: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -4144,10 +4059,11 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: sha.js "^2.4.8" create-react-class@^15.6.0: - version "15.7.0" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e" - integrity sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng== + version "15.6.3" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" + integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== dependencies: + fbjs "^0.8.9" loose-envify "^1.3.1" object-assign "^4.1.1" @@ -4165,7 +4081,7 @@ cross-fetch@3.0.5: dependencies: node-fetch "2.6.0" -cross-fetch@3.0.6, cross-fetch@^3.0.4: +cross-fetch@^3.0.4: version "3.0.6" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c" integrity sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ== @@ -4214,39 +4130,39 @@ crypto-random-string@^1.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= -css-loader@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" - integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== +css-loader@3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.5.3.tgz#95ac16468e1adcd95c844729e0bb167639eb0bcf" + integrity sha512-UEr9NH5Lmi7+dguAm+/JSPovNjYbm2k3TK58EiwQHzOHH5Jfq1Y+XoP2bQO6TMn7PptMd0opxxedAWcaSTRKHw== dependencies: - camelcase "^6.0.0" + camelcase "^5.3.1" cssesc "^3.0.0" icss-utils "^4.1.1" - loader-utils "^2.0.0" - postcss "^7.0.32" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.27" postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.3" + postcss-modules-local-by-default "^3.0.2" postcss-modules-scope "^2.2.0" postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.1" - semver "^7.3.2" + postcss-value-parser "^4.0.3" + schema-utils "^2.6.6" + semver "^6.3.0" -css-select@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" - integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= dependencies: - boolbase "^1.0.0" - css-what "^4.0.0" - domhandler "^4.0.0" - domutils "^2.4.3" - nth-check "^2.0.0" + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" -css-what@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" - integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== css.escape@^1.5.0: version "1.5.1" @@ -4319,9 +4235,9 @@ cssstyle@^1.0.0: cssom "0.3.x" csv-parse@^4.8.2: - version "4.15.3" - resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.15.3.tgz#8a62759617a920c328cb31c351b05053b8f92b10" - integrity sha512-jlTqDvLdHnYMSr08ynNfk4IAUSJgJjTKy2U5CQBSu4cN9vQOJonLVZP4Qo4gKKrIgIQ5dr07UwOJdi+lRqT12w== + version "4.12.0" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.12.0.tgz#fd42d6291bbaadd51d3009f6cadbb3e53b4ce026" + integrity sha512-wPQl3H79vWLPI8cgKFcQXl0NBgYYEqVnT1i6/So7OjMpsI540oD7p93r3w6fDSyPvwkTepG05F69/7AViX2lXg== currently-unhandled@^0.4.1: version "0.4.1" @@ -4492,41 +4408,34 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6. dependencies: ms "2.0.0" -debug@3.2.6: +debug@3.2.6, debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debug@4, debug@4.3.1, debug@^4.0.1, debug@^4.1.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== +debug@4, debug@^4.0.1, debug@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" + integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== dependencies: ms "2.1.2" -debug@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +debug@4.1.1, debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" -debug@~3.1.0: +debug@=3.1.0, debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" -debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - decache@^4.1.0: version "4.6.0" resolved "https://registry.yarnpkg.com/decache/-/decache-4.6.0.tgz#87026bc6e696759e82d57a3841c4e251a30356e8" @@ -4703,11 +4612,6 @@ discontinuous-range@1.0.0: resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - dmd@^3.0.10: version "3.0.13" resolved "https://registry.yarnpkg.com/dmd/-/dmd-3.0.13.tgz#73294e8fae1a7a1a1c849d86b027adf04fbd5662" @@ -4743,29 +4647,37 @@ dom-serializer@1.0.1: domhandler "^3.0.0" entities "^2.0.0" -dom-serializer@^1.0.1, dom-serializer@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" - integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== +dom-serializer@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.1.0.tgz#5f7c828f1bfc44887dc2a315ab5c45691d544b58" + integrity sha512-ox7bvGXt2n+uLWtCRLybYx60IrOlWL/aCebWJk1T0d4m3y2tzf4U3ij9wBMUb6YJZpz06HCCYuyCDveE2xXmzQ== dependencies: domelementtype "^2.0.1" - domhandler "^4.0.0" + domhandler "^3.0.0" entities "^2.0.0" +dom-serializer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + domain-browser@^1.1.1, domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1, domelementtype@^1.3.0: +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1, domelementtype@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== +domelementtype@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" + integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA== domexception@^1.0.1: version "1.0.1" @@ -4781,7 +4693,7 @@ domhandler@2.3.0: dependencies: domelementtype "1" -domhandler@3.0.0: +domhandler@3.0.0, domhandler@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.0.0.tgz#51cd13efca31da95bbb0c5bee3a48300e333b3e9" integrity sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw== @@ -4795,19 +4707,13 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domhandler@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" - integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== - dependencies: - domelementtype "^2.0.1" - -domhandler@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" - integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= dependencies: - domelementtype "^2.1.0" + dom-serializer "0" + domelementtype "1" domutils@2.1.0: version "2.1.0" @@ -4826,14 +4732,14 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" -domutils@^2.0.0, domutils@^2.4.3, domutils@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3" - integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== +domutils@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.3.0.tgz#6469c63a3da2de0c3016f3a59e6a969e10705bce" + integrity sha512-xWC75PM3QF6MjE5e58OzwTX0B/rPQnlqH0YyXB/c056RtVJA+eu60da2I/bdnEHzEYC00g8QaZUlAbqOZVbOsw== dependencies: dom-serializer "^1.0.1" domelementtype "^2.0.1" - domhandler "^4.0.0" + domhandler "^3.0.0" dot-case@^2.1.0: version "2.1.1" @@ -4909,12 +4815,12 @@ easy-extender@^2.3.4: dependencies: lodash "^4.17.10" -eazy-logger@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-3.1.0.tgz#b169eb56df714608fa114f164c8a2956bec9f0f3" - integrity sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ== +eazy-logger@^3: + version "3.0.2" + resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-3.0.2.tgz#a325aa5e53d13a2225889b2ac4113b2b9636f4fc" + integrity sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw= dependencies: - tfunk "^4.0.0" + tfunk "^3.0.1" ecc-jsbn@~0.1.1: version "0.1.2" @@ -4929,23 +4835,23 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.488, electron-to-chromium@^1.3.649: - version "1.3.678" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.678.tgz#c7c6960463167126b7ed076fade14cac6223bfff" - integrity sha512-E5ha1pE9+aWWrT2fUD5wdPBWUnYtKnEnloewbtVyrkAs79HvodOiNO4rMR94+hKbxgMFQG4fnPQACOc1cfMfBg== +electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.488, electron-to-chromium@^1.3.570: + version "1.3.570" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.570.tgz#3f5141cc39b4e3892a276b4889980dabf1d29c7f" + integrity sha512-Y6OCoVQgFQBP5py6A/06+yWxUZHDlNr/gNDGatjH8AZqXl8X0tE4LfjLJsXGz/JmWJz8a6K7bR1k+QzZ+k//fg== elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" + bn.js "^4.4.0" + brorand "^1.0.1" hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" emoji-regex@^7.0.1: version "7.0.3" @@ -4986,95 +4892,117 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -engine.io-client@~3.5.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.1.tgz#b500458a39c0cd197a921e0e759721a746d0bdb9" - integrity sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ== +engine.io-client@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" + integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== dependencies: - component-emitter "~1.3.0" + component-emitter "1.2.1" component-inherit "0.0.3" debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~3.3.1" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-client@~3.4.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.3.tgz#192d09865403e3097e3575ebfeb3861c4d01a66c" + integrity sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw== + dependencies: + component-emitter "~1.3.0" + component-inherit "0.0.3" + debug "~4.1.0" engine.io-parser "~2.2.0" has-cors "1.1.0" indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - ws "~7.4.2" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~6.1.0" xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + engine.io-parser@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" - integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" + integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== dependencies: after "0.8.2" arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.4" + base64-arraybuffer "0.1.5" blob "0.0.5" has-binary2 "~1.0.2" -engine.io@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b" - integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== +engine.io@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" + integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== dependencies: accepts "~1.3.4" - base64id "2.0.0" - cookie "~0.4.1" - debug "~4.1.0" - engine.io-parser "~2.2.0" - ws "~7.4.2" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~3.3.1" enhanced-resolve@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" tapable "^1.0.0" -entities@^1.1.1, "entities@~ 1.1.1": +entities@^1.1.1, "entities@~ 1.1.1", entities@~1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== enzyme-adapter-react-16@^1.0.0: - version "1.15.6" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz#fd677a658d62661ac5afd7f7f541f141f8085901" - integrity sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g== + version "1.15.4" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.4.tgz#328a782365a363ecb424f99283c4833dd92c0f21" + integrity sha512-wPzxs+JaGDK2TPYzl5a9YWGce6i2SQ3Cg51ScLeyj2WotUZ8Obcq1ke/U1Y2VGpYlb9rrX2yCjzSMgtKCeAt5w== dependencies: - enzyme-adapter-utils "^1.14.0" + enzyme-adapter-utils "^1.13.1" enzyme-shallow-equal "^1.0.4" has "^1.0.3" - object.assign "^4.1.2" - object.values "^1.1.2" + object.assign "^4.1.0" + object.values "^1.1.1" prop-types "^15.7.2" react-is "^16.13.1" react-test-renderer "^16.0.0-0" semver "^5.7.0" -enzyme-adapter-utils@^1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz#afbb0485e8033aa50c744efb5f5711e64fbf1ad0" - integrity sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg== +enzyme-adapter-utils@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.1.tgz#59c1b734b0927543e3d8dc477299ec957feb312d" + integrity sha512-5A9MXXgmh/Tkvee3bL/9RCAAgleHqFnsurTYCbymecO4ohvtNO5zqIhHxV370t7nJAwaCfkgtffarKpC0GPt0g== dependencies: airbnb-prop-types "^2.16.0" - function.prototype.name "^1.1.3" - has "^1.0.3" - object.assign "^4.1.2" - object.fromentries "^2.0.3" + function.prototype.name "^1.1.2" + object.assign "^4.1.0" + object.fromentries "^2.0.2" prop-types "^15.7.2" semver "^5.7.1" @@ -5115,9 +5043,9 @@ enzyme@^3.0.0: string.prototype.trim "^1.2.1" errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: prr "~1.0.1" @@ -5128,44 +5056,40 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.4: - version "1.17.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" - integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== +es-abstract@^1.17.0-next.1, es-abstract@^1.17.4, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" object-keys "^1.1.1" - object.assign "^4.1.1" + object.assign "^4.1.0" string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: - version "1.18.0-next.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.3.tgz#56bc8b5cc36b2cca25a13be07f3c02c2343db6b7" - integrity sha512-VMzHx/Bczjg59E6jZOQjHeN3DEoptdhejpARgflAViidlqSpjdq9zA6lKwlhRRs/lOw1gHJv2xkkSFRgvEwbQg== +es-abstract@^1.18.0-next.0: + version "1.18.0-next.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc" + integrity sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ== dependencies: - call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" - get-intrinsic "^1.1.1" has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-negative-zero "^2.0.0" + is-regex "^1.1.1" + object-inspect "^1.8.0" object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -5202,10 +5126,10 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" -escalade@^3.0.1, escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.0.1, escalade@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e" + integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig== escape-html@~1.0.3: version "1.0.3" @@ -5307,9 +5231,9 @@ events@^2.0.0: integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== events@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -5526,10 +5450,11 @@ fbjs-css-vars@^1.0.0: integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== fbjs@*: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.0.tgz#0907067fb3f57a78f45d95f1eacffcacd623c165" - integrity sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg== + version "2.0.0" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-2.0.0.tgz#01fb812138d7e31831ed3e374afe27b9169ef442" + integrity sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ== dependencies: + core-js "^3.6.4" cross-fetch "^3.0.4" fbjs-css-vars "^1.0.0" loose-envify "^1.0.0" @@ -5686,9 +5611,9 @@ find-up@^4.0.0, find-up@^4.1.0: path-exists "^4.0.0" flat@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" - integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== + version "4.1.0" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" + integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== dependencies: is-buffer "~2.0.3" @@ -5700,10 +5625,17 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.0.0, follow-redirects@^1.10.0: - version "1.13.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" - integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +follow-redirects@^1.0.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" + integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== fontfaceobserver@^2.0.13: version "2.1.0" @@ -5847,30 +5779,29 @@ fsevents@^1.0.0, fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.2, function.prototype.name@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.4.tgz#e4ea839b9d3672ae99d0efd9f38d9191c5eaac83" - integrity sha512-iqy1pIotY/RmhdFZygSSlW0wko2yxkSCKqsuv4pr8QESohpYyG/Z7B/XXvPRKTJS//960rgguE5mSRUsDdaJrQ== +function.prototype.name@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" + integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - functions-have-names "^1.2.2" + es-abstract "^1.17.0-next.1" + functions-have-names "^1.2.0" -functions-have-names@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" - integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== +functions-have-names@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" + integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== gauge@~2.7.3: version "2.7.4" @@ -5896,20 +5827,11 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - get-pkg-repo@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" @@ -6098,10 +6020,10 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.2: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== gray-matter@^3.1.1: version "3.1.1" @@ -6124,9 +6046,9 @@ growly@^1.3.0: integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= handlebars@^4.0.11, handlebars@^4.0.2, handlebars@^4.0.3: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== dependencies: minimist "^1.2.5" neo-async "^2.6.0" @@ -6155,11 +6077,6 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-bigints@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - has-binary2@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" @@ -6192,10 +6109,10 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== has-unicode@^2.0.0: version "2.0.1" @@ -6271,16 +6188,16 @@ header-case@^1.0.0: upper-case "^1.1.3" highlight.js@^9.11.0: - version "9.18.5" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" - integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== + version "9.18.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" + integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== highlight.js@~9.12.0: version "9.12.0" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" integrity sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4= -hmac-drbg@^1.0.1: +hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -6311,12 +6228,11 @@ html-dom-parser@0.1.3: htmlparser2 "3.9.1" html-element-map@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.0.tgz#fcf226985d7111e6c2b958169312ec750d02f0d3" - integrity sha512-AqCt/m9YaiMwaaAyOPdq4Ga0cM+jdDWWGueUMkdROZcTeClaGpN0AQeyGchZhTegQoABmc6+IqH7oCR/8vhQYg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" + integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== dependencies: array-filter "^1.0.0" - call-bind "^1.0.2" html-encoding-sniffer@^1.0.1, html-encoding-sniffer@^1.0.2: version "1.0.2" @@ -6371,15 +6287,17 @@ htmlparser2@4.1.0: domutils "^2.0.0" entities "^2.0.0" -htmlparser2@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.0.0.tgz#c2da005030390908ca4c91e5629e418e0665ac01" - integrity sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw== +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.4.4" - entities "^2.0.0" + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" http-errors@1.7.3: version "1.7.3" @@ -6484,16 +6402,11 @@ idyll-component-children@^1.0.7: resolved "https://registry.yarnpkg.com/idyll-component-children/-/idyll-component-children-1.0.10.tgz#ff4d177f27c8ab8cfb01541f799accde8a1b81ad" integrity sha512-D1DgjXtdf+kIrjmO5jPGitoDVRh698Sxl1R3R2cwEFXAkRTRKsOU0UD8UAZcVeYy8MAB28WXvwv1i7tvueuWZA== -ieee754@1.1.13: +ieee754@1.1.13, ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" @@ -6588,9 +6501,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== inline-source-map@~0.6.0: version "0.6.2" @@ -6644,9 +6557,9 @@ insert-css@^2.0.0: integrity sha1-610Ql7dUL0x56jBg067gfQU4gPQ= insert-module-globals@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3" - integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" + integrity sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw== dependencies: JSONStream "^1.0.3" acorn-node "^1.5.2" @@ -6664,7 +6577,7 @@ intersection-observer@^0.5.0: resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.5.1.tgz#e340fc56ce74290fe2b2394d1ce88c4353ac6dfa" integrity sha512-Zd7Plneq82kiXFixs7bX62YnuZ0BMRci9br7io88LwDyF3V43cQMI+G5IiTlTNTt+LsDUppl19J/M2Fp9UkH6g== -invariant@^2.2.2: +invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -6700,11 +6613,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-bigint@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" - integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== - is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -6719,22 +6627,20 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.1, is-boolean-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" - integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== - dependencies: - call-bind "^1.0.0" +is-boolean-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e" + integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ== is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@~2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== +is-buffer@^2.0.2, is-buffer@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== is-builtin-module@^1.0.0: version "1.0.0" @@ -6743,10 +6649,10 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.2, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== +is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== is-ci@^1.0.10: version "1.2.1" @@ -6762,13 +6668,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - dependencies: - has "^1.0.3" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -6903,10 +6802,10 @@ is-lower-case@^1.1.0: dependencies: lower-case "^1.1.0" -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= is-npm@^1.0.0: version "1.0.0" @@ -6988,12 +6887,11 @@ is-redirect@^1.0.0: resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= -is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1, is-regex@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== +is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== dependencies: - call-bind "^1.0.2" has-symbols "^1.0.1" is-retry-allowed@^1.0.0: @@ -7016,7 +6914,7 @@ is-subset@^0.1.1: resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= -is-symbol@^1.0.2, is-symbol@^1.0.3: +is-symbol@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== @@ -7436,9 +7334,9 @@ js-yaml@3.13.1: esprima "^4.0.0" js-yaml@^3.10.0, js-yaml@^3.13.1, js-yaml@^3.7.0, js-yaml@^3.8.4: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -7632,9 +7530,9 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.1.0, json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== dependencies: minimist "^1.2.5" @@ -7715,11 +7613,6 @@ klaw@~2.0.0: dependencies: graceful-fs "^4.1.9" -klona@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" - integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== - labeled-stream-splicer@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" @@ -7902,15 +7795,15 @@ loader-utils@^1.2.3: emojis-list "^3.0.0" json5 "^1.0.1" -localtunnel@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.1.tgz#8f7c593f3005647f7675e6e69af9bf746571a631" - integrity sha512-LiaI5wZdz0xFkIQpXbNI62ZnNn8IMsVhwxHmhA+h4vj8R9JG/07bQHWwQlyy7b95/5fVOCHJfIHv+a5XnkvaJA== +localtunnel@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.0.tgz#2ea71174fa80e34cce91b2a7ce416e6a57d9ff7c" + integrity sha512-g6E0aLgYYDvQDxIjIXkgJo2+pHj3sGg4Wz/XP3h2KtZnRsWPbOQY+hw1H8Z91jep998fkcVE9l+kghO+97vllg== dependencies: - axios "0.21.1" - debug "4.3.1" + axios "0.19.0" + debug "4.1.1" openurl "1.1.1" - yargs "16.2.0" + yargs "13.3.0" locate-path@^2.0.0: version "2.0.0" @@ -8005,10 +7898,10 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== log-symbols@2.2.0, log-symbols@^2.2.0: version "2.2.0" @@ -8057,7 +7950,7 @@ lowlight@~1.9.1: fault "^1.0.2" highlight.js "~9.12.0" -lru-cache@6.0.0, lru-cache@^6.0.0: +lru-cache@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== @@ -8320,17 +8213,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.46.0: - version "1.46.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" - integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== +mime-db@1.44.0: + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.29" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" - integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: - mime-db "1.46.0" + mime-db "1.44.0" mime@1.4.1: version "1.4.1" @@ -8357,7 +8250,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= @@ -8420,14 +8313,6 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -8488,11 +8373,6 @@ mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.0, mkdirp@~0.5.1: dependencies: minimist "^1.2.5" -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - mocha@6.1: version "6.1.4" resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.1.4.tgz#e35fada242d5434a7e163d555c705f6875951640" @@ -8549,9 +8429,9 @@ module-deps@^6.2.3: xtend "^4.0.0" moment@^2.6.0: - version "2.29.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + version "2.29.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.0.tgz#fcbef955844d91deb55438613ddcec56e86a3425" + integrity sha512-z6IJ5HXYiuxvFTI6eiQ9dm77uE0gyy1yXNApVHqTcnIKfY9tIwEjlzsZ6u1LQXvVgKeTnv9Xm7NDvJ7lso3MtA== moo@^0.5.0: version "0.5.1" @@ -8585,16 +8465,11 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@2.1.2: +ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - multimatch@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" @@ -8616,9 +8491,9 @@ mute-stream@0.0.7: integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== nanomatch@^1.2.9: version "1.2.13" @@ -8650,14 +8525,15 @@ natural-compare@^1.4.0: integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= nearley@^2.15.0, nearley@^2.7.10: - version "2.20.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== + version "2.19.7" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.19.7.tgz#eafbe3e2d8ccfe70adaa5c026ab1f9709c116218" + integrity sha512-Y+KNwhBPcSJKeyQCFjn8B/MIe+DDlhaaDgjVldhy5xtFewIbiQgcbZV8k2gCVwkI1ZsKCnjIYZbR+0Fim5QYgg== dependencies: commander "^2.19.0" moo "^0.5.0" railroad-diagrams "^1.0.0" randexp "0.4.6" + semver "^5.4.1" negotiator@0.6.2: version "0.6.2" @@ -8669,7 +8545,7 @@ neo-async@2.6.1: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -8680,20 +8556,21 @@ next-tick@~1.0.0: integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= next@^9.5.1: - version "9.5.5" - resolved "https://registry.yarnpkg.com/next/-/next-9.5.5.tgz#37a37095e7c877ed6c94ba82e34ab9ed02b4eb33" - integrity sha512-KF4MIdTYeI6YIGODNw27w9HGzCll4CXbUpkP6MNvyoHlpsunx8ybkQHm/hYa7lWMozmsn58LwaXJOhe4bSrI0g== + version "9.5.3" + resolved "https://registry.yarnpkg.com/next/-/next-9.5.3.tgz#7af5270631f98d330a7f75a6e8e1ac202aa155e2" + integrity sha512-DGrpTNGV2RNMwLaSzpgbkbaUuVk30X71/roXHS10isSXo2Gm+qWcjonDyOxf1KmOvHZRHA/Fa+LaAR7ysdYS3A== dependencies: "@ampproject/toolbox-optimizer" "2.6.0" "@babel/code-frame" "7.10.4" "@babel/core" "7.7.7" "@babel/plugin-proposal-class-properties" "7.10.4" "@babel/plugin-proposal-export-namespace-from" "7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator" "7.10.4" "@babel/plugin-proposal-numeric-separator" "7.10.4" "@babel/plugin-proposal-object-rest-spread" "7.11.0" + "@babel/plugin-proposal-optional-chaining" "7.11.0" "@babel/plugin-syntax-bigint" "7.8.3" "@babel/plugin-syntax-dynamic-import" "7.8.3" - "@babel/plugin-syntax-jsx" "7.10.4" "@babel/plugin-transform-modules-commonjs" "7.10.4" "@babel/plugin-transform-runtime" "7.11.5" "@babel/preset-env" "7.11.5" @@ -8702,21 +8579,19 @@ next@^9.5.1: "@babel/preset-typescript" "7.10.4" "@babel/runtime" "7.11.2" "@babel/types" "7.11.5" - "@hapi/accept" "5.0.1" - "@next/env" "9.5.5" - "@next/polyfill-module" "9.5.5" - "@next/react-dev-overlay" "9.5.5" - "@next/react-refresh-utils" "9.5.5" + "@next/react-dev-overlay" "9.5.3" + "@next/react-refresh-utils" "9.5.3" ast-types "0.13.2" + babel-plugin-syntax-jsx "6.18.0" babel-plugin-transform-define "2.0.0" babel-plugin-transform-react-remove-prop-types "0.4.24" browserslist "4.13.0" buffer "5.6.0" - cacache "15.0.5" + cacache "13.0.1" caniuse-lite "^1.0.30001113" chokidar "2.1.8" crypto-browserify "3.12.0" - css-loader "4.3.0" + css-loader "3.5.3" cssnano-simple "1.2.0" find-cache-dir "3.3.1" jest-worker "24.9.0" @@ -8733,15 +8608,15 @@ next@^9.5.1: react-is "16.13.1" react-refresh "0.8.3" resolve-url-loader "3.1.1" - sass-loader "10.0.2" - schema-utils "2.7.1" + sass-loader "8.0.2" + schema-utils "2.6.6" stream-browserify "3.0.0" style-loader "1.2.1" styled-jsx "3.3.0" use-subscription "1.4.1" vm-browserify "1.1.2" watchpack "2.0.0-beta.13" - web-vitals "0.2.4" + web-vitals "0.2.1" webpack "4.44.1" webpack-sources "1.4.3" @@ -8784,9 +8659,9 @@ node-fetch@^1.0.1: is-stream "^1.0.1" node-html-parser@^1.2.19: - version "1.4.9" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.9.tgz#3c8f6cac46479fae5800725edb532e9ae8fd816c" - integrity sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw== + version "1.2.21" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.2.21.tgz#93b074d877007c7148d594968a642cd65d254daa" + integrity sha512-6vDhgen6J332syN5HUmeT4FfBG7m6bFRrPN+FXY8Am7FGuVpsIxTASVbeoO5PF2IHbX2s+WEIudb1hgxOjllNQ== dependencies: he "1.2.0" @@ -8835,10 +8710,10 @@ node-notifier@^5.0.2: shellwords "^0.1.1" which "^1.3.0" -node-releases@^1.1.58, node-releases@^1.1.70: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== +node-releases@^1.1.58, node-releases@^1.1.61: + version "1.1.61" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e" + integrity sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g== normalize-html-whitespace@1.0.0: version "1.0.0" @@ -8884,12 +8759,12 @@ npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" - integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== +nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: - boolbase "^1.0.0" + boolbase "~1.0.0" number-is-nan@^1.0.0: version "1.0.1" @@ -8916,6 +8791,11 @@ object-assign@*, object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, o resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -8930,10 +8810,10 @@ object-get@^2.1.0: resolved "https://registry.yarnpkg.com/object-get/-/object-get-2.1.1.tgz#1dad63baf6d94df184d1c58756cc9be55b174dac" integrity sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg== -object-inspect@^1.7.0, object-inspect@^1.8.0, object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== +object-inspect@^1.7.0, object-inspect@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== object-inspect@~1.4.0: version "1.4.1" @@ -8941,12 +8821,12 @@ object-inspect@~1.4.0: integrity sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw== object-is@^1.0.2, object-is@^1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" + es-abstract "^1.17.5" object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: version "1.1.1" @@ -8958,6 +8838,11 @@ object-path@0.11.4: resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" integrity sha1-NwrnUvvzfePqcKhhwju6iRVpGUk= +object-path@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5" + integrity sha1-D9mnT8X60a45aLWGvaXGMr1sBaU= + object-to-spawn-args@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz#77da8827f073d011c9e1b173f895781470246785" @@ -8980,44 +8865,42 @@ object.assign@4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" + integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== dependencies: - call-bind "^1.0.0" define-properties "^1.1.3" + es-abstract "^1.18.0-next.0" has-symbols "^1.0.1" object-keys "^1.1.1" object.entries@^1.0.4, object.entries@^1.1.1, object.entries@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" - integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" + integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== dependencies: - call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + es-abstract "^1.17.5" has "^1.0.3" -object.fromentries@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" - integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== +object.fromentries@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" has "^1.0.3" object.getownpropertydescriptors@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" - integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" + es-abstract "^1.17.0-next.1" object.omit@^2.0.0: version "2.0.1" @@ -9034,14 +8917,14 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.0.4, object.values@^1.1.1, object.values@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" - integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== +object.values@^1.0.4, object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" has "^1.0.3" on-finished@~2.3.0: @@ -9205,10 +9088,10 @@ p-map@^1.1.1: resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== dependencies: aggregate-error "^3.0.0" @@ -9301,13 +9184,6 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse5-htmlparser2-tree-adapter@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - dependencies: - parse5 "^6.0.1" - parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" @@ -9318,20 +9194,26 @@ parse5@^1.5.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" integrity sha1-m387DeMr543CQBsXVzzK8Pb1nZQ= -parse5@^6.0.0, parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== +parse5@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== + dependencies: + "@types/node" "*" -parseqs@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" - integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" -parseuri@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" - integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" parseurl@~1.3.2: version "1.3.3" @@ -9549,7 +9431,7 @@ postcss-modules-extract-imports@^2.0.0: dependencies: postcss "^7.0.5" -postcss-modules-local-by-default@^3.0.3: +postcss-modules-local-by-default@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== @@ -9583,16 +9465,16 @@ postcss-safe-parser@4.0.2: postcss "^7.0.26" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.3.tgz#766d77728728817cc140fa1ac6da5e77f9fada98" + integrity sha512-0ClFaY4X1ra21LRqbW6y3rUbWcxnSVkDFG57R7Nxus9J9myPFlv+jYDMohzpkBx0RrjjiqjtycpchQ+PLGmZ9w== dependencies: cssesc "^3.0.0" indexes-of "^1.0.1" uniq "^1.0.1" util-deprecate "^1.0.2" -postcss-value-parser@^4.1.0: +postcss-value-parser@^4.0.3, postcss-value-parser@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== @@ -9615,10 +9497,10 @@ postcss@7.0.32: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== +postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.34" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.34.tgz#f2baf57c36010df7de4009940f21532c16d65c20" + integrity sha512-H/7V2VeNScX9KE83GDrDZNiGT1m2H+UTnlinIzhjlLX9hfMUn1mHNnGeX81a1c8JSBdBvqk7c2ZOG6ZPn5itGw== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -9787,9 +9669,9 @@ qs@6.2.3: integrity sha1-HPyyXBCpsrSDBT/zn138kjOQjP4= qs@^6.5.1: - version "6.9.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== + version "6.9.4" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== qs@~6.5.2: version "6.5.2" @@ -9801,16 +9683,11 @@ querystring-es3@^0.2.0, querystring-es3@~0.2.0: resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= -querystring@0.2.0: +querystring@0.2.0, querystring@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -querystring@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" - integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== - quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" @@ -9910,9 +9787,9 @@ react-dom-factories@^1.0.1: integrity sha1-63cFxNs2+1AbOqOP91lhaqD/luA= react-dom@^16.0.0: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" - integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" + integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -9973,9 +9850,9 @@ react-table@6.8.6: classnames "^2.2.5" react-test-renderer@^16.0.0, react-test-renderer@^16.0.0-0: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" - integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" + integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" @@ -9990,18 +9867,18 @@ react-tooltip@^3.8.4: prop-types "^15.6.0" react-youtube@^7.6.0: - version "7.13.1" - resolved "https://registry.yarnpkg.com/react-youtube/-/react-youtube-7.13.1.tgz#3b327599a687bf22e071468818522920b36bcb57" - integrity sha512-b++TLHmHDpd0ZBS1wcbYabbuchU+W4jtx5A2MUQX0BINNKKsaIQX29sn/aLvZ9v5luwAoceia3VGtyz9blaB9w== + version "7.12.0" + resolved "https://registry.yarnpkg.com/react-youtube/-/react-youtube-7.12.0.tgz#632b770556fd415179093e4a6eeea36d109fb3d4" + integrity sha512-26ARkEJlTnS4xLSbxvSf/SFYq76x9n+u8YQHwPn5EEd/LOA09uq+TOl0R2ren7U02BsPSZQq+MIZY/XUYzhYng== dependencies: fast-deep-equal "3.1.3" prop-types "15.7.2" youtube-player "5.5.2" react@15: - version "15.7.0" - resolved "https://registry.yarnpkg.com/react/-/react-15.7.0.tgz#10308fd42ac6912a250bf00380751abc41ac7106" - integrity sha512-5/MMRYmpmM0sMTHGLossnJCrmXQIiJilD6y3YN3TzAwGFj6zdnMtFv6xmi65PHKRV+pehIHpT7oy67Sr6s9AHA== + version "15.6.2" + resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" + integrity sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI= dependencies: create-react-class "^15.6.0" fbjs "^0.8.9" @@ -10010,9 +9887,9 @@ react@15: prop-types "^15.5.10" react@^16.0.0: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" - integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -10105,7 +9982,7 @@ read-pkg@^4.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.5.0, readable-stream@^3.6.0: +readable-stream@^3.1.1, readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -10123,10 +10000,10 @@ readdirp@^2.0.0, readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== dependencies: picomatch "^2.2.1" @@ -10190,9 +10067,9 @@ regenerate-unicode-properties@^8.2.0: regenerate "^1.4.0" regenerate@^1.2.1, regenerate@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + version "1.4.1" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" + integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== regenerator-runtime@^0.10.5: version "0.10.5" @@ -10254,7 +10131,7 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^4.7.1: +regexpu-core@^4.7.0: version "4.7.1" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== @@ -10299,9 +10176,9 @@ regjsparser@^0.1.4: jsesc "~0.5.0" regjsparser@^0.6.4: - version "0.6.7" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.7.tgz#c00164e1e6713c2e3ee641f1701c4b7aa0a7f86c" - integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" @@ -10435,11 +10312,10 @@ resolve@1.1.7: integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= resolve@^1.1.4, resolve@^1.1.5, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.8.1: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: - is-core-module "^2.2.0" path-parse "^1.0.6" resp-modifier@6.0.2: @@ -10483,20 +10359,13 @@ rimraf@2.6.2: dependencies: glob "^7.0.5" -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -10555,9 +10424,9 @@ rxjs@^5.5.2, rxjs@^5.5.6: symbol-observable "1.0.1" rxjs@^6.5.2: - version "6.6.6" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.6.tgz#14d8417aa5a07c5e633995b525e1e3c0dec03b70" - integrity sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg== + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== dependencies: tslib "^1.9.0" @@ -10596,16 +10465,16 @@ sane@~1.6.0: walker "~1.0.5" watch "~0.10.0" -sass-loader@10.0.2: - version "10.0.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.2.tgz#c7b73010848b264792dd45372eea0b87cba4401e" - integrity sha512-wV6NDUVB8/iEYMalV/+139+vl2LaRFlZGEd5/xmdcdzQcgmis+npyco6NsDTVOlNA3y2NV9Gcz+vHyFMIT+ffg== +sass-loader@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" + integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== dependencies: - klona "^2.0.3" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^2.7.1" - semver "^7.3.2" + clone-deep "^4.0.1" + loader-utils "^1.2.3" + neo-async "^2.6.1" + schema-utils "^2.6.1" + semver "^6.3.0" sax@1.2.1: version "1.2.1" @@ -10625,14 +10494,13 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@2.7.1, schema-utils@^2.6.6, schema-utils@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== +schema-utils@2.6.6: + version "2.6.6" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c" + integrity sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA== dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" + ajv "^6.12.0" + ajv-keywords "^3.4.1" schema-utils@^1.0.0: version "1.0.0" @@ -10643,6 +10511,15 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +schema-utils@^2.6.1, schema-utils@^2.6.6: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + scrollama@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/scrollama/-/scrollama-1.4.4.tgz#e0fd474e04c0be4c95d08280bdc2d636f619db59" @@ -10685,13 +10562,6 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" @@ -10792,6 +10662,13 @@ sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + shallow-copy@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" @@ -10867,9 +10744,9 @@ slash@^2.0.0: integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== smartquotes@^2.0.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/smartquotes/-/smartquotes-2.3.2.tgz#fb1630c49ba04e57446e1a97dc10d590072af4a6" - integrity sha512-0R6YJ5hLpDH4mZR7N5eZ12oCMLspvGOHL9A9SEm2e3b/CQmQidekW4SWSKEmor/3x6m3NCBBEqLzikcZC9VJNQ== + version "2.3.1" + resolved "https://registry.yarnpkg.com/smartquotes/-/smartquotes-2.3.1.tgz#01ebb595d6c7a9e24d90e8cb95c17d0e1af49407" + integrity sha1-Aeu1ldbHqeJNkOjLlcF9Dhr0lAc= snake-case@^2.1.0: version "2.1.0" @@ -10913,52 +10790,75 @@ socket.io-adapter@~1.1.0: resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== -socket.io-client@2.4.0, socket.io-client@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" - integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== +socket.io-client@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" + integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== dependencies: backo2 "1.0.2" + base64-arraybuffer "0.1.5" component-bind "1.0.0" - component-emitter "~1.3.0" + component-emitter "1.2.1" debug "~3.1.0" - engine.io-client "~3.5.0" + engine.io-client "~3.2.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.2.0" + to-array "0.1.4" + +socket.io-client@^2.0.4: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" + integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~4.1.0" + engine.io-client "~3.4.0" has-binary2 "~1.0.2" + has-cors "1.1.0" indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" socket.io-parser "~3.3.0" to-array "0.1.4" -socket.io-parser@~3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" - integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== +socket.io-parser@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" + integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== dependencies: - component-emitter "~1.3.0" + component-emitter "1.2.1" debug "~3.1.0" isarray "2.0.1" -socket.io-parser@~3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" - integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== +socket.io-parser@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== dependencies: component-emitter "1.2.1" - debug "~4.1.0" + debug "~3.1.0" isarray "2.0.1" -socket.io@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.0.tgz#01030a2727bd8eb2e85ea96d69f03692ee53d47e" - integrity sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ== +socket.io@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" + integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== dependencies: - debug "~4.1.0" - engine.io "~3.5.0" + debug "~3.1.0" + engine.io "~3.2.0" has-binary2 "~1.0.2" socket.io-adapter "~1.1.0" - socket.io-client "2.4.0" - socket.io-parser "~3.4.0" + socket.io-client "2.1.1" + socket.io-parser "~3.2.0" sort-array@^2.0.0: version "2.0.0" @@ -11008,9 +10908,9 @@ source-map-support@~0.5.12: source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" @@ -11061,9 +10961,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + version "3.0.6" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce" + integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -11113,11 +11013,12 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== +ssri@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" + integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== dependencies: + figgy-pudding "^3.5.1" minipass "^3.1.1" stacktrace-parser@0.1.10: @@ -11307,9 +11208,9 @@ string-width@^3.0.0, string-width@^3.1.0: strip-ansi "^5.1.0" string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" @@ -11321,29 +11222,28 @@ string.prototype.repeat@^0.2.0: integrity sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8= string.prototype.trim@^1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz#6014689baf5efaf106ad031a5fa45157666ed1bd" - integrity sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q== + version "1.2.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.2.tgz#f538d0bacd98fc4297f0bef645226d5aaebf59f3" + integrity sha512-b5yrbl3BXIjHau9Prk7U0RRYcUYdN4wGSVaqoBQS50CCE3KBuYU0TYRNPFCP7aVoNMX87HKThdMRVIP3giclKg== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" + es-abstract "^1.18.0-next.0" -string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" + es-abstract "^1.17.5" -string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" + es-abstract "^1.17.5" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -11616,18 +11516,6 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -11729,13 +11617,13 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -tfunk@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-4.0.0.tgz#de9399feaf2060901d590b7faad80fcd5443077e" - integrity sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ== +tfunk@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-3.1.0.tgz#38e4414fc64977d87afdaa72facb6d29f82f7b5b" + integrity sha1-OORBT8ZJd9h6/apy+sttKfgve1s= dependencies: - chalk "^1.1.3" - dlv "^1.1.3" + chalk "^1.1.1" + object-path "^0.9.0" throat@^3.0.0: version "3.2.0" @@ -11768,9 +11656,9 @@ timers-browserify@^1.0.1: process "~0.11.0" timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== dependencies: setimmediate "^1.0.4" @@ -11907,9 +11795,9 @@ ts-pnp@^1.1.6: integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== tty-browserify@0.0.0: version "0.0.0" @@ -11951,9 +11839,9 @@ type@^1.0.1: integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.3.0.tgz#ada7c045f07ead08abf9e2edd29be1a0c0661132" - integrity sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" + integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== typedarray@^0.0.6: version "0.0.6" @@ -11971,30 +11859,25 @@ typical@^4.0.0: integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== ua-parser-js@^0.7.18: - version "0.7.24" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz#8d3ecea46ed4f1f1d63ec25f17d8568105dc027c" - integrity sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw== + version "0.7.22" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" + integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== uglify-js@^3.1.4: - version "3.13.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.0.tgz#66ed69f7241f33f13531d3d51d5bcebf00df7f69" - integrity sha512-TWYSWa9T2pPN4DIJYbU9oAjQx+5qdV5RUDxwARg8fmJZrD/V27Zj0JngW5xg1DFz42G0uDYl2XhzF6alSzD62w== + version "3.10.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.4.tgz#dd680f5687bc0d7a93b14a3482d16db6eba2bfbb" + integrity sha512-kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw== + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== umd@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== -unbox-primitive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.0.tgz#eeacbc4affa28e9b3d36b5eaeccc50b3251b1d3f" - integrity sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.0" - has-symbols "^1.0.0" - which-boxed-primitive "^1.0.1" - undeclared-identifiers@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" @@ -12127,9 +12010,9 @@ upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== dependencies: punycode "^2.1.0" @@ -12355,10 +12238,10 @@ watch@~0.10.0: resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" integrity sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw= -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== dependencies: chokidar "^2.1.8" @@ -12371,15 +12254,15 @@ watchpack@2.0.0-beta.13: graceful-fs "^4.1.2" watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + version "1.7.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" + watchpack-chokidar2 "^2.0.0" wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" @@ -12388,10 +12271,10 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web-vitals@0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.4.tgz#ec3df43c834a207fd7cdefd732b2987896e08511" - integrity sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg== +web-vitals@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.1.tgz#60782fa690243fe35613759a0c26431f57ba7b2d" + integrity sha512-2pdRlp6gJpOCg0oMMqwFF0axjk5D9WInc09RSYtqFgPXQ15+YKNQ7YnBBEqAL5jvmfH9WvoXDMb8DHwux7pIew== webidl-conversions@^3.0.0: version "3.0.1" @@ -12448,9 +12331,9 @@ whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: iconv-lite "0.4.24" whatwg-fetch@>=0.10.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" - integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + version "3.4.1" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz#e5f871572d6879663fa5674c8f833f15a8425ab3" + integrity sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ== whatwg-fetch@^2.0.3: version "2.0.4" @@ -12488,17 +12371,6 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" -which-boxed-primitive@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" @@ -12581,15 +12453,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -12631,10 +12494,21 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@~7.4.2: - version "7.4.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" - integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== +ws@~3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== + dependencies: + async-limiter "~1.0.0" x-path@^0.0.2: version "0.0.2" @@ -12697,19 +12571,14 @@ xtend@~3.0.0: integrity sha1-XM50B7r2Qsunvs2laBEcST9ZZlo= y18n@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" - integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== - -y18n@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" - integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^2.1.2: version "2.1.2" @@ -12750,7 +12619,7 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^13.0.0, yargs-parser@^13.1.2: +yargs-parser@^13.0.0, yargs-parser@^13.1.1, yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== @@ -12774,11 +12643,6 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: - version "20.2.6" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" - integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA== - yargs-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" @@ -12812,18 +12676,21 @@ yargs@13.2.2: y18n "^4.0.0" yargs-parser "^13.0.0" -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== +yargs@13.3.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.1" yargs@^12.0.5: version "12.0.5"