From 0ac36adc1c580259c61073741158315c5067958b Mon Sep 17 00:00:00 2001 From: Parth Shah Date: Mon, 15 May 2017 23:14:48 -0700 Subject: [PATCH 01/89] initial commit --- .../create/components/ProjectWizard.jsx | 7 ++++- .../create/containers/CreateContainer.jsx | 30 +++++++++++++++++++ src/projects/routes.jsx | 15 ++++++---- src/routes.jsx | 2 ++ 4 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 src/projects/create/containers/CreateContainer.jsx diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index 3cbec9e7b..1bc767d6a 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -97,8 +97,13 @@ ProjectWizard.propTypes = { closeModal: PropTypes.func.isRequired } +ProjectWizard.defaultProps = { + userRoles: [], + closeModal: () => {} +} + const mapStateToProps = ({projectState, loadUser }) => ({ - userRoles: loadUser.user.roles, + userRoles: _.get(loadUser, 'user.roles', []), processing: projectState.processing, error: projectState.error, project: projectState.project diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx new file mode 100644 index 000000000..1ea923f47 --- /dev/null +++ b/src/projects/create/containers/CreateContainer.jsx @@ -0,0 +1,30 @@ +import React from 'react' +// import { connect } from 'react-redux' +import ProjectWizard from '../components/ProjectWizard' + +// require('./CreateProject.scss') + +const CreateView = () => ( +
+ +
+) + +class CreateConainer extends React.Component { + constructor(props) { + super(props) + } + + render() { + return + } +} + +// const mapStateToProps = ({ projectState }) => { +// return { +// isLoading : projectState.isLoading +// } +// } + +export default CreateConainer +// export default connect(mapStateToProps)(CreateConainer) diff --git a/src/projects/routes.jsx b/src/projects/routes.jsx index b040e2cdc..4586c8db0 100644 --- a/src/projects/routes.jsx +++ b/src/projects/routes.jsx @@ -7,17 +7,20 @@ import ProjectDetail from './detail/ProjectDetail' import Dashboard from './detail/Dashboard' import ProjectMessages from './detail/Messages' import SpecificationContainer from './detail/containers/SpecificationContainer' +// import CreateContainer from './create/containers/CreateContainer' import { requiresAuthentication } from '../components/AuthenticatedComponent' const projectRoutes = ( - + // TODO add project topbar - - - - - + + + + + + + ) diff --git a/src/routes.jsx b/src/routes.jsx index 32970f182..cc3f8376b 100644 --- a/src/routes.jsx +++ b/src/routes.jsx @@ -7,6 +7,7 @@ import ConnectTerms from './components/ConnectTerms/ConnectTerms' import PageError from './components/PageError/PageError' import projectRoutes from './projects/routes.jsx' import RedirectComponent from './components/RedirectComponent' +import CreateContainer from './projects/create/containers/CreateContainer' import {ACCOUNTS_APP_LOGIN_URL, PROJECT_FEED_TYPE_PRIMARY, PROJECT_FEED_TYPE_MESSAGES } from './config/constants' import { getTopic } from './api/messages' import { getFreshToken } from 'tc-accounts' @@ -77,6 +78,7 @@ const redirectToProject = (nextState, replace, callback) => { export default ( window.scrollTo(0, 0)} component={ App } onEnter={ redirectToConnect }> + From ddc650632ec9724e09b4626b24cb8eae338b313e Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Thu, 25 May 2017 17:47:15 +0530 Subject: [PATCH 02/89] Initial commit with working flow for logged out project creation. It redirects user to login page instead of registration page for now. --- src/components/TopBar/TopBar.jsx | 2 +- src/components/Wizard/Wizard.jsx | 21 +- src/components/Wizard/Wizard.scss | 1 + src/config/constants.js | 3 + src/config/projectQuestions/avd.v1.0.js | 87 ++++++ .../projectQuestions/visual_design.v1.0.js | 90 +++++++ .../IncompleteProjectConfirmation.js | 34 +++ .../IncompleteProjectConfirmation.scss | 14 + .../components/ProjectBasicDetailsForm.js | 127 +++++++++ .../components/ProjectBasicDetailsForm.scss | 7 + .../create/components/ProjectOutline.js | 55 ++++ .../create/components/ProjectOutline.scss | 58 ++++ .../create/components/ProjectWizard.jsx | 248 ++++++++++++++---- .../create/components/ProjectWizard.scss | 25 ++ .../components/SelectProjectSubType.jsx | 30 +-- .../create/components/SelectProjectType.jsx | 7 - .../create/containers/CreateContainer.jsx | 126 +++++++-- .../containers/FillProjectDetailsContainer.js | 92 +++++++ .../FillProjectDetailsContainer.scss | 90 +++++++ .../detail/components/SpecSection.jsx | 8 +- src/projects/routes.jsx | 15 +- src/routes.jsx | 3 +- 22 files changed, 1021 insertions(+), 122 deletions(-) create mode 100644 src/projects/create/components/IncompleteProjectConfirmation.js create mode 100644 src/projects/create/components/IncompleteProjectConfirmation.scss create mode 100644 src/projects/create/components/ProjectBasicDetailsForm.js create mode 100644 src/projects/create/components/ProjectBasicDetailsForm.scss create mode 100644 src/projects/create/components/ProjectOutline.js create mode 100644 src/projects/create/components/ProjectOutline.scss create mode 100644 src/projects/create/components/ProjectWizard.scss create mode 100644 src/projects/create/containers/FillProjectDetailsContainer.js create mode 100644 src/projects/create/containers/FillProjectDetailsContainer.scss diff --git a/src/components/TopBar/TopBar.jsx b/src/components/TopBar/TopBar.jsx index 9712dae30..0ca5f7c00 100644 --- a/src/components/TopBar/TopBar.jsx +++ b/src/components/TopBar/TopBar.jsx @@ -78,7 +78,7 @@ class TopBar extends Component { ) const avatar = (
- {isLoggedIn && !isProjectDetails && + New Project } + {isLoggedIn && !isProjectDetails && + New Project }
diff --git a/src/components/Wizard/Wizard.jsx b/src/components/Wizard/Wizard.jsx index 18e8ae504..84c39f884 100644 --- a/src/components/Wizard/Wizard.jsx +++ b/src/components/Wizard/Wizard.jsx @@ -5,7 +5,7 @@ import SVGIconImage from '../SVGIconImage' import './Wizard.scss' function Wizard(props) { - let backControl + let backControl, modalCloseControl if (props.step) { backControl = ( ) } + if (!props.hideModal) { + modalCloseControl = ( + } + label="esc" + onClick={props.onCancel} + /> + ) + } return ( -
+
{backControl} - } - label="esc" - onClick={props.onCancel} - /> + { modalCloseControl } {props.children[props.step]}
diff --git a/src/components/Wizard/Wizard.scss b/src/components/Wizard/Wizard.scss index 8e7674df4..eba80aa2f 100644 --- a/src/components/Wizard/Wizard.scss +++ b/src/components/Wizard/Wizard.scss @@ -11,6 +11,7 @@ padding: 20px; position: relative; text-align: left; + width: 100%; } .back-button { position: absolute; diff --git a/src/config/constants.js b/src/config/constants.js index 2701a8302..157d4f717 100644 --- a/src/config/constants.js +++ b/src/config/constants.js @@ -225,3 +225,6 @@ export const AUTOCOMPLETE_TRIGGER_LENGTH = 3 // Toggle this flag to enable/disable maintenance mode export const MAINTENANCE_MODE = false + +/* Local Storage Variables */ +export const LS_INCOMPLETE_PROJECT = 'incompleteProject' \ No newline at end of file diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js index 86c5884dc..bbfebf9c1 100644 --- a/src/config/projectQuestions/avd.v1.0.js +++ b/src/config/projectQuestions/avd.v1.0.js @@ -227,3 +227,90 @@ const sections = [ ] export default sections + +export const basicSections = [ + { + id: 'appDefinition', + title: '', + required: true, + description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + subSections: [ + { + id: 'projectName', + required: true, + fieldName: 'name', + description: '', + title: 'Project Name', + type: 'project-name' + }, + { + id: 'questions', + required: true, + hideTitle: true, + title: 'Questions', + description: '', + type: 'questions', + questions: [ + { + icon: 'question', + title: 'How many screens do you need designed?', + description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', + fieldName: 'details.appDefinition.numberScreens', + type: 'tiled-radio-group', + options: [ + {value: '1-3', title: 'screens', icon: NumberText, iconOptions: { number: '1-3' }, desc: '5-7 days', price: 5000}, + {value: '4-8', title: 'screens', icon: NumberText, iconOptions: { number: '4-8' }, desc: '7-10 days', price: 7000}, + {value: '9-15', title: 'screens', icon: NumberText, iconOptions: { number: '9-15' }, desc: '8-10 days', price: 8500} + ] + }, + { + icon: 'question', + title: 'Which is your primary device target?', + description: 'Select only the device that you need to develop for. \ + In most cases limiting the scope of your project would result \ + in better final result. Topcoder recommends to always start \ + with the mobile phone view and expand to other devices as your \ + app matures.', + fieldName: 'details.appDefinition.primaryTarget', + type: 'tiled-radio-group', + options: [ + {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, + {value: 'Tablet', title: 'Tablet', icon: Icons.IconTechOutlineTablet, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, + {value: 'Desktop', title: 'Desktop', icon: Icons.IconTechOutlineDesktop, iconOptions: { fill: '#00000'}, desc: 'all OS'}, + {value: 'Wearable', title: 'Wearable', icon: Icons.IconTechOutlineWatchApple, iconOptions: { fill: '#00000'}, desc: 'Watch OS, Android Wear'} + ] + }, + { + icon: 'question', + id: 'projectInfo', + fieldName: 'description', + description: 'Brief Description', + title: 'Description', + type: 'textbox' + }, + { + icon: 'question', + title: 'What is the goal of your application? How will people use it?', + description: 'Describe your objectives for creating this application', + type: 'textbox', + fieldName: 'details.appDefinition.goal' + }, + { + icon: 'question', + title: 'Who are the users of your application? ', + description: 'Describe the roles and needs of your target users', + type: 'textbox', + fieldName: 'details.appDefinition.users' + } + ] + }, + { + id: 'notes', + fieldName: 'details.appDefinition.notes', + title: 'Notes', + description: 'Add any other important information regarding your project (e.g., links to documents or existing applications, budget or timing constraints)', + type: 'notes' + } + ] + } +] \ No newline at end of file diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index 790cf0d81..c32aae363 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -243,3 +243,93 @@ const sections = [ ] export default sections + + +export const basicSections = [ + { + id: 'appDefinition', + title: function(project, showProduct) { + const product = _.get(project, 'details.products[0]') + if (showProduct && product) { + const prd = findProduct(product) + if (prd) return prd + } + return 'Definition' + }, + required: true, + pricePerPage: 1000, + description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + subSections: [ + { + id: 'projectName', + required: true, + fieldName: 'name', + description: '', + title: 'Project Name', + type: 'project-name' + }, + { + id: 'questions', + required: true, + hideTitle: true, + title: 'Questions', + description: '', + type: 'questions', + questions: [ + { + icon: 'question', + title: 'How many screens do you need designed?', + description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', + fieldName: 'details.appDefinition.numberScreens', + type: 'tiled-radio-group', + options: [ + {value: '1', title: 'screens', icon: NumberText, iconOptions: { number: '1' }, desc: '3-5 days'}, + {value: '3', title: 'screens', icon: NumberText, iconOptions: { number: '3' }, desc: '5-10 days'}, + {value: '5', title: 'screens', icon: NumberText, iconOptions: { number: '5' }, desc: '7-10 days'}, + {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '10-14 days'} + ] + }, + { + icon: 'question', + title: 'Which is your primary device target?', + description: 'Select only the device that you need to develop for. \ + In most cases limiting the scope of your project would result \ + in better final result. Topcoder recommends to always start \ + with the mobile phone view and expand to other devices as your \ + app matures.', + fieldName: 'details.appDefinition.primaryTarget', + type: 'tiled-radio-group', + options: [ + {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, + {value: 'Tablet', title: 'Tablet', icon: Icons.IconTechOutlineTablet, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, + {value: 'Desktop', title: 'Desktop', icon: Icons.IconTechOutlineDesktop, iconOptions: { fill: '#00000'}, desc: 'all OS'}, + {value: 'Wearable', title: 'Wearable', icon: Icons.IconTechOutlineWatchApple, iconOptions: { fill: '#00000'}, desc: 'Watch OS, Android Wear'} + ] + }, + { + icon: 'question', + id: 'projectInfo', + fieldName: 'description', + description: 'Brief Description', + title: 'Description', + type: 'textbox' + }, + { + icon: 'question', + title: 'Who are the users of your application? ', + description: 'Describe the roles and needs of your target users', + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.users' + } + ] + }, + { + id: 'notes', + fieldName: 'details.appDefinition.notes', + title: 'Notes', + description: 'Add any other important information regarding your project (e.g., links to documents or existing applications, budget or timing constraints)', + type: 'notes' + } + ] + } +] diff --git a/src/projects/create/components/IncompleteProjectConfirmation.js b/src/projects/create/components/IncompleteProjectConfirmation.js new file mode 100644 index 000000000..8603296ca --- /dev/null +++ b/src/projects/create/components/IncompleteProjectConfirmation.js @@ -0,0 +1,34 @@ +import _ from 'lodash' +import React, { PropTypes as PT } from 'react' +import './IncompleteProjectConfirmation.scss' + +function IncompleteProjectConfirmation({ loadIncompleteProject, removeIncompleteProject }) { + + return ( +
+

Hello Victor G

+
You created a project with us recently
+
Do you want to continue where you left off, or create a new project?
+
+ + +
+
+ ) +} + +IncompleteProjectConfirmation.defaultProps = { +} + +IncompleteProjectConfirmation.propTypes = { + /** + * Callback to be called when user selects to discard incomplete project and create new project + */ + removeIncompleteProject: PT.func.isRequired, + /** + * Callback to be called when user selects to load incomplete project + */ + loadIncompleteProject: PT.func.isRequired +} + +export default IncompleteProjectConfirmation diff --git a/src/projects/create/components/IncompleteProjectConfirmation.scss b/src/projects/create/components/IncompleteProjectConfirmation.scss new file mode 100644 index 000000000..f748a84b2 --- /dev/null +++ b/src/projects/create/components/IncompleteProjectConfirmation.scss @@ -0,0 +1,14 @@ +@import 'tc-includes'; + +.IncompleteProjectConfirmation { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + + .actions { + button + button { + margin-left: 4 * $base_unit; + } + } +} \ No newline at end of file diff --git a/src/projects/create/components/ProjectBasicDetailsForm.js b/src/projects/create/components/ProjectBasicDetailsForm.js new file mode 100644 index 000000000..bdd3da81d --- /dev/null +++ b/src/projects/create/components/ProjectBasicDetailsForm.js @@ -0,0 +1,127 @@ +import React, { Component, PropTypes } from 'react' +import { withRouter } from 'react-router' +import Modal from 'react-modal' +import _ from 'lodash' +import update from 'react-addons-update' +import { Formsy, Icons } from 'appirio-tech-react-components' +import './ProjectBasicDetailsForm.scss' + +import SpecSection from '../../detail/components/SpecSection' + +class ProjectBasicDetailsForm extends Component { + + constructor(props) { + super(props) + this.enableButton = this.enableButton.bind(this) + this.disableButton = this.disableButton.bind(this) + this.submit = this.submit.bind(this) + this.handleChange = this.handleChange.bind(this) + } + + componentWillMount() { + this.setState({ + project: Object.assign({}, this.props.project), + canSubmit: false + }) + } + + componentWillReceiveProps(nextProps) { + // we receipt property updates from PROJECT_DIRTY REDUX state + if (nextProps.project.isDirty) return + let updatedProject = Object.assign({}, nextProps.project) + this.setState({ + project: updatedProject, + isSaving: false, + canSubmit: false + }) + } + + isChanged() { + // We check if this.refs.form exists because this may be called before the + // first render, in which case it will be undefined. + return (this.refs.form && this.refs.form.isChanged()) + } + + enableButton() { + this.setState( { canSubmit: true }) + } + + disableButton() { + this.setState({ canSubmit: false }) + } + + submit(model) { + console.log('submit', this.isChanged()) + this.setState({isSaving: true }) + this.props.submitHandler(model) + } + + /** + * Handles the change event of the form. + * + * @param change changed form model in flattened form + * @param isChanged flag that indicates if form actually changed from initial model values + */ + handleChange(change) { + // removed check for isChanged argument to fire the PROJECT_DIRTY event for every change in the form + // this.props.fireProjectDirty(change) + this.props.onProjectChange(change) + } + + + render() { + const { isEdittable, sections, submitBtnText } = this.props + const { project } = this.state + const renderSection = (section, idx) => { + const anySectionInvalid = _.some(this.props.sections, (s) => s.isInvalid) + return ( +
+
+ {} }//dummy + resetFeatures={ () => {} }//dummy + // TODO we shoudl not update the props (section is coming from props) + validate={(isInvalid) => { + console.log('isInvalid: ' + isInvalid) + section.isInvalid = isInvalid + }} + /> +
+
+ +
+
+ ) + } + + return ( +
+ + {sections.map(renderSection)} + +
+ ) + } +} + +ProjectBasicDetailsForm.propTypes = { + project: PropTypes.object.isRequired, + saving: PropTypes.bool.isRequired, + sections: PropTypes.arrayOf(PropTypes.object).isRequired, + isEdittable: PropTypes.bool.isRequired, + submitHandler: PropTypes.func.isRequired +} + +export default withRouter(ProjectBasicDetailsForm) diff --git a/src/projects/create/components/ProjectBasicDetailsForm.scss b/src/projects/create/components/ProjectBasicDetailsForm.scss new file mode 100644 index 000000000..36e044f40 --- /dev/null +++ b/src/projects/create/components/ProjectBasicDetailsForm.scss @@ -0,0 +1,7 @@ +@import 'tc-includes'; + +.ProjectBasicDetailsForm { + .sections { + margin-bottom: 20px; + } +} \ No newline at end of file diff --git a/src/projects/create/components/ProjectOutline.js b/src/projects/create/components/ProjectOutline.js new file mode 100644 index 000000000..58735bc31 --- /dev/null +++ b/src/projects/create/components/ProjectOutline.js @@ -0,0 +1,55 @@ +import _ from 'lodash' +import React, { PropTypes as PT } from 'react' +import config from '../../../config/projectWizard' +import ProjectSubTypeCard from './ProjectSubTypeCard' +import WizardHeader from './WizardHeader' +import SVGIconImage from '../../../components/SVGIconImage' +import VisualDesignProjectEstimateSection from '../../detail/components/VisualDesignProjectEstimateSection' +import './ProjectOutline.scss' + +function ProjectOutline({ project }) { + const product = _.get(project, 'details.products[0]') + const projectTypeId = _.get(project, 'type') + if (!projectTypeId || !product) return
+ const projectType = _.findKey(config, {id : projectTypeId}) + const subConfig = config[projectType] + const productName = _.findKey(subConfig.subtypes, {id : product}) + const projectSize = 'To be estimated' + return ( +
+
Project Outline
+
{ project.name }
+
{ productName }
+
    +
  • + Type: + { projectType } +
  • +
  • + Size: + { projectSize } +
  • +
  • + Work: + { productName } +
  • +
    { project.description }
    +

  • +
  • + +
  • +
+
+ ) +} + +ProjectOutline.defaultProps = { +} + +ProjectOutline.propTypes = { +} + +export default ProjectOutline diff --git a/src/projects/create/components/ProjectOutline.scss b/src/projects/create/components/ProjectOutline.scss new file mode 100644 index 000000000..c164cf82d --- /dev/null +++ b/src/projects/create/components/ProjectOutline.scss @@ -0,0 +1,58 @@ +@import 'tc-includes'; + +.ProjectOutline { + display: flex; + flex-direction: column; + background-color: $tc-white; + box-shadow: 0px 1px 3px 0px $tc-gray-30; + padding: 5*$base-unit; + border-radius: 4px; + + h5 { + width: 100%; + margin-bottom: $base-unit * 4; + font-size: 12px; + color: $tc-gray-50; + text-transform: uppercase; + } + + .project-name { + color: $tc-gray-80; + @include roboto-bold; + margin-bottom: $base-unit * 2; + align-self: center; + } + + .project-product { + color: $tc-gray-50; + @include roboto; + margin-bottom: $base-unit * 4; + display: none; + } + + .project-description { + line-height: 5*$base-unit; + margin-top: $base-unit * 4; + margin-bottom: $base-unit * 4; + } + + .project-meta-data { + margin-top: $base-unit * 4; + .project-meta-data-row { + display: flex; + .project-meta-data-label { + flex: 1; + color: $tc-gray-50; + + @include tc-label-md; + @include roboto-bold; + } + + .project-meta-data-value { + flex: 3; + @include tc-label-md; + @include roboto-bold; + } + } + } +} diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index 1bc767d6a..b98f57a18 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -1,13 +1,22 @@ import _ from 'lodash' +import { unflatten } from 'flat' import React, { Component, PropTypes } from 'react' -import { connect } from 'react-redux' -import { withRouter } from 'react-router' -import { createProject } from '../../actions/project' import config from '../../../config/projectWizard' import Wizard from '../../../components/Wizard' import SelectProjectType from './SelectProjectType' import SelectProjectSubType from './SelectProjectSubType' +import IncompleteProjectConfirmation from './IncompleteProjectConfirmation' +import FillProjectDetails from '../containers/FillProjectDetailsContainer' +import update from 'react-addons-update' +import { LS_INCOMPLETE_PROJECT } from '../../../config/constants' +import './ProjectWizard.scss' + +const WZ_STEP_INCOMP_PROJ_CONF = 0 +const WZ_STEP_SELECT_PROJ_TYPE = 1 +const WZ_STEP_SELECT_PROD_TYPE = 2 +const WZ_STEP_FILL_PROJ_DETAILS = 3 +const WZ_STEP_ERROR_CREATING_PROJ = 4 class ProjectWizard extends Component { @@ -15,77 +24,211 @@ class ProjectWizard extends Component { super(props) this.state = { - creatingProject: false, - projectName: '', - projectRef: '', - projectType: '', - projectSubType: '', - wizardStep: 0 + wizardStep: WZ_STEP_SELECT_PROJ_TYPE, + project: { details: {} }, + dirtyProject: { details: {} }, + isProjectDirty: false } - this.createProject = this.createProject.bind(this) + this.updateProjectRef = this.updateProjectRef.bind(this) + this.updateProducts = this.updateProducts.bind(this) + this.handleProjectChange = this.handleProjectChange.bind(this) + this.onLeave = this.onLeave.bind(this) + this.loadIncompleteProject = this.loadIncompleteProject.bind(this) + this.removeIncompleteProject = this.removeIncompleteProject.bind(this) + this.handleOnCreateProject = this.handleOnCreateProject.bind(this) } - componentWillUpdate(nextProps) { - const projectId = _.get(nextProps, 'project.id', null) - if (!nextProps.processing && !nextProps.error && projectId) { - // close modal and navigate to project dashboard - this.props.closeModal() - this.props.router.push('/projects/' + projectId) + componentDidMount() { + // sets route leave hook to show unsaved changes alert and persist incomplete project + this.props.router.setRouteLeaveHook(this.props.route, this.onLeave) + // sets window unload hook to show unsaved changes alert and persist incomplete project + window.addEventListener('beforeunload', this.onLeave) + + + const { userRoles, location } = this.props + // load incomplete project from local storage + const incompleteProjectStr = window.localStorage.getItem(LS_INCOMPLETE_PROJECT) + if(incompleteProjectStr) { + const incompleteProject = JSON.parse(incompleteProjectStr) + this.setState({ + project: update(this.state.project, {$merge : incompleteProject}), + dirtyProject: update(this.state.dirtyProject, {$merge : incompleteProject}), + wizardStep: WZ_STEP_INCOMP_PROJ_CONF + }) + } else { + // if there is no incomplete project in the local storage, load the wizard with appropriate step + const { type, product } = this.props.params + const updateQuery = {} + let wizardStep = WZ_STEP_SELECT_PROJ_TYPE + if (type) { + updateQuery['type'] = { $set: type } + wizardStep = WZ_STEP_SELECT_PROD_TYPE + } + if (product) { + updateQuery['details'] = { 'products' : { $set: [product] } } + wizardStep = WZ_STEP_FILL_PROJ_DETAILS + } + this.setState({ + project: update(this.state.project, updateQuery), + dirtyProject: update(this.state.dirtyProject, updateQuery), + wizardStep + }) } } - createProject() { - this.setState({ creatingProject: true }) - const s = this.state - this.props.createProject({ - details: { - devices: [], - utm: { - code: s.projectRef - }, - products: [config[s.projectType].subtypes[s.projectSubType].id] - }, - name: s.projectName, - type: config[s.projectType].id + componentWillUnmount() { + window.removeEventListener('beforeunload', this.onLeave) + } + + componentWillReceiveProps(nextProps) { + const type = _.get(nextProps.project, 'type', null) + const product = _.get(nextProps.project, 'details.products[0]', null) + let wizardStep = type && product ? WZ_STEP_FILL_PROJ_DETAILS : null + if (wizardStep) { + this.setState({ + wizardStep: wizardStep + }) + } + } + + // stores the incomplete project in local storage + onLeave(e) { + const { wizardStep, isProjectDirty, processing } = this.state + if (wizardStep === WZ_STEP_FILL_PROJ_DETAILS && isProjectDirty) {// Project Details step + window.localStorage.setItem(LS_INCOMPLETE_PROJECT, JSON.stringify(this.state.dirtyProject)) + } + if (isProjectDirty && !processing) { + return e.returnValue = 'You have unsaved changes. Are you sure you want to leave?' + } + } + + /** + * Loads incomplete project from the local storage and populates the state from that project. + * It also moves the wizard to the project details step if there exists an incomplete project. + */ + loadIncompleteProject() { + const incompleteProjectStr = window.localStorage.getItem(LS_INCOMPLETE_PROJECT) + if(incompleteProjectStr) { + const incompleteProject = JSON.parse(incompleteProjectStr) + this.setState({ + project: update(this.state.project, { $merge : incompleteProject }), + dirtyProject: update(this.state.dirtyProject, { $merge : incompleteProject }), + wizardStep: WZ_STEP_FILL_PROJ_DETAILS + }) + } + } + + /** + * Removed incomplete project from the local storage and resets the state. Also, moves wizard to the first step. + */ + removeIncompleteProject() { + window.localStorage.removeItem(LS_INCOMPLETE_PROJECT) + this.setState({ + project: { details: {} }, + dirtyProject: { details: {} }, + wizardStep: WZ_STEP_SELECT_PROJ_TYPE }) } + updateProjectRef(projectRef) { + const details = _.get(this.state.project, 'details.utm.code') + let updateQuery = { details: { utm : { code : {$set : projectRef }}}} + if (!details) { + updateQuery = { details: { $set : { utm : { code : projectRef }}}} + } + this.setState({ + project: update(this.state.project, updateQuery), + dirtyProject: update(this.state.project, updateQuery) + }) + } + + updateProducts(product) { + const products = _.get(this.state.project, 'details.products') + let updateQuery = { details: { products : { $set : [product] }}} + if (!products) { + updateQuery = { details: { $set : { products : [product] }}} + } + this.setState({ + project: update(this.state.project, updateQuery), + dirtyProject: update(this.state.project, updateQuery) + }) + } + + handleProjectChange(change) { + this.setState({ + // update only dirtyProject when Form changes the model + dirtyProject: _.merge({}, this.state.dirtyProject, unflatten(change)), + isProjectDirty: true + }) + } + + handleOnCreateProject() { + this.props.createProject(this.state.dirtyProject) + } + render() { + const { processing, route, userRoles, createProject } = this.props + const { project, dirtyProject } = this.state return ( this.props.closeModal()} onStepChange={wizardStep => this.setState({ // In this wizard we have just two steps, and this callback is triggered // only to move from the second step back to the first, thus we always // should reset the projectSubType when this callback is fired. - projectSubType: '', + project: update(project, { details: { products: {$set : [] }}}), wizardStep })} step={this.state.wizardStep} > + this.setState({ projectName })} - onProjectRefChange={projectRef => this.setState({ projectRef })} - onProjectTypeChange={projectType => this.setState({ - projectType, - wizardStep: 1 + onProjectNameChange={projectName => this.setState({ + project: update(project, { name: {$set : projectName }}) })} - projectName={this.state.projectName} - projectRef={this.state.projectRef} - projectType={this.state.projectType} - projectSubType={this.state.projectSubType} + onProjectRefChange={ this.updateProjectRef } + onProjectTypeChange={projectType => {this.setState({ + project: update(project, { type: {$set : config[projectType].id }}), + wizardStep: WZ_STEP_SELECT_PROD_TYPE + })}} + projectName={ _.get(project, 'name', '') } + projectRef={ _.get(project, 'details.utm.code', '') } + projectType={ _.get(project, 'type', '') } + projectSubType={ _.get(project, 'details.products[0]', '') } /> this.createProject()} - onProjectNameChange={projectName => this.setState({ projectName })} - onProjectRefChange={projectRef => this.setState({ projectRef })} - onSubCategoryChange={projectSubType => this.setState({ projectSubType })} - projectName={this.state.projectName} - projectRef={this.state.projectRef} - projectType={this.state.projectType} - projectSubType={this.state.projectSubType} + createProject={projectType => this.setState({ + wizardStep: WZ_STEP_FILL_PROJ_DETAILS + })} + onProjectNameChange={projectName => this.setState({ + project: update(project, { name: {$set : projectName }}) + })} + onProjectRefChange={ this.updateProjectRef } + onSubCategoryChange={ this.updateProducts } + projectName={ _.get(project, 'name', '') } + projectRef={ _.get(project, 'details.utm.code', '') } + projectType={ _.get(project, 'type', '') } + projectSubType={ _.get(project, 'details.products[0]', '') } + /> + this.setState({ + project: update(project, { name: {$set : projectName }}) + })} + onProjectRefChange={projectRef => this.setState({ + project: update(project, { details: { utm : { code : {$set : projectRef }}}}) + })} + onProjectChange={ this.handleProjectChange } + route={route} + submitBtnText="Continue" /> ) @@ -102,11 +245,4 @@ ProjectWizard.defaultProps = { closeModal: () => {} } -const mapStateToProps = ({projectState, loadUser }) => ({ - userRoles: _.get(loadUser, 'user.roles', []), - processing: projectState.processing, - error: projectState.error, - project: projectState.project -}) -const actionCreators = { createProject } -export default withRouter(connect(mapStateToProps, actionCreators)(ProjectWizard)) +export default ProjectWizard \ No newline at end of file diff --git a/src/projects/create/components/ProjectWizard.scss b/src/projects/create/components/ProjectWizard.scss new file mode 100644 index 000000000..d094be956 --- /dev/null +++ b/src/projects/create/components/ProjectWizard.scss @@ -0,0 +1,25 @@ +@import 'tc-includes'; + +.ProjectWizard { + .content { + background: transparent; + box-shadow: none; + width: 100%; + + .ProjectTypeCard { + background: $tc-white; + + &.selected { + background: $tc-gray-10; + } + } + + .ProjectSubTypeCard { + background: $tc-white; + + &.selected { + background: $tc-gray-10; + } + } + } +} \ No newline at end of file diff --git a/src/projects/create/components/SelectProjectSubType.jsx b/src/projects/create/components/SelectProjectSubType.jsx index 72ec3776f..1596ccc45 100644 --- a/src/projects/create/components/SelectProjectSubType.jsx +++ b/src/projects/create/components/SelectProjectSubType.jsx @@ -8,57 +8,47 @@ import './SelectProjectSubType.scss' function SelectProjectSubType(props) { const cards = [] - const subConfig = config[props.projectType] + const subConfig = config[_.findKey(config, {id : props.projectType})] for (const key in subConfig.subtypes) { const item = subConfig.subtypes[key] const icon = cards.push( props.onSubCategoryChange(key)} - selected={props.projectSubType === key} + onClick={() => props.onSubCategoryChange(item.id)} + selected={props.projectSubType === item.id} type={key} /> ) } - const details = props.projectSubType ? - subConfig.subtypes[props.projectSubType].details : + + const projectSubTypeKey = _.findKey(subConfig, {id : props.projectSubType}) + const details = projectSubTypeKey ? + subConfig.subtypes[projectSubTypeKey].details : 'Select your project type' return (
-

{subConfig.question}

{cards}
{details}
- {props.creatingProject ? 'Creating ...' : 'Create project'} + Let's Start
) } SelectProjectSubType.defaultProps = { - creatingProject: false } SelectProjectSubType.propTypes = { createProject: PT.func.isRequired, - creatingProject: PT.bool, onProjectNameChange: PT.func.isRequired, onProjectRefChange: PT.func.isRequired, onSubCategoryChange: PT.func.isRequired, diff --git a/src/projects/create/components/SelectProjectType.jsx b/src/projects/create/components/SelectProjectType.jsx index e56220fa1..21eb88140 100644 --- a/src/projects/create/components/SelectProjectType.jsx +++ b/src/projects/create/components/SelectProjectType.jsx @@ -12,7 +12,6 @@ function SelectProjectType(props) { const icon = cards.push( -

Select your project category

{cards}
diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index 1ea923f47..ce11a988f 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -1,30 +1,124 @@ -import React from 'react' -// import { connect } from 'react-redux' +import _ from 'lodash' +import React, { PropTypes } from 'react' +import { withRouter } from 'react-router' +import { connect } from 'react-redux' +import { renderComponent, branch, compose, withProps } from 'recompose' +import { createProject as createProjectAction, fireProjectDirty, fireProjectDirtyUndo } from '../../actions/project' +import PageError from '../../../components/PageError/PageError' +import spinnerWhileLoading from '../../../components/LoadingSpinner' import ProjectWizard from '../components/ProjectWizard' +import { CREATE_PROJECT_FAILURE, LS_INCOMPLETE_PROJECT } from '../../../config/constants' -// require('./CreateProject.scss') - -const CreateView = () => ( -
- -
+const page404 = compose( + withProps({code:500}) ) +// this handles showing error page when there is an error in loading the page +const showPageErrorIfError = (hasError) => + branch( + hasError, + renderComponent(page404(PageError)), + t => t + ) +const errorHandler = showPageErrorIfError(props => props.error && props.error.type === CREATE_PROJECT_FAILURE) + +// This handles showing a spinner while the state is being loaded async +const spinner = spinnerWhileLoading(props => !props.processing) + +const enhance = compose(errorHandler, spinner) +// const EnhancedProjectWizard = enhance(ProjectWizard) + +const CreateView = (props) => { + const { route, error } = props + if (route.path === '/new-project-callback') { + // can do some fancy loading (e.g. coderbot animation) here + // return
+ return
Creating your project
+ } + return ( +
+ +
+ ) +} +const EnhancedCreateView = enhance(CreateView) +// const EnhancedCreateView = spinner(CreateView) class CreateConainer extends React.Component { constructor(props) { super(props) + this.state = { + creatingProject : false + } + this.createProject = this.createProject.bind(this) + } + + componentWillReceiveProps(nextProps) { + if (this.state.creatingProject != nextProps.processing) { + this.setState({ creatingProject : nextProps.processing }) + } + } + + componentWillMount() { + const { processing, userRoles, route } = this.props + // load incomplete project from local storage + const incompleteProjectStr = window.localStorage.getItem(LS_INCOMPLETE_PROJECT) + if(incompleteProjectStr) { + const incompleteProject = JSON.parse(incompleteProjectStr) + if (route.path === '/new-project-callback' && !processing && userRoles && userRoles.length > 0) { + // if project wizard is loaded after redirection from register page + // TODO should we validate the project again? + console.log('calling createProjectAction...') + this.props.createProjectAction(incompleteProject) + } + } + } + + componentWillUpdate(nextProps) { + const projectId = _.get(nextProps, 'project.id', null) + if (!nextProps.processing && !nextProps.error && projectId) { + // close modal (if shown as modal), remove incomplete project, and navigate to project dashboard + // this.props.closeModal() + console.log('removing incomplete project from local storage') + window.localStorage.removeItem(LS_INCOMPLETE_PROJECT) + this.props.router.push('/projects/' + projectId) + } + } + + /** + * Creates new project if user is already logged in, otherwise, redirects user for registration/login. + */ + createProject(project) { + this.setState({ creatingProject: true }, () => { + if (this.props.userRoles && this.props.userRoles.length > 0) { + // if user is logged in and has a valid role, create project + // uses dirtyProject from the state as it has the latest changes from the user + this.props.createProjectAction(project) + } else { + // redirect to registration/login page + const retUrl = window.location.origin + '/new-project-callback' + window.location = 'https://accounts.topcoder-dev.com/#!/connect?retUrl=' + retUrl + } + }) } render() { - return + return } } -// const mapStateToProps = ({ projectState }) => { -// return { -// isLoading : projectState.isLoading -// } -// } +CreateConainer.propTypes = { + userRoles: PropTypes.arrayOf(PropTypes.string).isRequired +} + +CreateConainer.defaultProps = { + userRoles: [] +} -export default CreateConainer -// export default connect(mapStateToProps)(CreateConainer) +const mapStateToProps = ({projectState, loadUser }) => ({ + userRoles: _.get(loadUser, 'user.roles', []), + processing: projectState.processing, + error: projectState.error, + project: projectState.project +}) +const actionCreators = { createProjectAction, fireProjectDirty, fireProjectDirtyUndo } +export default withRouter(connect(mapStateToProps, actionCreators)(CreateConainer)) diff --git a/src/projects/create/containers/FillProjectDetailsContainer.js b/src/projects/create/containers/FillProjectDetailsContainer.js new file mode 100644 index 000000000..4ea9fa9bc --- /dev/null +++ b/src/projects/create/containers/FillProjectDetailsContainer.js @@ -0,0 +1,92 @@ +import _ from 'lodash' +import React, { PropTypes as PT, Component } from 'react' +import Sticky from 'react-stickynode' +import config from '../../../config/projectWizard' +import WizardHeader from '../components/WizardHeader' +import './FillProjectDetailsContainer.scss' +import ProjectBasicDetailsForm from '../components/ProjectBasicDetailsForm' +import ProjectOutline from '../components/ProjectOutline' +import typeToSpecification from '../../../config/projectSpecification/typeToSpecification' + +class FillProjectDetailsContainer extends Component { + constructor(props) { + super(props) + this.state = { project: {} } + } + + componentWillMount() { + this.componentWillReceiveProps(this.props) + } + + componentWillReceiveProps(nextProps) { + this.setState({ project: nextProps.project }) + } + + shouldComponentUpdate(nextProps, nextState) { + return !( + _.isEqual(nextProps.project, this.props.project) + && _.isEqual(nextState.project, this.state.project) + && _.isEqual(nextProps.dirtyProject, this.props.dirtyProject) + && _.isEqual(nextProps.error, this.props.error) + ) + } + + render() { + const { project, dirtyProject, processing, submitBtnText, onProjectNameChange, onProjectRefChange } = this.props + const product = _.get(project, 'details.products[0]') + const projectName = _.get(project, 'name') + const projectRef = _.get(project, 'details.utm.code', '') + const projectTypeId = _.get(project, 'type') + const subConfig = config[_.findKey(config, {id : projectTypeId})] + const productName = _.findKey(subConfig.subtypes, {id : product}) + + let specification = 'topcoder.v1' + if (product) + specification = typeToSpecification[product] + let sections = require(`../../../config/projectQuestions/${specification}`).basicSections + return ( +
+
+

Let's setup your { productName } project

+ +
+
+
+
+ +
+
+ + +
In 24 hours our project managers will contact you for more information and a detailed quote that accurately reflects your project needs.
+
+
+
+
+
+ ) + } +} + +FillProjectDetailsContainer.propTypes = { + // onProjectChange: PT.func.isRequired, + onCreateProject: PT.func.isRequired, + project: PT.object.isRequired, + currentMemberRole: PT.string, + processing: PT.bool, + error: PT.oneOfType([ + PT.bool, + PT.object + ]) +} + +export default FillProjectDetailsContainer \ No newline at end of file diff --git a/src/projects/create/containers/FillProjectDetailsContainer.scss b/src/projects/create/containers/FillProjectDetailsContainer.scss new file mode 100644 index 000000000..2e3895838 --- /dev/null +++ b/src/projects/create/containers/FillProjectDetailsContainer.scss @@ -0,0 +1,90 @@ +@import 'tc-includes'; + +//TODO Additional variables - need to find a home for these +$gray-color: $tc-gray-50; +$title-color: $tc-gray-80; + +@mixin flexBox { + display: box; + display: flex; + flex-direction: row; + width: auto; +} + +@mixin flexWidth($number) { + -webkit-box-flex: $number; + -moz-box-flex: $number; + -webkit-flex: $number; + -ms-flex: $number; + flex: $number; +} + +.FillProjectDetailsContainer { + + .header { + display: flex; + + h1 { + @include tc-heading; + width: 100%; + text-align: center; + } + + button { + align-self: flex-end; + white-space: nowrap; + } + } + + + .two-col-content.content { + + .container { + @include flexBox; + background-color: transparent; + display: flex; + padding: 0px; + width: 1110px; + margin: 20px auto; + /* .left-area */ + .left-area { + @include flexWidth(2); + position: relative; + border-radius: 4px; + background: $tc-white; + box-shadow: 0px 1px 3px 0px $tc-gray-30; + padding: 5*$base-unit; + margin-bottom: 20px; + + .title { + color: $tc-gray-80; + @include roboto-bold; + } + + .section-footer { + margin-top: 4*$base_unit; + margin-bottom: 0px; + background: none; + } + + } + + .right-area { + @include flexWidth(1); + margin-left: 4*$base_unit; + + .right-area-footer { + @include roboto; + padding: 0 40px 0 20px; + font-size: 13px; + line-height: 30px; + color: $tc-gray-50; + + span { + float: right; + } + } + } + } + } +} \ No newline at end of file diff --git a/src/projects/detail/components/SpecSection.jsx b/src/projects/detail/components/SpecSection.jsx index 52234cec9..2deb7e0db 100644 --- a/src/projects/detail/components/SpecSection.jsx +++ b/src/projects/detail/components/SpecSection.jsx @@ -98,7 +98,7 @@ const SpecSection = props => { const refCode = _.get(project, refCodeFieldName, undefined) return (
- { project.status === PROJECT_STATUS_DRAFT && + { (!project.status || project.status === PROJECT_STATUS_DRAFT) &&
{ />
} - { project.status !== PROJECT_STATUS_DRAFT && + { (project.status && project.status !== PROJECT_STATUS_DRAFT) &&
{project.name}
} - { project.status === PROJECT_STATUS_DRAFT && + { (!project.status || project.status === PROJECT_STATUS_DRAFT) &&
{
} - { refCode && project.status !== PROJECT_STATUS_DRAFT && + { (refCode && project.status && project.status !== PROJECT_STATUS_DRAFT) &&
{ refCode }
diff --git a/src/projects/routes.jsx b/src/projects/routes.jsx index 4586c8db0..1762c4aa5 100644 --- a/src/projects/routes.jsx +++ b/src/projects/routes.jsx @@ -7,20 +7,17 @@ import ProjectDetail from './detail/ProjectDetail' import Dashboard from './detail/Dashboard' import ProjectMessages from './detail/Messages' import SpecificationContainer from './detail/containers/SpecificationContainer' -// import CreateContainer from './create/containers/CreateContainer' import { requiresAuthentication } from '../components/AuthenticatedComponent' const projectRoutes = ( - + // TODO add project topbar - - - - - - - + + + + + ) diff --git a/src/routes.jsx b/src/routes.jsx index cc3f8376b..70d15feb7 100644 --- a/src/routes.jsx +++ b/src/routes.jsx @@ -78,7 +78,8 @@ const redirectToProject = (nextState, replace, callback) => { export default ( window.scrollTo(0, 0)} component={ App } onEnter={ redirectToConnect }> - + + From a84912fa7c23f4255ab7350b7fbbea38e629c39d Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Thu, 25 May 2017 17:47:48 +0530 Subject: [PATCH 03/89] Style fix for Project estimate component --- .../components/VisualDesignProjectEstimateSection.jsx | 4 ++-- .../components/VisualDesignProjectEstimateSection.scss | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx b/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx index 3aac07753..23bb6c8e5 100644 --- a/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx +++ b/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx @@ -30,9 +30,9 @@ const VisualDesignProjectEstimateSection = ({products, numberScreens}) => { return (

Project Estimate

-

Duration

+

Duration:

{durationEstimate}

-

Quick Quote

+

Quick Quote:

$ { numberWithCommas(priceEstimate) }

) diff --git a/src/projects/detail/components/VisualDesignProjectEstimateSection.scss b/src/projects/detail/components/VisualDesignProjectEstimateSection.scss index 6c7930649..f5502ae82 100644 --- a/src/projects/detail/components/VisualDesignProjectEstimateSection.scss +++ b/src/projects/detail/components/VisualDesignProjectEstimateSection.scss @@ -15,15 +15,17 @@ .label, .estimate { flex-basis: 50%; - padding: 0 $base-unit * 4; + @include tc-label-md; + @include roboto-bold; margin-bottom: $base-unit * 2; } + .label { + color: $tc-gray-50; + } + .estimate { text-align: right; flex: auto; - span { - color: $tc-gray-50; - } } } From 942639f994547242eeef00c6a8aa994257dd5439 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Thu, 25 May 2017 17:52:33 +0530 Subject: [PATCH 04/89] Modified PageError to be a generic component to render any message from Coder Bot. It can now be used for rendering non error messages as well. Renamed the component as well to CoderBot. --- src/components/CoderBot/CoderBot.jsx | 45 +++++++++++++++++++ .../PageError.scss => CoderBot/CoderBot.scss} | 0 src/components/PageError/PageError.jsx | 34 -------------- .../create/containers/CreateContainer.jsx | 11 +++-- src/projects/detail/ProjectDetail.jsx | 8 ++-- .../list/components/Projects/ProjectsView.jsx | 4 +- src/routes.jsx | 6 +-- 7 files changed, 59 insertions(+), 49 deletions(-) create mode 100644 src/components/CoderBot/CoderBot.jsx rename src/components/{PageError/PageError.scss => CoderBot/CoderBot.scss} (100%) delete mode 100644 src/components/PageError/PageError.jsx diff --git a/src/components/CoderBot/CoderBot.jsx b/src/components/CoderBot/CoderBot.jsx new file mode 100644 index 000000000..a81ac7336 --- /dev/null +++ b/src/components/CoderBot/CoderBot.jsx @@ -0,0 +1,45 @@ +import React, {PropTypes} from 'react' +import './CoderBot.scss' + +const getHeading = code => { + switch(code) { + case 404: + return 'D’oh! We couldn’t find the page you were looking for.' + case 200: + return 'Success!!' + case 500: + default: + return 'D’oh! Something went wrong' + } +} + +const getMessage = code => { + switch(code) { + case 200: + return 'Operation performed successfully!!' + default: + return 'Sorry about that, mate! Please try reloading the page again. If things don’t work or you’re sure it is Coder’s fault, send us a note at support@topcoder.com and we’ll fix it for you.' + } +} + +const CoderBot = ({code, message}) => { + return ( +
+
+
+

{ getHeading(code) }

+

+ {code !== 200 && code} +
+
+
+ ) +} + +CoderBot.propTypes = { + code: PropTypes.number.isRequired +} +CoderBot.defaultProps = { + code: 500 +} +export default CoderBot diff --git a/src/components/PageError/PageError.scss b/src/components/CoderBot/CoderBot.scss similarity index 100% rename from src/components/PageError/PageError.scss rename to src/components/CoderBot/CoderBot.scss diff --git a/src/components/PageError/PageError.jsx b/src/components/PageError/PageError.jsx deleted file mode 100644 index 2749f83a1..000000000 --- a/src/components/PageError/PageError.jsx +++ /dev/null @@ -1,34 +0,0 @@ -import React, {PropTypes} from 'react' -import './PageError.scss' - -const getMessage = code => { - switch(code) { - case 404: - return 'D’oh! We couldn’t find the page you were looking for.' - case 500: - default: - return 'D’oh! Something went wrong' - } -} - -const PageError = ({code}) => { - return ( -
-
-
-

{getMessage(code)}

-

Sorry about that, mate! Please try reloading the page again. If things don’t work or you’re sure it is Coder’s fault, send us a note at support@topcoder.com and we’ll fix it for you.

- {code} -
-
-
- ) -} - -PageError.propTypes = { - code: PropTypes.number.isRequired -} -PageError.defaultProps = { - code: 500 -} -export default PageError diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index ce11a988f..5180c311b 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -4,7 +4,7 @@ import { withRouter } from 'react-router' import { connect } from 'react-redux' import { renderComponent, branch, compose, withProps } from 'recompose' import { createProject as createProjectAction, fireProjectDirty, fireProjectDirtyUndo } from '../../actions/project' -import PageError from '../../../components/PageError/PageError' +import CoderBot from '../../../components/CoderBot/CoderBot' import spinnerWhileLoading from '../../../components/LoadingSpinner' import ProjectWizard from '../components/ProjectWizard' import { CREATE_PROJECT_FAILURE, LS_INCOMPLETE_PROJECT } from '../../../config/constants' @@ -13,13 +13,13 @@ const page404 = compose( withProps({code:500}) ) // this handles showing error page when there is an error in loading the page -const showPageErrorIfError = (hasError) => +const showCoderBotIfError = (hasError) => branch( hasError, - renderComponent(page404(PageError)), + renderComponent(page404(CoderBot)), t => t ) -const errorHandler = showPageErrorIfError(props => props.error && props.error.type === CREATE_PROJECT_FAILURE) +const errorHandler = showCoderBotIfError(props => props.error && props.error.type === CREATE_PROJECT_FAILURE) // This handles showing a spinner while the state is being loaded async const spinner = spinnerWhileLoading(props => !props.processing) @@ -31,8 +31,7 @@ const CreateView = (props) => { const { route, error } = props if (route.path === '/new-project-callback') { // can do some fancy loading (e.g. coderbot animation) here - // return
- return
Creating your project
+ return
} return (
diff --git a/src/projects/detail/ProjectDetail.jsx b/src/projects/detail/ProjectDetail.jsx index 2f50e5084..9abd86a33 100644 --- a/src/projects/detail/ProjectDetail.jsx +++ b/src/projects/detail/ProjectDetail.jsx @@ -7,18 +7,18 @@ import { renderComponent, branch, compose, withProps } from 'recompose' import { loadProjectDashboard } from '../actions/projectDashboard' import { LOAD_PROJECT_FAILURE, PROJECT_ROLE_CUSTOMER, PROJECT_ROLE_OWNER } from '../../config/constants' import spinnerWhileLoading from '../../components/LoadingSpinner' -import PageError from '../../components/PageError/PageError' +import CoderBot from '../../components/CoderBot/CoderBot' const page404 = compose( withProps({code:404}) ) -const showPageErrorIfError = (hasError) => +const showCoderBotIfError = (hasError) => branch( hasError, - renderComponent(page404(PageError)), // FIXME pass in props code=400 + renderComponent(page404(CoderBot)), // FIXME pass in props code=400 t => t ) -const errorHandler = showPageErrorIfError(props => props.error && props.error.type === LOAD_PROJECT_FAILURE) +const errorHandler = showCoderBotIfError(props => props.error && props.error.type === LOAD_PROJECT_FAILURE) // This handles showing a spinner while the state is being loaded async const spinner = spinnerWhileLoading(props => !props.isLoading) diff --git a/src/projects/list/components/Projects/ProjectsView.jsx b/src/projects/list/components/Projects/ProjectsView.jsx index 83f4c578f..8d2448b9e 100644 --- a/src/projects/list/components/Projects/ProjectsView.jsx +++ b/src/projects/list/components/Projects/ProjectsView.jsx @@ -9,7 +9,7 @@ import GridView from '../../../../components/Grid/GridView' import Walkthrough from '../Walkthrough/Walkthrough' import UserWithName from '../../../../components/User/UserWithName' -import PageError from '../../../../components/PageError/PageError' +import CoderBot from '../../../../components/CoderBot/CoderBot' import { ROLE_CONNECT_MANAGER, ROLE_CONNECT_COPILOT, PROJECT_STATUS } from '../../../../config/constants' // This handles showing a spinner while the state is being loaded async @@ -22,7 +22,7 @@ import spinnerWhileLoading from '../../../../components/LoadingSpinner' const defaultCriteria = {sort: 'createdAt desc'} const showErrorMessageIfError = hasLoaded => - branch(hasLoaded, t => t, renderComponent()) + branch(hasLoaded, t => t, renderComponent()) const errorHandler = showErrorMessageIfError(props => !props.error) const spinner = spinnerWhileLoading(props => !props.isLoading) const enhance = compose(errorHandler, spinner) diff --git a/src/routes.jsx b/src/routes.jsx index 70d15feb7..17c92f864 100644 --- a/src/routes.jsx +++ b/src/routes.jsx @@ -4,7 +4,7 @@ import { withProps } from 'recompose' import App from './components/App/App' import Home from './components/Home/Home' import ConnectTerms from './components/ConnectTerms/ConnectTerms' -import PageError from './components/PageError/PageError' +import CoderBot from './components/CoderBot/CoderBot' import projectRoutes from './projects/routes.jsx' import RedirectComponent from './components/RedirectComponent' import CreateContainer from './projects/create/containers/CreateContainer' @@ -88,7 +88,7 @@ export default ( {projectRoutes} {/* {reportsListRoutes} */} - }/> - }/> + }/> + }/> ) From c57c7b153c8332f88bbbc52cb3c8c0912ccf5c2b Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 29 May 2017 17:45:48 +0530 Subject: [PATCH 05/89] Fixed issues with false alerts about unsaved changes when user clicks to Continue button for creating project. --- .../create/components/ProjectWizard.jsx | 67 ++++++++++--------- .../create/containers/CreateContainer.jsx | 67 +++++++++++++++---- 2 files changed, 90 insertions(+), 44 deletions(-) diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index b98f57a18..b381e0077 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -33,19 +33,13 @@ class ProjectWizard extends Component { this.updateProjectRef = this.updateProjectRef.bind(this) this.updateProducts = this.updateProducts.bind(this) this.handleProjectChange = this.handleProjectChange.bind(this) - this.onLeave = this.onLeave.bind(this) this.loadIncompleteProject = this.loadIncompleteProject.bind(this) this.removeIncompleteProject = this.removeIncompleteProject.bind(this) this.handleOnCreateProject = this.handleOnCreateProject.bind(this) + this.handleStepChange = this.handleStepChange.bind(this) } componentDidMount() { - // sets route leave hook to show unsaved changes alert and persist incomplete project - this.props.router.setRouteLeaveHook(this.props.route, this.onLeave) - // sets window unload hook to show unsaved changes alert and persist incomplete project - window.addEventListener('beforeunload', this.onLeave) - - const { userRoles, location } = this.props // load incomplete project from local storage const incompleteProjectStr = window.localStorage.getItem(LS_INCOMPLETE_PROJECT) @@ -54,7 +48,10 @@ class ProjectWizard extends Component { this.setState({ project: update(this.state.project, {$merge : incompleteProject}), dirtyProject: update(this.state.dirtyProject, {$merge : incompleteProject}), - wizardStep: WZ_STEP_INCOMP_PROJ_CONF + wizardStep: WZ_STEP_INCOMP_PROJ_CONF, + isProjectDirty: false + }, () => { + this.props.onStepChange(this.state.wizardStep) }) } else { // if there is no incomplete project in the local storage, load the wizard with appropriate step @@ -72,15 +69,14 @@ class ProjectWizard extends Component { this.setState({ project: update(this.state.project, updateQuery), dirtyProject: update(this.state.dirtyProject, updateQuery), - wizardStep + wizardStep, + isProjectDirty: false + }, () => { + this.props.onStepChange(this.state.wizardStep) }) } } - componentWillUnmount() { - window.removeEventListener('beforeunload', this.onLeave) - } - componentWillReceiveProps(nextProps) { const type = _.get(nextProps.project, 'type', null) const product = _.get(nextProps.project, 'details.products[0]', null) @@ -88,21 +84,12 @@ class ProjectWizard extends Component { if (wizardStep) { this.setState({ wizardStep: wizardStep + }, () => { + this.props.onStepChange(this.state.wizardStep) }) } } - // stores the incomplete project in local storage - onLeave(e) { - const { wizardStep, isProjectDirty, processing } = this.state - if (wizardStep === WZ_STEP_FILL_PROJ_DETAILS && isProjectDirty) {// Project Details step - window.localStorage.setItem(LS_INCOMPLETE_PROJECT, JSON.stringify(this.state.dirtyProject)) - } - if (isProjectDirty && !processing) { - return e.returnValue = 'You have unsaved changes. Are you sure you want to leave?' - } - } - /** * Loads incomplete project from the local storage and populates the state from that project. * It also moves the wizard to the project details step if there exists an incomplete project. @@ -115,6 +102,8 @@ class ProjectWizard extends Component { project: update(this.state.project, { $merge : incompleteProject }), dirtyProject: update(this.state.dirtyProject, { $merge : incompleteProject }), wizardStep: WZ_STEP_FILL_PROJ_DETAILS + }, () => { + this.props.onStepChange(this.state.wizardStep) }) } } @@ -160,6 +149,8 @@ class ProjectWizard extends Component { // update only dirtyProject when Form changes the model dirtyProject: _.merge({}, this.state.dirtyProject, unflatten(change)), isProjectDirty: true + }, () => { + this.props.onProjectUpdate(this.state.dirtyProject) }) } @@ -167,6 +158,18 @@ class ProjectWizard extends Component { this.props.createProject(this.state.dirtyProject) } + handleStepChange(wizardStep) { + this.setState({ + // In this wizard we have just two steps, and this callback is triggered + // only to move from the second step back to the first, thus we always + // should reset the projectSubType when this callback is fired. + project: update(project, { details: { products: {$set : [] }}}), + wizardStep + }, () => { + this.props.onStepChange(wizardStep) + }) + } + render() { const { processing, route, userRoles, createProject } = this.props const { project, dirtyProject } = this.state @@ -175,13 +178,7 @@ class ProjectWizard extends Component { hideModal={true} className="ProjectWizard" onCancel={() => this.props.closeModal()} - onStepChange={wizardStep => this.setState({ - // In this wizard we have just two steps, and this callback is triggered - // only to move from the second step back to the first, thus we always - // should reset the projectSubType when this callback is fired. - project: update(project, { details: { products: {$set : [] }}}), - wizardStep - })} + onStepChange={ this.handleStepChange } step={this.state.wizardStep} > {} } +ProjectWizard.Steps = { + WZ_STEP_INCOMP_PROJ_CONF, + WZ_STEP_SELECT_PROJ_TYPE, + WZ_STEP_SELECT_PROD_TYPE, + WZ_STEP_FILL_PROJ_DETAILS, + WZ_STEP_ERROR_CREATING_PROJ +} + export default ProjectWizard \ No newline at end of file diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index 5180c311b..029c53b13 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -25,7 +25,6 @@ const errorHandler = showCoderBotIfError(props => props.error && props.error.typ const spinner = spinnerWhileLoading(props => !props.processing) const enhance = compose(errorHandler, spinner) -// const EnhancedProjectWizard = enhance(ProjectWizard) const CreateView = (props) => { const { route, error } = props @@ -40,24 +39,41 @@ const CreateView = (props) => { ) } const EnhancedCreateView = enhance(CreateView) -// const EnhancedCreateView = spinner(CreateView) class CreateConainer extends React.Component { constructor(props) { super(props) this.state = { - creatingProject : false + creatingProject : false, + isProjectDirty: false, + wizardStep: 0, + updatedProject: {} } this.createProject = this.createProject.bind(this) + this.onLeave = this.onLeave.bind(this) } componentWillReceiveProps(nextProps) { - if (this.state.creatingProject != nextProps.processing) { + const projectId = _.get(nextProps, 'project.id', null) + if (!nextProps.processing && !nextProps.error && projectId) { + // close modal (if shown as modal), remove incomplete project, and navigate to project dashboard + // this.props.closeModal() + this.setState({ + creatingProject: false, + isProjectDirty: false + }, () => { + console.log('removing incomplete project') + window.localStorage.removeItem(LS_INCOMPLETE_PROJECT) + this.props.router.push('/projects/' + projectId) + }) + + } else if (this.state.creatingProject != nextProps.processing) { this.setState({ creatingProject : nextProps.processing }) } } componentWillMount() { + console.log('CreateContainer#componentWillMount') const { processing, userRoles, route } = this.props // load incomplete project from local storage const incompleteProjectStr = window.localStorage.getItem(LS_INCOMPLETE_PROJECT) @@ -72,14 +88,26 @@ class CreateConainer extends React.Component { } } - componentWillUpdate(nextProps) { - const projectId = _.get(nextProps, 'project.id', null) - if (!nextProps.processing && !nextProps.error && projectId) { - // close modal (if shown as modal), remove incomplete project, and navigate to project dashboard - // this.props.closeModal() - console.log('removing incomplete project from local storage') - window.localStorage.removeItem(LS_INCOMPLETE_PROJECT) - this.props.router.push('/projects/' + projectId) + componentDidMount() { + // sets route leave hook to show unsaved changes alert and persist incomplete project + this.props.router.setRouteLeaveHook(this.props.route, this.onLeave) + // sets window unload hook to show unsaved changes alert and persist incomplete project + window.addEventListener('beforeunload', this.onLeave) + } + + componentWillUnmount() { + window.removeEventListener('beforeunload', this.onLeave) + } + + // stores the incomplete project in local storage + onLeave(e) { + const { wizardStep, isProjectDirty, creatingProject } = this.state + if (wizardStep === ProjectWizard.Steps.WZ_STEP_FILL_PROJ_DETAILS && isProjectDirty) {// Project Details step + console.log('saving incomplete project') + window.localStorage.setItem(LS_INCOMPLETE_PROJECT, JSON.stringify(this.state.updatedProject)) + } + if (isProjectDirty && !creatingProject) { + return e.returnValue = 'You have unsaved changes. Are you sure you want to leave?' } } @@ -101,7 +129,20 @@ class CreateConainer extends React.Component { } render() { - return + return ( + this.setState({ + wizardStep + })} + onProjectUpdate={ (updatedProject) => this.setState({ + isProjectDirty: true, + updatedProject + })} + /> + ) } } From a3f7ccdb654637e0109a4290f460466339e5c92c Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 30 May 2017 14:51:07 +0530 Subject: [PATCH 06/89] better naming for project details wizard step, code cleanup removed modal left overs and clean up related code --- src/components/Wizard/Wizard.jsx | 5 +++-- .../FillProjectDetails.js} | 10 +++++----- .../FillProjectDetails.scss} | 6 +----- src/projects/create/components/ProjectWizard.jsx | 12 +++++++----- src/projects/create/containers/CreateContainer.jsx | 4 ++-- 5 files changed, 18 insertions(+), 19 deletions(-) rename src/projects/create/{containers/FillProjectDetailsContainer.js => components/FillProjectDetails.js} (92%) rename src/projects/create/{containers/FillProjectDetailsContainer.scss => components/FillProjectDetails.scss} (91%) diff --git a/src/components/Wizard/Wizard.jsx b/src/components/Wizard/Wizard.jsx index 84c39f884..cd4ea704f 100644 --- a/src/components/Wizard/Wizard.jsx +++ b/src/components/Wizard/Wizard.jsx @@ -16,7 +16,7 @@ function Wizard(props) { /> ) } - if (!props.hideModal) { + if (props.showModal) { modalCloseControl = ( +

Let's setup your { productName } project

@@ -77,7 +77,7 @@ class FillProjectDetailsContainer extends Component { } } -FillProjectDetailsContainer.propTypes = { +FillProjectDetails.propTypes = { // onProjectChange: PT.func.isRequired, onCreateProject: PT.func.isRequired, project: PT.object.isRequired, @@ -89,4 +89,4 @@ FillProjectDetailsContainer.propTypes = { ]) } -export default FillProjectDetailsContainer \ No newline at end of file +export default FillProjectDetails \ No newline at end of file diff --git a/src/projects/create/containers/FillProjectDetailsContainer.scss b/src/projects/create/components/FillProjectDetails.scss similarity index 91% rename from src/projects/create/containers/FillProjectDetailsContainer.scss rename to src/projects/create/components/FillProjectDetails.scss index 2e3895838..71e49769e 100644 --- a/src/projects/create/containers/FillProjectDetailsContainer.scss +++ b/src/projects/create/components/FillProjectDetails.scss @@ -1,9 +1,5 @@ @import 'tc-includes'; -//TODO Additional variables - need to find a home for these -$gray-color: $tc-gray-50; -$title-color: $tc-gray-80; - @mixin flexBox { display: box; display: flex; @@ -19,7 +15,7 @@ $title-color: $tc-gray-80; flex: $number; } -.FillProjectDetailsContainer { +.FillProjectDetails { .header { display: flex; diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index b381e0077..ccaacf5df 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -7,7 +7,7 @@ import Wizard from '../../../components/Wizard' import SelectProjectType from './SelectProjectType' import SelectProjectSubType from './SelectProjectSubType' import IncompleteProjectConfirmation from './IncompleteProjectConfirmation' -import FillProjectDetails from '../containers/FillProjectDetailsContainer' +import FillProjectDetails from './FillProjectDetails' import update from 'react-addons-update' import { LS_INCOMPLETE_PROJECT } from '../../../config/constants' import './ProjectWizard.scss' @@ -171,11 +171,11 @@ class ProjectWizard extends Component { } render() { - const { processing, route, userRoles, createProject } = this.props + const { processing, route, userRoles, createProject, showModal } = this.props const { project, dirtyProject } = this.state return ( this.props.closeModal()} onStepChange={ this.handleStepChange } @@ -234,12 +234,14 @@ class ProjectWizard extends Component { ProjectWizard.propTypes = { userRoles: PropTypes.arrayOf(PropTypes.string).isRequired, - closeModal: PropTypes.func.isRequired + closeModal: PropTypes.func.isRequired, + showModal: PropTypes.boolean } ProjectWizard.defaultProps = { userRoles: [], - closeModal: () => {} + closeModal: () => {}, + showModal: false } ProjectWizard.Steps = { diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index 029c53b13..34f3787ef 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -56,12 +56,12 @@ class CreateConainer extends React.Component { componentWillReceiveProps(nextProps) { const projectId = _.get(nextProps, 'project.id', null) if (!nextProps.processing && !nextProps.error && projectId) { - // close modal (if shown as modal), remove incomplete project, and navigate to project dashboard - // this.props.closeModal() + // update state this.setState({ creatingProject: false, isProjectDirty: false }, () => { + // remove incomplete project, and navigate to project dashboard console.log('removing incomplete project') window.localStorage.removeItem(LS_INCOMPLETE_PROJECT) this.props.router.push('/projects/' + projectId) From ed56e7c365047c12a2ca7f0933d415fa6ab70cfa Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 31 May 2017 12:48:24 +0530 Subject: [PATCH 07/89] =?UTF-8?q?Github=20issue#897,=20Update=20ProjectWiz?= =?UTF-8?q?ard=20component=20to=20be=20rendered=20without=20modal=20?= =?UTF-8?q?=E2=80=94=20Clean=20up=20Github=20issue#898,=20Consolidate=20th?= =?UTF-8?q?e=20two=20steps,=20for=20project=20and=20product=20type=20selec?= =?UTF-8?q?tion,=20to=20one=20step=20=E2=80=94=20Created=20new=20component?= =?UTF-8?q?s=20to=20render=20the=20consolidated=20view=20of=20project=20ty?= =?UTF-8?q?pe=20selection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Wizard/Wizard.jsx | 2 +- src/config/projectQuestions/app_dev.v1.0.js | 75 ++++++++++++++++ src/config/projectQuestions/topcoder.v1.js | 57 ++++++++++++ .../projectQuestions/visual_design.v1.0.js | 9 +- .../projectQuestions/wireframes.v1.0.js | 87 +++++++++++++++++++ .../typeToSpecification.json | 1 + src/config/projectWizard/index.js | 35 ++++++-- src/projects/create/components/ProductCard.js | 53 +++++++++++ .../create/components/ProductCard.scss | 49 +++++++++++ .../create/components/ProjectTypeCard.jsx | 2 +- .../create/components/ProjectWizard.jsx | 70 ++++++--------- .../create/components/SelectProduct.js | 45 ++++++++++ .../create/components/SelectProduct.scss | 45 ++++++++++ .../VisualDesignProjectEstimateSection.jsx | 6 +- 14 files changed, 474 insertions(+), 62 deletions(-) create mode 100644 src/projects/create/components/ProductCard.js create mode 100644 src/projects/create/components/ProductCard.scss create mode 100644 src/projects/create/components/SelectProduct.js create mode 100644 src/projects/create/components/SelectProduct.scss diff --git a/src/components/Wizard/Wizard.jsx b/src/components/Wizard/Wizard.jsx index cd4ea704f..7f13a250f 100644 --- a/src/components/Wizard/Wizard.jsx +++ b/src/components/Wizard/Wizard.jsx @@ -42,7 +42,7 @@ Wizard.proptTypes = { onCancel: PT.node.isRequired, onStepChange: PT.func.isRequired, step: PT.number.isRequired, - showModal: PT.boolean + showModal: PT.bool } export default Wizard diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js index cdb5ac879..a690e3e93 100644 --- a/src/config/projectQuestions/app_dev.v1.0.js +++ b/src/config/projectQuestions/app_dev.v1.0.js @@ -228,3 +228,78 @@ const sections = [ ] export default sections + +export const basicSections = [ + { + id: 'appDefinition', + title: '', + required: true, + description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + subSections: [ + { + id: 'projectName', + required: true, + fieldName: 'name', + description: '', + title: 'Project Name', + type: 'project-name' + }, + { + id: 'questions', + required: true, + hideTitle: true, + title: 'Questions', + description: '', + type: 'questions', + questions: [ + { + icon: 'question', + title: 'Which is your primary device target?', + description: 'Select only the device that you need to develop for. \ + In most cases limiting the scope of your project would result \ + in better final result. Topcoder recommends to always start \ + with the mobile phone view and expand to other devices as your \ + app matures.', + fieldName: 'details.appDefinition.primaryTarget', + type: 'tiled-radio-group', + options: [ + {value: 'phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, + {value: 'tablet', title: 'Tablet', icon: Icons.IconTechOutlineTablet, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, + {value: 'desktop', title: 'Desktop', icon: Icons.IconTechOutlineDesktop, iconOptions: { fill: '#00000'}, desc: 'all OS'}, + {value: 'wearable', title: 'Wearable', icon: Icons.IconTechOutlineWatchApple, iconOptions: { fill: '#00000'}, desc: 'Watch OS, Android Wear'} + ] + }, + { + id: 'projectInfo', + required: true, + fieldName: 'description', + description: 'Brief Description', + title: 'Description', + type: 'textbox' + }, + { + icon: 'question', + title: 'What is the goal of your application? How will people use it?', + description: 'Describe your objectives for creating this application', + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.goal' + }, + { + icon: 'question', + title: 'Who are the users of your application? ', + description: 'Describe the roles and needs of your target users', + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.users' + } + ] + }, + { + id: 'notes', + fieldName: 'details.appDefinition.notes', + title: 'Notes', + description: 'Add any other important information regarding your project (e.g., links to documents or existing applications, budget or timing constraints)', + type: 'notes' + } + ] + } +] \ No newline at end of file diff --git a/src/config/projectQuestions/topcoder.v1.js b/src/config/projectQuestions/topcoder.v1.js index b4a5056f6..7119b84cd 100644 --- a/src/config/projectQuestions/topcoder.v1.js +++ b/src/config/projectQuestions/topcoder.v1.js @@ -202,3 +202,60 @@ const sections = [ ] export default sections + +export const basicSections = [ + { + id: 'appDefinition', + title: '', + required: true, + description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + subSections: [ + { + id: 'projectName', + required: true, + fieldName: 'name', + description: '', + title: 'Project Name', + type: 'project-name' + }, + { + id: 'projectInfo', + required: true, + fieldName: 'description', + description: 'Description', + title: 'Project Info', + type: 'notes' + }, + { + id: 'questions', + required: true, + title: 'Questions', + description: '', + type: 'questions', + questions: [ + { + icon: 'question', + title: 'What is the goal of your application? How will people use it?', + description: 'Describe your objectives for creating this application', + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.goal' + }, + { + icon: 'question', + title: 'Who are the users of your application? ', + description: 'Describe the roles and needs of your target users', + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.users' + } + ] + }, + { + id: 'notes', + fieldName: 'details.appDefinition.notes', + title: 'Notes', + description: 'Add any other important information regarding your project (e.g., links to documents or existing applications, budget or timing constraints)', + type: 'notes' + } + ] + } +] \ No newline at end of file diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index c32aae363..1051e3fa6 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -248,14 +248,7 @@ export default sections export const basicSections = [ { id: 'appDefinition', - title: function(project, showProduct) { - const product = _.get(project, 'details.products[0]') - if (showProduct && product) { - const prd = findProduct(product) - if (prd) return prd - } - return 'Definition' - }, + title: '', required: true, pricePerPage: 1000, description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js index c29e4cbba..7db8e4788 100644 --- a/src/config/projectQuestions/wireframes.v1.0.js +++ b/src/config/projectQuestions/wireframes.v1.0.js @@ -227,3 +227,90 @@ const sections = [ ] export default sections + +export const basicSections = [ + { + id: 'appDefinition', + title: '', + productName: 'Wireframes', + required: true, + description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + subSections: [ + { + id: 'projectName', + required: true, + fieldName: 'name', + description: '', + title: 'Project Name', + type: 'project-name' + }, + { + id: 'questions', + required: true, + hideTitle: true, + title: 'Questions', + description: '', + type: 'questions', + questions: [ + { + icon: 'question', + title: 'How many screens do you need designed?', + description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', + fieldName: 'details.appDefinition.numberScreens', + type: 'tiled-radio-group', + options: [ + {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '7-10 days', price: 5000}, + {value: '15', title: 'screens', icon: NumberText, iconOptions: { number: '15' }, desc: '10-12 days', price: 7000} + ] + }, + { + icon: 'question', + title: 'Which is your primary device target?', + description: 'Select only the device that you need to develop for. \ + In most cases limiting the scope of your project would result \ + in better final result. Topcoder recommends to always start \ + with the mobile phone view and expand to other devices as your \ + app matures.', + fieldName: 'details.appDefinition.primaryTarget', + type: 'tiled-radio-group', + options: [ + {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, + {value: 'Tablet', title: 'Tablet', icon: Icons.IconTechOutlineTablet, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, + {value: 'Desktop', title: 'Desktop', icon: Icons.IconTechOutlineDesktop, iconOptions: { fill: '#00000'}, desc: 'all OS'}, + {value: 'Wearable', title: 'Wearable', icon: Icons.IconTechOutlineWatchApple, iconOptions: { fill: '#00000'}, desc: 'Watch OS, Android Wear'} + ] + }, + { + icon: 'question', + id: 'projectInfo', + fieldName: 'description', + description: 'Brief Description', + title: 'Description', + type: 'textbox' + }, + { + icon: 'question', + title: 'What is the goal of your application? How will people use it?', + description: 'Describe your objectives for creating this application', + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.goal' + }, + { + icon: 'question', + title: 'Who are the users of your application? ', + description: 'Describe the roles and needs of your target users', + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.users' + } + ] + }, + { + id: 'notes', + fieldName: 'details.appDefinition.notes', + title: 'Notes', + description: 'Add any other important information regarding your project (e.g., links to documents or existing applications, budget or timing constraints)', + type: 'notes' + } + ] + } +] \ No newline at end of file diff --git a/src/config/projectSpecification/typeToSpecification.json b/src/config/projectSpecification/typeToSpecification.json index b98ef6c59..1269df54f 100644 --- a/src/config/projectSpecification/typeToSpecification.json +++ b/src/config/projectSpecification/typeToSpecification.json @@ -2,6 +2,7 @@ "wireframes": "wireframes.v1.0", "visual_design_concepts": "avd.v1.0", "visual_design_prod": "avd.v1.0", + "infographic": "avd.v1.0", "generic_design": "topcoder.v1", "visual_prototype": "app_dev.v1.0", "website_development": "app_dev.v1.0", diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index d409cac14..104ea5d8b 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -11,7 +11,7 @@ const products = { icon: 'project-wireframes', id: 'wireframes' }, - 'App Visual Design - Concepts': { + 'Visual Design': { brief: '1-15 screens', details: 'Visualize and test your app requirements and ideas', icon: 'project-app-visual-design', @@ -21,7 +21,14 @@ const products = { brief: '1-15 screens', details: 'Create development-ready designs', icon: 'project-app-visual-design', - id: 'visual_design_prod' + id: 'visual_design_prod', + disabled: true + }, + 'Infographic': { + brief: 'Infographic', + details: 'Present your data in a clean and a fun way', + icon: 'project-app-visual-design', + id: 'infographic' }, 'Other Design': { brief: 'other designs', @@ -37,25 +44,25 @@ const products = { question: 'What do you need to develop?', id: 'app_dev', subtypes: { - Prototype: { + 'Front-end Prototype': { brief: '3-20 screens', details: 'Translate designs to an HTML/CSS/JavaScript prototype', icon: 'project-prototype-demo', id: 'visual_prototype' }, - 'Website Development': { + 'Website': { brief: 'Websites', details: 'Build responsive or regular websites', icon: 'project-prototype-technical', id: 'website_development' }, - 'Application Development': { + 'App': { brief: 'Apps', details: 'Build apps for mobile, web, or wearables', icon: 'project-development-code', id: 'application_development' }, - 'Other Development': { + 'Software Development': { brief: 'Tasks or adhoc', details: 'Get help with any part of your development cycle', icon: 'project-development-ideation', @@ -82,3 +89,19 @@ export function findProduct(product) { } } } + +export function findProductCategory(product) { + if (product === 'generic_dev') { + return 'Development' + } + if (product === 'generic_design') { + return 'Design' + } + for(const pType in products) { + for(const prd in products[pType].subtypes) { + if (products[pType].subtypes[prd].id === product) { + return pType + } + } + } +} diff --git a/src/projects/create/components/ProductCard.js b/src/projects/create/components/ProductCard.js new file mode 100644 index 000000000..67d223e62 --- /dev/null +++ b/src/projects/create/components/ProductCard.js @@ -0,0 +1,53 @@ +import _ from 'lodash' +import React, { PropTypes as PT } from 'react' +import Icons from '../../../components/Icons' +import './ProductCard.scss' + +class ProductCard extends React.Component { + + constructor(props) { + super(props) + this.state = {} + } + + render() { + const p = this.props + const s = this.state + const icon = React.cloneElement(p.icon, { + color: !p.disabled && s.hovered ? '#1A85FF' : '#5D5D66' + }) + + let className = `ProductCard ${p.disabled ? 'disabled' : 'enabled'}` + if (p.selected) className = `${className} selected` + + return ( +
this.setState({ hovered: true })} + onMouseLeave={() => this.setState({ hovered: false })} + > + {icon} +

{p.type}

+
{p.info}
+
Create project
+
+ ) + } +} + +ProductCard.defaultProps = { + disabled: false, + selected: false +} + +ProductCard.propTypes = { + disabled: PT.bool, + icon: PT.element.isRequired, + info: PT.string.isRequired, + onClick: PT.func.isRequired, + selected: PT.bool, + type: PT.string.isRequired +} + +export default ProductCard diff --git a/src/projects/create/components/ProductCard.scss b/src/projects/create/components/ProductCard.scss new file mode 100644 index 000000000..cbd863ade --- /dev/null +++ b/src/projects/create/components/ProductCard.scss @@ -0,0 +1,49 @@ +@import 'tc-includes'; + +.ProductCard { + border: 1px solid $tc-gray-20; + border-radius: 4px; + display: flex; + flex-direction: column; + align-items: center; + height: 255px; + margin: 10px 10px 0; + position: relative; + vertical-align: top; + width: 215px; + .sub-type-details { + margin: 0 20px; + } + .header { + @include tc-body; + @include roboto-bold; + color: $tc-gray-70; + margin-bottom: 0; + margin-top: 0px; + } + .Icon { + margin: 4*$base_unit 0 2*$base_unit; + } + &.disabled { + opacity: 0.3 + } + &.enabled:hover { + border-color: $tc-dark-blue-70; + cursor: pointer; + .button { + background: $tc-dark-blue; + border-color: transparent; + color: $tc-white; + } + } + &.selected { + background: $tc-gray-10; + border-color: transparent; + &:hover { + border-color: transparent; + } + } + .tc-btn { + margin-top: 2 * $base_unit; + } +} diff --git a/src/projects/create/components/ProjectTypeCard.jsx b/src/projects/create/components/ProjectTypeCard.jsx index c059b35d1..219966efe 100644 --- a/src/projects/create/components/ProjectTypeCard.jsx +++ b/src/projects/create/components/ProjectTypeCard.jsx @@ -25,7 +25,7 @@ class ProjectTypeCard extends React.Component { {icon}

{p.type}

{p.info}
-
Create a {p.type.toLowerCase()} project
+
Create project
) } diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index ccaacf5df..b1b463928 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -2,10 +2,11 @@ import _ from 'lodash' import { unflatten } from 'flat' import React, { Component, PropTypes } from 'react' -import config from '../../../config/projectWizard' +import config, { findProductCategory } from '../../../config/projectWizard' import Wizard from '../../../components/Wizard' import SelectProjectType from './SelectProjectType' import SelectProjectSubType from './SelectProjectSubType' +import SelectProduct from './SelectProduct' import IncompleteProjectConfirmation from './IncompleteProjectConfirmation' import FillProjectDetails from './FillProjectDetails' import update from 'react-addons-update' @@ -13,10 +14,10 @@ import { LS_INCOMPLETE_PROJECT } from '../../../config/constants' import './ProjectWizard.scss' const WZ_STEP_INCOMP_PROJ_CONF = 0 -const WZ_STEP_SELECT_PROJ_TYPE = 1 -const WZ_STEP_SELECT_PROD_TYPE = 2 -const WZ_STEP_FILL_PROJ_DETAILS = 3 -const WZ_STEP_ERROR_CREATING_PROJ = 4 +// const WZ_STEP_SELECT_PROJ_TYPE = 1 +const WZ_STEP_SELECT_PROD_TYPE = 1 +const WZ_STEP_FILL_PROJ_DETAILS = 2 +const WZ_STEP_ERROR_CREATING_PROJ = 3 class ProjectWizard extends Component { @@ -24,7 +25,7 @@ class ProjectWizard extends Component { super(props) this.state = { - wizardStep: WZ_STEP_SELECT_PROJ_TYPE, + wizardStep: WZ_STEP_SELECT_PROD_TYPE, project: { details: {} }, dirtyProject: { details: {} }, isProjectDirty: false @@ -55,14 +56,14 @@ class ProjectWizard extends Component { }) } else { // if there is no incomplete project in the local storage, load the wizard with appropriate step - const { type, product } = this.props.params + const { product } = this.props.params const updateQuery = {} - let wizardStep = WZ_STEP_SELECT_PROJ_TYPE - if (type) { - updateQuery['type'] = { $set: type } - wizardStep = WZ_STEP_SELECT_PROD_TYPE - } + let wizardStep = WZ_STEP_SELECT_PROD_TYPE if (product) { + const prodCategory = findProductCategory(product) + if (prodCategory) { + updateQuery['type'] = { $set : config[prodCategory].id } + } updateQuery['details'] = { 'products' : { $set: [product] } } wizardStep = WZ_STEP_FILL_PROJ_DETAILS } @@ -116,7 +117,7 @@ class ProjectWizard extends Component { this.setState({ project: { details: {} }, dirtyProject: { details: {} }, - wizardStep: WZ_STEP_SELECT_PROJ_TYPE + wizardStep: WZ_STEP_SELECT_PROD_TYPE }) } @@ -132,15 +133,19 @@ class ProjectWizard extends Component { }) } - updateProducts(product) { + updateProducts(projectType, product) { const products = _.get(this.state.project, 'details.products') let updateQuery = { details: { products : { $set : [product] }}} if (!products) { updateQuery = { details: { $set : { products : [product] }}} } + if (projectType) { + updateQuery.type = {$set : projectType } + } this.setState({ project: update(this.state.project, updateQuery), - dirtyProject: update(this.state.project, updateQuery) + dirtyProject: update(this.state.project, updateQuery), + wizardStep: WZ_STEP_FILL_PROJ_DETAILS }) } @@ -163,7 +168,7 @@ class ProjectWizard extends Component { // In this wizard we have just two steps, and this callback is triggered // only to move from the second step back to the first, thus we always // should reset the projectSubType when this callback is fired. - project: update(project, { details: { products: {$set : [] }}}), + project: update(this.state.project, { details: { products: {$set : [] }}}), wizardStep }, () => { this.props.onStepChange(wizardStep) @@ -184,33 +189,8 @@ class ProjectWizard extends Component { - this.setState({ - project: update(project, { name: {$set : projectName }}) - })} - onProjectRefChange={ this.updateProjectRef } - onProjectTypeChange={projectType => {this.setState({ - project: update(project, { type: {$set : config[projectType].id }}), - wizardStep: WZ_STEP_SELECT_PROD_TYPE - })}} - projectName={ _.get(project, 'name', '') } - projectRef={ _.get(project, 'details.utm.code', '') } - projectType={ _.get(project, 'type', '') } - projectSubType={ _.get(project, 'details.products[0]', '') } - /> - this.setState({ - wizardStep: WZ_STEP_FILL_PROJ_DETAILS - })} - onProjectNameChange={projectName => this.setState({ - project: update(project, { name: {$set : projectName }}) - })} - onProjectRefChange={ this.updateProjectRef } - onSubCategoryChange={ this.updateProducts } - projectName={ _.get(project, 'name', '') } - projectRef={ _.get(project, 'details.utm.code', '') } - projectType={ _.get(project, 'type', '') } - projectSubType={ _.get(project, 'details.products[0]', '') } + + cards.push( + props.onProductChange(type.id, item.id)} + type={ subType } + /> + ) + } + } + return ( +
+

Select your project type

+
{cards}
+
+ Looking for something else? Get in touch with us. +
+
+ ) +} + +SelectProduct.propTypes = { + onProductChange: PT.func.isRequired +} + +export default SelectProduct diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss new file mode 100644 index 000000000..2aea79365 --- /dev/null +++ b/src/projects/create/components/SelectProduct.scss @@ -0,0 +1,45 @@ +@import 'tc-includes'; + +.SelectProduct { + @include tc-body; + color: $tc-gray-50; + text-align: center; + max-width: 960px; + margin: 0 auto; + a, a:hover { + color: $tc-dark-blue; + cursor: pointer; + } + a:hover { + text-decoration: underline; + } + h1 { + @include tc-heading; + color: $tc-gray-50; + margin-bottom: 20px; + } + .footer { + margin-bottom: 15px; + margin-top: 100px; + } + + .ProductCard { + + .tc-btn { + display: none; + } + } + + .ProductCard:hover { + background: $tc-white; + .tc-btn { + display: block; + } + } + + .cards { + display: flex; + justify-content: space-between; + flex-flow: row wrap; + } +} diff --git a/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx b/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx index 23bb6c8e5..5cd58c545 100644 --- a/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx +++ b/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx @@ -18,10 +18,14 @@ const VisualDesignProjectEstimateSection = ({products, numberScreens}) => { const sectionQuestions = _.find(subSections, (subSection) => subSection.id === 'questions').questions // options provided in the number of screens question - const { options: projectDurationOptions } = _.find( + let projectDurationOptions = [] + const numberScreensQuestion = _.find( sectionQuestions, (question) => question.fieldName === 'details.appDefinition.numberScreens' ) + if (numberScreensQuestion) { + projectDurationOptions = numberScreensQuestion.options + } // selected option const pickedDurationOption = _.find(projectDurationOptions, (option) => option.value === numberScreens) const durationEstimate = pickedDurationOption ? pickedDurationOption.desc : '0 days' From be41c131b72d80d5bf137a6c69f46260afd58b50 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 31 May 2017 16:46:40 +0530 Subject: [PATCH 08/89] =?UTF-8?q?Github=20issue#895,=20Validation=20for=20?= =?UTF-8?q?project=20details=20form=20=E2=80=94=20Added=20validation=20for?= =?UTF-8?q?=20project=20details=20form?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/projectQuestions/app_dev.v1.0.js | 8 ++++++++ src/config/projectQuestions/avd.v1.0.js | 11 +++++++++++ src/config/projectQuestions/visual_design.v1.0.js | 9 +++++++++ src/config/projectQuestions/wireframes.v1.0.js | 11 +++++++++++ .../create/components/ProjectBasicDetailsForm.js | 11 ++++------- src/projects/detail/components/SpecQuestions.jsx | 4 +++- src/projects/detail/components/SpecSection.jsx | 2 ++ 7 files changed, 48 insertions(+), 8 deletions(-) diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js index a690e3e93..ba694378f 100644 --- a/src/config/projectQuestions/app_dev.v1.0.js +++ b/src/config/projectQuestions/app_dev.v1.0.js @@ -239,6 +239,7 @@ export const basicSections = [ { id: 'projectName', required: true, + validationError: 'Please provide a name to your project', fieldName: 'name', description: '', title: 'Project Name', @@ -254,6 +255,8 @@ export const basicSections = [ questions: [ { icon: 'question', + required: true, + validationError: 'Please let us know the target device', title: 'Which is your primary device target?', description: 'Select only the device that you need to develop for. \ In most cases limiting the scope of your project would result \ @@ -272,6 +275,7 @@ export const basicSections = [ { id: 'projectInfo', required: true, + validationError: 'Please provide description', fieldName: 'description', description: 'Brief Description', title: 'Description', @@ -279,6 +283,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know the goal of your application', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', type: 'see-attached-textbox', @@ -286,6 +292,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', type: 'see-attached-textbox', diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js index bbfebf9c1..da01aa46f 100644 --- a/src/config/projectQuestions/avd.v1.0.js +++ b/src/config/projectQuestions/avd.v1.0.js @@ -238,6 +238,7 @@ export const basicSections = [ { id: 'projectName', required: true, + validationError: 'Please provide a name to your project', fieldName: 'name', description: '', title: 'Project Name', @@ -253,6 +254,8 @@ export const basicSections = [ questions: [ { icon: 'question', + required: true, + validationError: 'Please let us know the number of screens required', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', fieldName: 'details.appDefinition.numberScreens', @@ -265,6 +268,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know the target device', title: 'Which is your primary device target?', description: 'Select only the device that you need to develop for. \ In most cases limiting the scope of your project would result \ @@ -282,6 +287,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please provide description', id: 'projectInfo', fieldName: 'description', description: 'Brief Description', @@ -290,6 +297,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know the goal of your application', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', type: 'textbox', @@ -297,6 +306,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', type: 'textbox', diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index 1051e3fa6..38fda7a05 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -256,6 +256,7 @@ export const basicSections = [ { id: 'projectName', required: true, + validationError: 'Please provide a name to your project', fieldName: 'name', description: '', title: 'Project Name', @@ -271,6 +272,8 @@ export const basicSections = [ questions: [ { icon: 'question', + required: true, + validationError: 'Please let us know the number of screens required', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', fieldName: 'details.appDefinition.numberScreens', @@ -284,6 +287,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know the target device', title: 'Which is your primary device target?', description: 'Select only the device that you need to develop for. \ In most cases limiting the scope of your project would result \ @@ -301,6 +306,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please provide description', id: 'projectInfo', fieldName: 'description', description: 'Brief Description', @@ -309,6 +316,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', type: 'see-attached-textbox', diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js index 7db8e4788..4dd7f3918 100644 --- a/src/config/projectQuestions/wireframes.v1.0.js +++ b/src/config/projectQuestions/wireframes.v1.0.js @@ -239,6 +239,7 @@ export const basicSections = [ { id: 'projectName', required: true, + validationError: 'Please provide a name to your project', fieldName: 'name', description: '', title: 'Project Name', @@ -254,6 +255,8 @@ export const basicSections = [ questions: [ { icon: 'question', + required: true, + validationError: 'Please let us know the number of screens required', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', fieldName: 'details.appDefinition.numberScreens', @@ -265,6 +268,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know the target device', title: 'Which is your primary device target?', description: 'Select only the device that you need to develop for. \ In most cases limiting the scope of your project would result \ @@ -282,6 +287,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please provide description', id: 'projectInfo', fieldName: 'description', description: 'Brief Description', @@ -290,6 +297,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know the goal of your application', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', type: 'see-attached-textbox', @@ -297,6 +306,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', type: 'see-attached-textbox', diff --git a/src/projects/create/components/ProjectBasicDetailsForm.js b/src/projects/create/components/ProjectBasicDetailsForm.js index bdd3da81d..4cfeeea22 100644 --- a/src/projects/create/components/ProjectBasicDetailsForm.js +++ b/src/projects/create/components/ProjectBasicDetailsForm.js @@ -71,9 +71,8 @@ class ProjectBasicDetailsForm extends Component { render() { const { isEdittable, sections, submitBtnText } = this.props - const { project } = this.state + const { project, canSubmit } = this.state const renderSection = (section, idx) => { - const anySectionInvalid = _.some(this.props.sections, (s) => s.isInvalid) return (
@@ -84,15 +83,13 @@ class ProjectBasicDetailsForm extends Component { showFeaturesDialog={ () => {} }//dummy resetFeatures={ () => {} }//dummy // TODO we shoudl not update the props (section is coming from props) - validate={(isInvalid) => { - console.log('isInvalid: ' + isInvalid) - section.isInvalid = isInvalid - }} + // further, it is not used for this component as we are not rendering spec screen section here + validate={(isInvalid) => {}}//dummy />
diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx index 6f5d97411..ca18eeb63 100644 --- a/src/projects/detail/components/SpecQuestions.jsx +++ b/src/projects/detail/components/SpecQuestions.jsx @@ -34,7 +34,9 @@ const SpecQuestions = ({questions, project, dirtyProject, resetFeatures, showFea const elemProps = { name: q.fieldName, label: q.label, - value: _.get(project, q.fieldName, '') + value: _.get(project, q.fieldName, ''), + required: q.required, + validationError: q.validationError } if (q.fieldName === 'details.appDefinition.numberScreens') { const p = dirtyProject ? dirtyProject : project diff --git a/src/projects/detail/components/SpecSection.jsx b/src/projects/detail/components/SpecSection.jsx index 314d48dc4..ff1dc8b66 100644 --- a/src/projects/detail/components/SpecSection.jsx +++ b/src/projects/detail/components/SpecSection.jsx @@ -108,6 +108,8 @@ const SpecSection = props => { value={_.get(project, 'name', undefined)} wrapperClass="project-name" maxLength={ PROJECT_NAME_MAX_LENGTH } + required={props.required} + validationError={props.validationError} />
} From 029657353da18799170ca8554503bad6126687a2 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Thu, 1 Jun 2017 11:02:49 +0530 Subject: [PATCH 09/89] Fixed issue with saving incomplete project with new consolidated project type and product selection step. --- src/projects/create/components/ProjectWizard.jsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index b1b463928..ae059663b 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -118,6 +118,8 @@ class ProjectWizard extends Component { project: { details: {} }, dirtyProject: { details: {} }, wizardStep: WZ_STEP_SELECT_PROD_TYPE + }, () => { + this.props.onStepChange(this.state.wizardStep) }) } @@ -146,6 +148,8 @@ class ProjectWizard extends Component { project: update(this.state.project, updateQuery), dirtyProject: update(this.state.project, updateQuery), wizardStep: WZ_STEP_FILL_PROJ_DETAILS + }, () => { + this.props.onStepChange(this.state.wizardStep) }) } From 69fb66c69048b19796258c752b7bab307f7aa299 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Thu, 1 Jun 2017 18:01:36 +0530 Subject: [PATCH 10/89] =?UTF-8?q?Github=20issue#900,=20Render=20ProjectWiz?= =?UTF-8?q?ard=20as=20modal=20for=20logged=20in=20user=20=E2=80=94=20Updat?= =?UTF-8?q?ed=20ProjectWizard=20and=20Wizard=20components=20to=20render=20?= =?UTF-8?q?modal=20controls=20(back=20and=20close=20buttons)=20with=20prop?= =?UTF-8?q?s=20=E2=80=94=20Updated=20TopbarContainer=20to=20render=20Proje?= =?UTF-8?q?ctWizard=20as=20modal=20instead=20of=20redirecting=20user=20to?= =?UTF-8?q?=20/new-project=20route=20when=20user=20is=20logged=20in=20and?= =?UTF-8?q?=20clicking=20on=20the=20New=20Project=20button.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/TopBar/TopBar.jsx | 2 +- src/components/TopBar/TopBarContainer.js | 60 ++++++++++++++++--- src/components/TopBar/TopBarContainer.scss | 53 ++++++++++++++++ src/components/Wizard/Wizard.jsx | 14 +++-- .../create/components/FillProjectDetails.js | 13 ++-- .../components/ProjectBasicDetailsForm.js | 3 +- .../create/components/ProjectWizard.jsx | 27 +++++---- .../create/containers/CreateContainer.jsx | 1 - .../components/Projects/ProjectsView.scss | 45 -------------- 9 files changed, 138 insertions(+), 80 deletions(-) create mode 100644 src/components/TopBar/TopBarContainer.scss diff --git a/src/components/TopBar/TopBar.jsx b/src/components/TopBar/TopBar.jsx index 0ca5f7c00..9712dae30 100644 --- a/src/components/TopBar/TopBar.jsx +++ b/src/components/TopBar/TopBar.jsx @@ -78,7 +78,7 @@ class TopBar extends Component { ) const avatar = (
- {isLoggedIn && !isProjectDetails && + New Project } + {isLoggedIn && !isProjectDetails && + New Project }
diff --git a/src/components/TopBar/TopBarContainer.js b/src/components/TopBar/TopBarContainer.js index 4c81c3060..322100221 100644 --- a/src/components/TopBar/TopBarContainer.js +++ b/src/components/TopBar/TopBarContainer.js @@ -2,8 +2,12 @@ import React, {PropTypes} from 'react' import { connect } from 'react-redux' import _ from 'lodash' import Modal from 'react-modal' +import { createProject as createProjectAction } from '../../projects/actions/project' import { projectSuggestions, loadProjects } from '../../projects/actions/loadProjects' import TopBar from './TopBar' +import CoderBot from '../CoderBot/CoderBot' +import ModalControl from '../ModalControl' +import SVGIconImage from '../SVGIconImage' import ProjectWizard from '../../projects/create/components/ProjectWizard' import { TCEmitter } from '../../helpers' import { @@ -14,6 +18,7 @@ import { ACCOUNTS_APP_LOGIN_URL, ACCOUNTS_APP_REGISTER_URL } from '../../config/constants' +require('./TopBarContainer.scss') class TopBarContainer extends React.Component { @@ -21,7 +26,8 @@ class TopBarContainer extends React.Component { super(props) this.state = { isFilterVisible: false, - isCreatingProject : false + isCreateProjectModalVisible : false, + errorCreatingProject: false } this.RouteChangeListener = null this.applyFilters = this.applyFilters.bind(this) @@ -37,6 +43,21 @@ class TopBarContainer extends React.Component { }) } + componentWillReceiveProps(nextProps) { + // if new project is created successfully + if (this.props.creatingProject && !nextProps.creatingProject) { + if (!nextProps.projectCreationError + && nextProps.project && nextProps.project.id) { + this.hideCreateProjectDialog() + this.context.router.push('/projects/' + nextProps.project.id) + } else { + this.setState({ + errorCreatingProject: true + }) + } + } + } + componentDidUpdate() { const isProjectDetails = /projects\/\d+/.test(this.state.currentPath) const contentDiv = document.getElementById('wrapper-main') @@ -65,13 +86,14 @@ class TopBarContainer extends React.Component { showCreateProjectDialog() { this.setState({ - isCreatingProject : true + isCreateProjectModalVisible : true }) } hideCreateProjectDialog() { this.setState({ - isCreatingProject : false + isCreateProjectModalVisible : false, + errorCreatingProject: false }) } @@ -96,7 +118,8 @@ class TopBarContainer extends React.Component { } render() { - const {isCreatingProject, currentPath, isFilterVisible } = this.state + const {isCreateProjectModalVisible, currentPath, isFilterVisible, errorCreatingProject } = this.state + const { userRoles } = this.props const isProjectDetails = /projects\/\d+/.test(currentPath) const isHomePage = this.context.router.isActive('/', true) // NOTE: hardcoding to connectv2, once connect v1 @@ -104,15 +127,31 @@ class TopBarContainer extends React.Component { const loginUrl = `${ACCOUNTS_APP_LOGIN_URL}?retUrl=${window.location.protocol}//${window.location.host}/` const registerUrl = !isHomePage ? ACCOUNTS_APP_REGISTER_URL : null return ( -
+
- - + } + label="esc" + onClick={ this.hideCreateProjectDialog } + /> + { !errorCreatingProject && + {} } + onProjectUpdate={ () => {} } + userRoles={ userRoles } + /> + } + { errorCreatingProject && } } label="back" - onClick={() => props.onStepChange(props.step - 1)} + onClick={() => onStepChange(step - 1)} /> ) } - if (props.showModal) { + if (showModal) { modalCloseControl = ( } label="esc" - onClick={props.onCancel} + onClick={ onCancel } /> ) } @@ -31,7 +32,7 @@ function Wizard(props) {
{backControl} { modalCloseControl } - {props.children[props.step]} + {props.children[step]}
) @@ -42,7 +43,8 @@ Wizard.proptTypes = { onCancel: PT.node.isRequired, onStepChange: PT.func.isRequired, step: PT.number.isRequired, - showModal: PT.bool + showModal: PT.bool, + shouldRenderBackButton: PT.func } export default Wizard diff --git a/src/projects/create/components/FillProjectDetails.js b/src/projects/create/components/FillProjectDetails.js index 2de671106..73a374c8e 100644 --- a/src/projects/create/components/FillProjectDetails.js +++ b/src/projects/create/components/FillProjectDetails.js @@ -1,6 +1,8 @@ import _ from 'lodash' import React, { PropTypes as PT, Component } from 'react' import Sticky from 'react-stickynode' + +import { Icons } from 'appirio-tech-react-components' import config from '../../../config/projectWizard' import WizardHeader from '../components/WizardHeader' import './FillProjectDetails.scss' @@ -8,6 +10,8 @@ import ProjectBasicDetailsForm from '../components/ProjectBasicDetailsForm' import ProjectOutline from '../components/ProjectOutline' import typeToSpecification from '../../../config/projectSpecification/typeToSpecification' +const { ConnectLogo } = Icons + class FillProjectDetails extends Component { constructor(props) { super(props) @@ -32,7 +36,8 @@ class FillProjectDetails extends Component { } render() { - const { project, dirtyProject, processing, submitBtnText, onProjectNameChange, onProjectRefChange } = this.props + const { project, dirtyProject, processing, submitBtnText, onProjectNameChange, userRoles, + onProjectRefChange } = this.props const product = _.get(project, 'details.products[0]') const projectName = _.get(project, 'name') const projectRef = _.get(project, 'details.utm.code', '') @@ -47,8 +52,9 @@ class FillProjectDetails extends Component { return (
+ { (!userRoles || !userRoles.length) && }

Let's setup your { productName } project

- + { (!userRoles || !userRoles.length) && }
@@ -59,7 +65,6 @@ class FillProjectDetails extends Component { isEdittable={true} submitHandler={this.props.onCreateProject} saving={processing} - route={this.props.route} onProjectChange={this.props.onProjectChange} submitBtnText={ submitBtnText } /> @@ -81,7 +86,7 @@ FillProjectDetails.propTypes = { // onProjectChange: PT.func.isRequired, onCreateProject: PT.func.isRequired, project: PT.object.isRequired, - currentMemberRole: PT.string, + userRoles: PT.arrayOf(PT.string), processing: PT.bool, error: PT.oneOfType([ PT.bool, diff --git a/src/projects/create/components/ProjectBasicDetailsForm.js b/src/projects/create/components/ProjectBasicDetailsForm.js index 4cfeeea22..91dd96f53 100644 --- a/src/projects/create/components/ProjectBasicDetailsForm.js +++ b/src/projects/create/components/ProjectBasicDetailsForm.js @@ -1,5 +1,4 @@ import React, { Component, PropTypes } from 'react' -import { withRouter } from 'react-router' import Modal from 'react-modal' import _ from 'lodash' import update from 'react-addons-update' @@ -121,4 +120,4 @@ ProjectBasicDetailsForm.propTypes = { submitHandler: PropTypes.func.isRequired } -export default withRouter(ProjectBasicDetailsForm) +export default ProjectBasicDetailsForm diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index ae059663b..8147fb500 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -41,7 +41,7 @@ class ProjectWizard extends Component { } componentDidMount() { - const { userRoles, location } = this.props + const { location, params } = this.props // load incomplete project from local storage const incompleteProjectStr = window.localStorage.getItem(LS_INCOMPLETE_PROJECT) if(incompleteProjectStr) { @@ -56,15 +56,14 @@ class ProjectWizard extends Component { }) } else { // if there is no incomplete project in the local storage, load the wizard with appropriate step - const { product } = this.props.params const updateQuery = {} let wizardStep = WZ_STEP_SELECT_PROD_TYPE - if (product) { - const prodCategory = findProductCategory(product) + if (params && params.product) { + const prodCategory = findProductCategory(params.product) if (prodCategory) { updateQuery['type'] = { $set : config[prodCategory].id } } - updateQuery['details'] = { 'products' : { $set: [product] } } + updateQuery['details'] = { 'products' : { $set: [params.product] } } wizardStep = WZ_STEP_FILL_PROJ_DETAILS } this.setState({ @@ -164,7 +163,7 @@ class ProjectWizard extends Component { } handleOnCreateProject() { - this.props.createProject(this.state.dirtyProject) + this.props.createProject({}) } handleStepChange(wizardStep) { @@ -180,7 +179,7 @@ class ProjectWizard extends Component { } render() { - const { processing, route, userRoles, createProject, showModal } = this.props + const { processing, createProject, showModal, userRoles } = this.props const { project, dirtyProject } = this.state return ( this.props.closeModal()} onStepChange={ this.handleStepChange } step={this.state.wizardStep} + shouldRenderBackButton={ (step) => userRoles && userRoles.length && step > 1 } > ) @@ -217,13 +217,16 @@ class ProjectWizard extends Component { } ProjectWizard.propTypes = { - userRoles: PropTypes.arrayOf(PropTypes.string).isRequired, - closeModal: PropTypes.func.isRequired, - showModal: PropTypes.bool + closeModal: PropTypes.func, + showModal: PropTypes.bool, + createProject: PropTypes.func.isRequired, + onStepChange: PropTypes.func.isRequired, + onProjectUpdate: PropTypes.func.isRequired, + processing: PropTypes.bool.isRequired, + userRoles: PropTypes.arrayOf(PropTypes.string) } ProjectWizard.defaultProps = { - userRoles: [], closeModal: () => {}, showModal: false } diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index 34f3787ef..5b812d668 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -73,7 +73,6 @@ class CreateConainer extends React.Component { } componentWillMount() { - console.log('CreateContainer#componentWillMount') const { processing, userRoles, route } = this.props // load incomplete project from local storage const incompleteProjectStr = window.localStorage.getItem(LS_INCOMPLETE_PROJECT) diff --git a/src/projects/list/components/Projects/ProjectsView.scss b/src/projects/list/components/Projects/ProjectsView.scss index b8da8d8f3..8fe82d2ae 100644 --- a/src/projects/list/components/Projects/ProjectsView.scss +++ b/src/projects/list/components/Projects/ProjectsView.scss @@ -85,49 +85,4 @@ color: $tc-gray-50; } -.project-creation-dialog-overlay { - position : fixed; - top : 0; - left : 0; - right : 0; - bottom : 0; - z-index: 21;/* +1 of the z-index of the topbar */ - background-color: $tc-gray-neutral-dark; - overflow-y: scroll; - - section.content { - padding: 1px 0; - } -} - -.project-creation-dialog { - top: 0px; - left: 0px; - - .Wizard .content { - margin: 0 auto; - width: 100%; - min-height: 100vh; - } - .TextInput.project-name, - .TextInput.project-ref-code { - height: 45px; - } -} - -/*.project-creation-dialog-close { - cursor: pointer; - position: fixed; - top: 20px; - right: 20px; - width: 40px; - height: 40px; - text-align: center; - - & .x-mark-icon { - width: 100%; - height: 100%; - } -}*/ - From 241e70dfd9af687a18372834e0c3b5ae29702814 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 2 Jun 2017 11:06:38 +0530 Subject: [PATCH 11/89] Fixed lint errors --- .../ProjectStatusChangeConfirmation.jsx | 2 +- src/components/Wizard/Wizard.jsx | 3 ++- src/config/projectWizard/index.js | 6 +++--- .../create/components/FillProjectDetails.js | 10 ++++------ .../components/IncompleteProjectConfirmation.js | 1 - src/projects/create/components/ProductCard.js | 1 - .../create/components/ProjectBasicDetailsForm.js | 9 +++------ src/projects/create/components/ProjectOutline.js | 4 +--- src/projects/create/components/ProjectWizard.jsx | 15 +++++++-------- src/projects/create/components/SelectProduct.js | 2 -- .../create/components/SelectProjectSubType.jsx | 2 +- .../create/components/SelectProjectType.jsx | 2 +- .../create/containers/CreateContainer.jsx | 6 +++--- .../detail/components/EditProjectForm.jsx | 2 +- 14 files changed, 27 insertions(+), 38 deletions(-) diff --git a/src/components/ProjectStatus/ProjectStatusChangeConfirmation.jsx b/src/components/ProjectStatus/ProjectStatusChangeConfirmation.jsx index 064cbc09a..1daf74ad9 100644 --- a/src/components/ProjectStatus/ProjectStatusChangeConfirmation.jsx +++ b/src/components/ProjectStatus/ProjectStatusChangeConfirmation.jsx @@ -69,7 +69,7 @@ const ProjectStatusChangeConfirmation = ({
diff --git a/src/components/Wizard/Wizard.jsx b/src/components/Wizard/Wizard.jsx index 88c93f9fa..46dfb1671 100644 --- a/src/components/Wizard/Wizard.jsx +++ b/src/components/Wizard/Wizard.jsx @@ -6,7 +6,8 @@ import './Wizard.scss' function Wizard(props) { const { step, shouldRenderBackButton, onStepChange, showModal, onCancel } = props - let backControl, modalCloseControl + let backControl + let modalCloseControl if (step && (!shouldRenderBackButton || shouldRenderBackButton(step))) { backControl = ( {} }//dummy // TODO we shoudl not update the props (section is coming from props) // further, it is not used for this component as we are not rendering spec screen section here - validate={(isInvalid) => {}}//dummy + validate={() => {}}//dummy />
diff --git a/src/projects/create/components/ProjectOutline.js b/src/projects/create/components/ProjectOutline.js index 58735bc31..fe6f088da 100644 --- a/src/projects/create/components/ProjectOutline.js +++ b/src/projects/create/components/ProjectOutline.js @@ -1,9 +1,6 @@ import _ from 'lodash' import React, { PropTypes as PT } from 'react' import config from '../../../config/projectWizard' -import ProjectSubTypeCard from './ProjectSubTypeCard' -import WizardHeader from './WizardHeader' -import SVGIconImage from '../../../components/SVGIconImage' import VisualDesignProjectEstimateSection from '../../detail/components/VisualDesignProjectEstimateSection' import './ProjectOutline.scss' @@ -50,6 +47,7 @@ ProjectOutline.defaultProps = { } ProjectOutline.propTypes = { + project: PT.object.isRequired } export default ProjectOutline diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index 8147fb500..e0982a2ba 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -4,8 +4,6 @@ import React, { Component, PropTypes } from 'react' import config, { findProductCategory } from '../../../config/projectWizard' import Wizard from '../../../components/Wizard' -import SelectProjectType from './SelectProjectType' -import SelectProjectSubType from './SelectProjectSubType' import SelectProduct from './SelectProduct' import IncompleteProjectConfirmation from './IncompleteProjectConfirmation' import FillProjectDetails from './FillProjectDetails' @@ -41,7 +39,7 @@ class ProjectWizard extends Component { } componentDidMount() { - const { location, params } = this.props + const { params } = this.props // load incomplete project from local storage const incompleteProjectStr = window.localStorage.getItem(LS_INCOMPLETE_PROJECT) if(incompleteProjectStr) { @@ -63,7 +61,7 @@ class ProjectWizard extends Component { if (prodCategory) { updateQuery['type'] = { $set : config[prodCategory].id } } - updateQuery['details'] = { 'products' : { $set: [params.product] } } + updateQuery['details'] = { products : { $set: [params.product] } } wizardStep = WZ_STEP_FILL_PROJ_DETAILS } this.setState({ @@ -80,10 +78,10 @@ class ProjectWizard extends Component { componentWillReceiveProps(nextProps) { const type = _.get(nextProps.project, 'type', null) const product = _.get(nextProps.project, 'details.products[0]', null) - let wizardStep = type && product ? WZ_STEP_FILL_PROJ_DETAILS : null + const wizardStep = type && product ? WZ_STEP_FILL_PROJ_DETAILS : null if (wizardStep) { this.setState({ - wizardStep: wizardStep + wizardStep }, () => { this.props.onStepChange(this.state.wizardStep) }) @@ -179,7 +177,7 @@ class ProjectWizard extends Component { } render() { - const { processing, createProject, showModal, userRoles } = this.props + const { processing, showModal, userRoles } = this.props const { project, dirtyProject } = this.state return ( + removeIncompleteProject={ this.removeIncompleteProject } + /> diff --git a/src/projects/create/components/SelectProduct.js b/src/projects/create/components/SelectProduct.js index bb16be8d1..1e967e007 100644 --- a/src/projects/create/components/SelectProduct.js +++ b/src/projects/create/components/SelectProduct.js @@ -1,8 +1,6 @@ import React, { PropTypes as PT } from 'react' import config from '../../../config/projectWizard' -import ProjectTypeCard from './ProjectTypeCard' import ProductCard from './ProductCard' -import WizardHeader from './WizardHeader' import SVGIconImage from '../../../components/SVGIconImage' import './SelectProduct.scss' diff --git a/src/projects/create/components/SelectProjectSubType.jsx b/src/projects/create/components/SelectProjectSubType.jsx index 1596ccc45..c505afa50 100644 --- a/src/projects/create/components/SelectProjectSubType.jsx +++ b/src/projects/create/components/SelectProjectSubType.jsx @@ -2,7 +2,7 @@ import _ from 'lodash' import React, { PropTypes as PT } from 'react' import config from '../../../config/projectWizard' import ProjectSubTypeCard from './ProjectSubTypeCard' -import WizardHeader from './WizardHeader' +// import WizardHeader from './WizardHeader' import SVGIconImage from '../../../components/SVGIconImage' import './SelectProjectSubType.scss' diff --git a/src/projects/create/components/SelectProjectType.jsx b/src/projects/create/components/SelectProjectType.jsx index 21eb88140..9ca8a1507 100644 --- a/src/projects/create/components/SelectProjectType.jsx +++ b/src/projects/create/components/SelectProjectType.jsx @@ -1,7 +1,7 @@ import React, { PropTypes as PT } from 'react' import config from '../../../config/projectWizard' import ProjectTypeCard from './ProjectTypeCard' -import WizardHeader from './WizardHeader' +// import WizardHeader from './WizardHeader' import SVGIconImage from '../../../components/SVGIconImage' import './SelectProjectType.scss' diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index 5b812d668..0d99e2916 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -27,10 +27,10 @@ const spinner = spinnerWhileLoading(props => !props.processing) const enhance = compose(errorHandler, spinner) const CreateView = (props) => { - const { route, error } = props + const { route } = props if (route.path === '/new-project-callback') { // can do some fancy loading (e.g. coderbot animation) here - return
+ return
} return (
@@ -67,7 +67,7 @@ class CreateConainer extends React.Component { this.props.router.push('/projects/' + projectId) }) - } else if (this.state.creatingProject != nextProps.processing) { + } else if (this.state.creatingProject !== nextProps.processing) { this.setState({ creatingProject : nextProps.processing }) } } diff --git a/src/projects/detail/components/EditProjectForm.jsx b/src/projects/detail/components/EditProjectForm.jsx index 70c82eb2e..f9337e5c3 100644 --- a/src/projects/detail/components/EditProjectForm.jsx +++ b/src/projects/detail/components/EditProjectForm.jsx @@ -222,7 +222,7 @@ class EditProjectForm extends Component { > {sections.map(renderSection)} Date: Fri, 2 Jun 2017 16:46:30 +0530 Subject: [PATCH 12/89] Removed debugging changes Updated travis config to deploy the deep links branch to dev env. --- .travis.yml | 2 +- src/projects/create/components/ProjectWizard.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e141c7c9c..5235b55e0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ deploy: skip_cleanup: true local_dir: dist on: - branch: dev + branch: [ "dev", "feature/deep-links"] - provider: s3 cache_control: private, no-store, no-cache, must-revalidate, max-age=0 detect_encoding: true diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index e0982a2ba..4649f3b48 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -161,7 +161,7 @@ class ProjectWizard extends Component { } handleOnCreateProject() { - this.props.createProject({}) + this.props.createProject(this.state.dirtyProject) } handleStepChange(wizardStep) { From 9b932b7adbce5e3735e01ed45fe1cac111e6b8e5 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 2 Jun 2017 17:30:14 +0530 Subject: [PATCH 13/89] =?UTF-8?q?Github=20issue#894,=20Fix=20project=20ser?= =?UTF-8?q?vice=20to=20get=20new=20projects=20(with=20details=20JSON)=20in?= =?UTF-8?q?=20ES=20cluster=20=E2=80=94=20It=20seems=20ES=20does=20not=20al?= =?UTF-8?q?low=20indexing=20same=20field=20with=20two=20different=20types.?= =?UTF-8?q?=20Since=20we=20made=20number=20of=20screens=20and=20primary=20?= =?UTF-8?q?target=20questions=20non=20skippable=20in=20specification=20tab?= =?UTF-8?q?,=20it=20started=20to=20fail=20updating=20the=20project=20updat?= =?UTF-8?q?e=20in=20ES=20cluster=20because=20of=20that=20reason.=20When=20?= =?UTF-8?q?these=20were=20skippable=20questions,=20the=20value=20of=20corr?= =?UTF-8?q?esponding=20fields=20was=20an=20object=20and=20since=20we=20mad?= =?UTF-8?q?e=20it=20compulsory=20field,=20it=20started=20to=20save=20a=20p?= =?UTF-8?q?rimitive=20value=20in=20it=20which=20is=20causing=20ES=20cluste?= =?UTF-8?q?r=20to=20fail=20in=20indexing=20the=20updates.=20The=20same=20e?= =?UTF-8?q?rror=20is=20causing=20troubles=20with=20indexing=20the=20projec?= =?UTF-8?q?t=20on=20creation=20because=20now=20with=20new=20flow=20we=20ar?= =?UTF-8?q?e=20setting=20the=20values=20for=20these=20two=20fields=20(alon?= =?UTF-8?q?g=20with=20goal=20and=20users=20questions)=20as=20concrete/prim?= =?UTF-8?q?itive=20value=20instead=20of=20an=20object.=20This=20was=20prev?= =?UTF-8?q?enting=20the=20new=20challenges=20from=20listing=20on=20project?= =?UTF-8?q?s=20page.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ProjectType/ProjectType.jsx | 6 +++--- src/components/TopBar/TopBarContainer.js | 3 ++- src/config/projectQuestions/app_dev.v1.0.js | 10 +++++----- src/config/projectQuestions/avd.v1.0.js | 8 ++++---- src/config/projectQuestions/topcoder.v1.js | 8 ++++---- src/config/projectQuestions/visual_design.v1.0.js | 8 ++++---- src/config/projectQuestions/wireframes.v1.0.js | 12 ++++++------ src/projects/detail/components/SpecScreens.jsx | 6 ++++-- 8 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/components/ProjectType/ProjectType.jsx b/src/components/ProjectType/ProjectType.jsx index fc2db0bb8..109bf288e 100644 --- a/src/components/ProjectType/ProjectType.jsx +++ b/src/components/ProjectType/ProjectType.jsx @@ -40,10 +40,10 @@ const ProjectType = ({projectId, type, description, devices}) => (
Work Project
} {type !== 'generic' &&
- {devices.slice(0, 3).map((device) => deviceMap[device])} + {devices.slice(0, 3).map((device) => deviceMap[device ? device.toLowerCase() : ''])}
} {type !== 'generic' && devices.length > 3 &&
- {devices.slice(3).map((device) => deviceMap[device])} + {devices.slice(3).map((device) => deviceMap[device ? device.toLowerCase() : ''])}
}
@@ -52,7 +52,7 @@ const ProjectType = ({projectId, type, description, devices}) => ( ProjectType.propTypes = { type: PropTypes.string.isRequired, - devices: PropTypes.arrayOf(PropTypes.oneOf(['generic', 'phone', 'tablet', 'desktop', 'apple-watch', 'android-watch'])).isRequired + devices: PropTypes.arrayOf(PropTypes.oneOf(['generic', 'phone', 'tablet', 'desktop', 'apple-watch', 'android-watch', 'wearable'])).isRequired } ProjectType.defaultProps = { diff --git a/src/components/TopBar/TopBarContainer.js b/src/components/TopBar/TopBarContainer.js index 322100221..b09ee0704 100644 --- a/src/components/TopBar/TopBarContainer.js +++ b/src/components/TopBar/TopBarContainer.js @@ -44,8 +44,9 @@ class TopBarContainer extends React.Component { } componentWillReceiveProps(nextProps) { + const { isCreateProjectModalVisible } = this.state // if new project is created successfully - if (this.props.creatingProject && !nextProps.creatingProject) { + if (this.props.creatingProject && !nextProps.creatingProject && isCreateProjectModalVisible) { if (!nextProps.projectCreationError && nextProps.project && nextProps.project.id) { this.hideCreateProjectDialog() diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js index ba694378f..fb9e8a76d 100644 --- a/src/config/projectQuestions/app_dev.v1.0.js +++ b/src/config/projectQuestions/app_dev.v1.0.js @@ -263,7 +263,7 @@ export const basicSections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget', + fieldName: 'details.appDefinition.primaryTarget.value', type: 'tiled-radio-group', options: [ {value: 'phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, @@ -287,8 +287,8 @@ export const basicSections = [ validationError: 'Please let us know the goal of your application', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.goal' + type: 'textbox', + fieldName: 'details.appDefinition.goal.value' }, { icon: 'question', @@ -296,8 +296,8 @@ export const basicSections = [ validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.users' + type: 'textbox', + fieldName: 'details.appDefinition.users.value' } ] }, diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js index da01aa46f..cd9072642 100644 --- a/src/config/projectQuestions/avd.v1.0.js +++ b/src/config/projectQuestions/avd.v1.0.js @@ -258,7 +258,7 @@ export const basicSections = [ validationError: 'Please let us know the number of screens required', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens', + fieldName: 'details.appDefinition.numberScreens.value', type: 'tiled-radio-group', options: [ {value: '1-3', title: 'screens', icon: NumberText, iconOptions: { number: '1-3' }, desc: '5-7 days', price: 5000}, @@ -276,7 +276,7 @@ export const basicSections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget', + fieldName: 'details.appDefinition.primaryTarget.value', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, @@ -302,7 +302,7 @@ export const basicSections = [ title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', type: 'textbox', - fieldName: 'details.appDefinition.goal' + fieldName: 'details.appDefinition.goal.value' }, { icon: 'question', @@ -311,7 +311,7 @@ export const basicSections = [ title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', type: 'textbox', - fieldName: 'details.appDefinition.users' + fieldName: 'details.appDefinition.users.value' } ] }, diff --git a/src/config/projectQuestions/topcoder.v1.js b/src/config/projectQuestions/topcoder.v1.js index 7119b84cd..7d87db987 100644 --- a/src/config/projectQuestions/topcoder.v1.js +++ b/src/config/projectQuestions/topcoder.v1.js @@ -237,15 +237,15 @@ export const basicSections = [ icon: 'question', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.goal' + type: 'textbox', + fieldName: 'details.appDefinition.goal.value' }, { icon: 'question', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.users' + type: 'textbox', + fieldName: 'details.appDefinition.users.value' } ] }, diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index 38fda7a05..150e74030 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -276,7 +276,7 @@ export const basicSections = [ validationError: 'Please let us know the number of screens required', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens', + fieldName: 'details.appDefinition.numberScreens.value', type: 'tiled-radio-group', options: [ {value: '1', title: 'screens', icon: NumberText, iconOptions: { number: '1' }, desc: '3-5 days'}, @@ -295,7 +295,7 @@ export const basicSections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget', + fieldName: 'details.appDefinition.primaryTarget.value', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, @@ -320,8 +320,8 @@ export const basicSections = [ validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.users' + type: 'textbox', + fieldName: 'details.appDefinition.users.value' } ] }, diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js index 4dd7f3918..1932c339f 100644 --- a/src/config/projectQuestions/wireframes.v1.0.js +++ b/src/config/projectQuestions/wireframes.v1.0.js @@ -259,7 +259,7 @@ export const basicSections = [ validationError: 'Please let us know the number of screens required', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens', + fieldName: 'details.appDefinition.numberScreens.value', type: 'tiled-radio-group', options: [ {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '7-10 days', price: 5000}, @@ -276,7 +276,7 @@ export const basicSections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget', + fieldName: 'details.appDefinition.primaryTarget.value', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, @@ -301,8 +301,8 @@ export const basicSections = [ validationError: 'Please let us know the goal of your application', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.goal' + type: 'textbox', + fieldName: 'details.appDefinition.goal.value' }, { icon: 'question', @@ -310,8 +310,8 @@ export const basicSections = [ validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.users' + type: 'textbox', + fieldName: 'details.appDefinition.users.value' } ] }, diff --git a/src/projects/detail/components/SpecScreens.jsx b/src/projects/detail/components/SpecScreens.jsx index 9203be4f7..cc3f91604 100644 --- a/src/projects/detail/components/SpecScreens.jsx +++ b/src/projects/detail/components/SpecScreens.jsx @@ -55,8 +55,10 @@ class SpecScreens extends Component { render() { const { screens } = this.state - const { appDefinition } = this.props.project.details - const numberScreensSelected = parseInt(_.last(_.get(appDefinition, 'numberScreens', '0').split('-'))) + const { project } = this.props + const numberOfScreens = _.get(project, 'details.appDefinition.numberScreens', '0') + let numberOfScreensValue = numberOfScreens.value ? numberOfScreens.value : numberOfScreens + const numberScreensSelected = parseInt(_.last(numberOfScreensValue.split('-'))) const renderCurrentScreen = (screen, index) => { return ( From b59dc5705bb1a749858af80702ccb7ffc9f52911 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 2 Jun 2017 17:33:33 +0530 Subject: [PATCH 14/89] =?UTF-8?q?Github=20issue#894,=20Fix=20project=20ser?= =?UTF-8?q?vice=20to=20get=20new=20projects=20(with=20details=20JSON)=20in?= =?UTF-8?q?=20ES=20cluster=20=E2=80=94=20Fixing=20the=20issue=20with=20upd?= =?UTF-8?q?ating=20ES=20cluster=20with=20updates=20when=20number=20of=20sc?= =?UTF-8?q?reens=20or=20primary=20target=20questions=20are=20updated.=20Th?= =?UTF-8?q?ey=20are=20not=20being=20updated=20in=20ES=20cluster=20since=20?= =?UTF-8?q?we=20made=20them=20compulsory=20(non=20skippable)=20questions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/projectQuestions/app_dev.v1.0.js | 2 +- src/config/projectQuestions/avd.v1.0.js | 4 ++-- src/config/projectQuestions/visual_design.v1.0.js | 4 ++-- src/config/projectQuestions/wireframes.v1.0.js | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js index fb9e8a76d..0fd82c833 100644 --- a/src/config/projectQuestions/app_dev.v1.0.js +++ b/src/config/projectQuestions/app_dev.v1.0.js @@ -51,7 +51,7 @@ const sections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget', + fieldName: 'details.appDefinition.primaryTarget.value', type: 'tiled-radio-group', options: [ {value: 'phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js index cd9072642..717fd20e3 100644 --- a/src/config/projectQuestions/avd.v1.0.js +++ b/src/config/projectQuestions/avd.v1.0.js @@ -49,7 +49,7 @@ const sections = [ icon: 'question', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens', + fieldName: 'details.appDefinition.numberScreens.value', type: 'tiled-radio-group', options: [ {value: '1-3', title: 'screens', icon: NumberText, iconOptions: { number: '1-3' }, desc: '5-7 days', price: 5000}, @@ -65,7 +65,7 @@ const sections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget', + fieldName: 'details.appDefinition.primaryTarget.value', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index 150e74030..60c7fb5bc 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -50,7 +50,7 @@ const sections = [ icon: 'question', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens', + fieldName: 'details.appDefinition.numberScreens.value', type: 'tiled-radio-group', options: [ {value: '1', title: 'screens', icon: NumberText, iconOptions: { number: '1' }, desc: '3-5 days'}, @@ -67,7 +67,7 @@ const sections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget', + fieldName: 'details.appDefinition.primaryTarget.value', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js index 1932c339f..80418cfca 100644 --- a/src/config/projectQuestions/wireframes.v1.0.js +++ b/src/config/projectQuestions/wireframes.v1.0.js @@ -50,7 +50,7 @@ const sections = [ icon: 'question', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens', + fieldName: 'details.appDefinition.numberScreens.value', type: 'tiled-radio-group', options: [ {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '7-10 days', price: 5000}, @@ -65,7 +65,7 @@ const sections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget', + fieldName: 'details.appDefinition.primaryTarget.value', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, From 72f0f9e27771f16e5b10b49d6cde0d39abe4b109 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 2 Jun 2017 17:42:42 +0530 Subject: [PATCH 15/89] Fixed lint error --- src/projects/detail/components/SpecScreens.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/detail/components/SpecScreens.jsx b/src/projects/detail/components/SpecScreens.jsx index cc3f91604..fbc8f5d90 100644 --- a/src/projects/detail/components/SpecScreens.jsx +++ b/src/projects/detail/components/SpecScreens.jsx @@ -57,7 +57,7 @@ class SpecScreens extends Component { const { screens } = this.state const { project } = this.props const numberOfScreens = _.get(project, 'details.appDefinition.numberScreens', '0') - let numberOfScreensValue = numberOfScreens.value ? numberOfScreens.value : numberOfScreens + const numberOfScreensValue = numberOfScreens.value ? numberOfScreens.value : numberOfScreens const numberScreensSelected = parseInt(_.last(numberOfScreensValue.split('-'))) const renderCurrentScreen = (screen, index) => { From 65aedd1c12b9b5cffed377cd13f9601f772e38d0 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 5 Jun 2017 11:31:11 +0530 Subject: [PATCH 16/89] Revert "Fixed lint error" This reverts commit 72f0f9e27771f16e5b10b49d6cde0d39abe4b109. --- src/projects/detail/components/SpecScreens.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/detail/components/SpecScreens.jsx b/src/projects/detail/components/SpecScreens.jsx index fbc8f5d90..cc3f91604 100644 --- a/src/projects/detail/components/SpecScreens.jsx +++ b/src/projects/detail/components/SpecScreens.jsx @@ -57,7 +57,7 @@ class SpecScreens extends Component { const { screens } = this.state const { project } = this.props const numberOfScreens = _.get(project, 'details.appDefinition.numberScreens', '0') - const numberOfScreensValue = numberOfScreens.value ? numberOfScreens.value : numberOfScreens + let numberOfScreensValue = numberOfScreens.value ? numberOfScreens.value : numberOfScreens const numberScreensSelected = parseInt(_.last(numberOfScreensValue.split('-'))) const renderCurrentScreen = (screen, index) => { From dd26af55eb9b8f482e9c8b1b2eb28c0f9f120c43 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 5 Jun 2017 11:31:21 +0530 Subject: [PATCH 17/89] Revert "Github issue#894, Fix project service to get new projects (with details JSON) in ES cluster" This reverts commit b59dc5705bb1a749858af80702ccb7ffc9f52911. --- src/config/projectQuestions/app_dev.v1.0.js | 2 +- src/config/projectQuestions/avd.v1.0.js | 4 ++-- src/config/projectQuestions/visual_design.v1.0.js | 4 ++-- src/config/projectQuestions/wireframes.v1.0.js | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js index 0fd82c833..fb9e8a76d 100644 --- a/src/config/projectQuestions/app_dev.v1.0.js +++ b/src/config/projectQuestions/app_dev.v1.0.js @@ -51,7 +51,7 @@ const sections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget.value', + fieldName: 'details.appDefinition.primaryTarget', type: 'tiled-radio-group', options: [ {value: 'phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js index 717fd20e3..cd9072642 100644 --- a/src/config/projectQuestions/avd.v1.0.js +++ b/src/config/projectQuestions/avd.v1.0.js @@ -49,7 +49,7 @@ const sections = [ icon: 'question', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens.value', + fieldName: 'details.appDefinition.numberScreens', type: 'tiled-radio-group', options: [ {value: '1-3', title: 'screens', icon: NumberText, iconOptions: { number: '1-3' }, desc: '5-7 days', price: 5000}, @@ -65,7 +65,7 @@ const sections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget.value', + fieldName: 'details.appDefinition.primaryTarget', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index 60c7fb5bc..150e74030 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -50,7 +50,7 @@ const sections = [ icon: 'question', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens.value', + fieldName: 'details.appDefinition.numberScreens', type: 'tiled-radio-group', options: [ {value: '1', title: 'screens', icon: NumberText, iconOptions: { number: '1' }, desc: '3-5 days'}, @@ -67,7 +67,7 @@ const sections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget.value', + fieldName: 'details.appDefinition.primaryTarget', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js index 80418cfca..1932c339f 100644 --- a/src/config/projectQuestions/wireframes.v1.0.js +++ b/src/config/projectQuestions/wireframes.v1.0.js @@ -50,7 +50,7 @@ const sections = [ icon: 'question', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens.value', + fieldName: 'details.appDefinition.numberScreens', type: 'tiled-radio-group', options: [ {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '7-10 days', price: 5000}, @@ -65,7 +65,7 @@ const sections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget.value', + fieldName: 'details.appDefinition.primaryTarget', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, From b546da90ca15526dc4ebdb70287ec3057e37932e Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 5 Jun 2017 11:31:30 +0530 Subject: [PATCH 18/89] Revert "Github issue#894, Fix project service to get new projects (with details JSON) in ES cluster" This reverts commit 9b932b7adbce5e3735e01ed45fe1cac111e6b8e5. --- src/components/ProjectType/ProjectType.jsx | 6 +++--- src/components/TopBar/TopBarContainer.js | 3 +-- src/config/projectQuestions/app_dev.v1.0.js | 10 +++++----- src/config/projectQuestions/avd.v1.0.js | 8 ++++---- src/config/projectQuestions/topcoder.v1.js | 8 ++++---- src/config/projectQuestions/visual_design.v1.0.js | 8 ++++---- src/config/projectQuestions/wireframes.v1.0.js | 12 ++++++------ src/projects/detail/components/SpecScreens.jsx | 6 ++---- 8 files changed, 29 insertions(+), 32 deletions(-) diff --git a/src/components/ProjectType/ProjectType.jsx b/src/components/ProjectType/ProjectType.jsx index 109bf288e..fc2db0bb8 100644 --- a/src/components/ProjectType/ProjectType.jsx +++ b/src/components/ProjectType/ProjectType.jsx @@ -40,10 +40,10 @@ const ProjectType = ({projectId, type, description, devices}) => (
Work Project
} {type !== 'generic' &&
- {devices.slice(0, 3).map((device) => deviceMap[device ? device.toLowerCase() : ''])} + {devices.slice(0, 3).map((device) => deviceMap[device])}
} {type !== 'generic' && devices.length > 3 &&
- {devices.slice(3).map((device) => deviceMap[device ? device.toLowerCase() : ''])} + {devices.slice(3).map((device) => deviceMap[device])}
}
@@ -52,7 +52,7 @@ const ProjectType = ({projectId, type, description, devices}) => ( ProjectType.propTypes = { type: PropTypes.string.isRequired, - devices: PropTypes.arrayOf(PropTypes.oneOf(['generic', 'phone', 'tablet', 'desktop', 'apple-watch', 'android-watch', 'wearable'])).isRequired + devices: PropTypes.arrayOf(PropTypes.oneOf(['generic', 'phone', 'tablet', 'desktop', 'apple-watch', 'android-watch'])).isRequired } ProjectType.defaultProps = { diff --git a/src/components/TopBar/TopBarContainer.js b/src/components/TopBar/TopBarContainer.js index b09ee0704..322100221 100644 --- a/src/components/TopBar/TopBarContainer.js +++ b/src/components/TopBar/TopBarContainer.js @@ -44,9 +44,8 @@ class TopBarContainer extends React.Component { } componentWillReceiveProps(nextProps) { - const { isCreateProjectModalVisible } = this.state // if new project is created successfully - if (this.props.creatingProject && !nextProps.creatingProject && isCreateProjectModalVisible) { + if (this.props.creatingProject && !nextProps.creatingProject) { if (!nextProps.projectCreationError && nextProps.project && nextProps.project.id) { this.hideCreateProjectDialog() diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js index fb9e8a76d..ba694378f 100644 --- a/src/config/projectQuestions/app_dev.v1.0.js +++ b/src/config/projectQuestions/app_dev.v1.0.js @@ -263,7 +263,7 @@ export const basicSections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget.value', + fieldName: 'details.appDefinition.primaryTarget', type: 'tiled-radio-group', options: [ {value: 'phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, @@ -287,8 +287,8 @@ export const basicSections = [ validationError: 'Please let us know the goal of your application', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', - type: 'textbox', - fieldName: 'details.appDefinition.goal.value' + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.goal' }, { icon: 'question', @@ -296,8 +296,8 @@ export const basicSections = [ validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'textbox', - fieldName: 'details.appDefinition.users.value' + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.users' } ] }, diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js index cd9072642..da01aa46f 100644 --- a/src/config/projectQuestions/avd.v1.0.js +++ b/src/config/projectQuestions/avd.v1.0.js @@ -258,7 +258,7 @@ export const basicSections = [ validationError: 'Please let us know the number of screens required', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens.value', + fieldName: 'details.appDefinition.numberScreens', type: 'tiled-radio-group', options: [ {value: '1-3', title: 'screens', icon: NumberText, iconOptions: { number: '1-3' }, desc: '5-7 days', price: 5000}, @@ -276,7 +276,7 @@ export const basicSections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget.value', + fieldName: 'details.appDefinition.primaryTarget', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, @@ -302,7 +302,7 @@ export const basicSections = [ title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', type: 'textbox', - fieldName: 'details.appDefinition.goal.value' + fieldName: 'details.appDefinition.goal' }, { icon: 'question', @@ -311,7 +311,7 @@ export const basicSections = [ title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', type: 'textbox', - fieldName: 'details.appDefinition.users.value' + fieldName: 'details.appDefinition.users' } ] }, diff --git a/src/config/projectQuestions/topcoder.v1.js b/src/config/projectQuestions/topcoder.v1.js index 7d87db987..7119b84cd 100644 --- a/src/config/projectQuestions/topcoder.v1.js +++ b/src/config/projectQuestions/topcoder.v1.js @@ -237,15 +237,15 @@ export const basicSections = [ icon: 'question', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', - type: 'textbox', - fieldName: 'details.appDefinition.goal.value' + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.goal' }, { icon: 'question', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'textbox', - fieldName: 'details.appDefinition.users.value' + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.users' } ] }, diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index 150e74030..38fda7a05 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -276,7 +276,7 @@ export const basicSections = [ validationError: 'Please let us know the number of screens required', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens.value', + fieldName: 'details.appDefinition.numberScreens', type: 'tiled-radio-group', options: [ {value: '1', title: 'screens', icon: NumberText, iconOptions: { number: '1' }, desc: '3-5 days'}, @@ -295,7 +295,7 @@ export const basicSections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget.value', + fieldName: 'details.appDefinition.primaryTarget', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, @@ -320,8 +320,8 @@ export const basicSections = [ validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'textbox', - fieldName: 'details.appDefinition.users.value' + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.users' } ] }, diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js index 1932c339f..4dd7f3918 100644 --- a/src/config/projectQuestions/wireframes.v1.0.js +++ b/src/config/projectQuestions/wireframes.v1.0.js @@ -259,7 +259,7 @@ export const basicSections = [ validationError: 'Please let us know the number of screens required', title: 'How many screens do you need designed?', description: 'This is the most popular project size that can get a medium-sized app designed in a breeze', - fieldName: 'details.appDefinition.numberScreens.value', + fieldName: 'details.appDefinition.numberScreens', type: 'tiled-radio-group', options: [ {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '7-10 days', price: 5000}, @@ -276,7 +276,7 @@ export const basicSections = [ in better final result. Topcoder recommends to always start \ with the mobile phone view and expand to other devices as your \ app matures.', - fieldName: 'details.appDefinition.primaryTarget.value', + fieldName: 'details.appDefinition.primaryTarget', type: 'tiled-radio-group', options: [ {value: 'Phone', title: 'Phone', icon: Icons.IconTechOutlineMobile, iconOptions: { fill: '#00000'}, desc: 'iOS, Android, Hybrid'}, @@ -301,8 +301,8 @@ export const basicSections = [ validationError: 'Please let us know the goal of your application', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', - type: 'textbox', - fieldName: 'details.appDefinition.goal.value' + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.goal' }, { icon: 'question', @@ -310,8 +310,8 @@ export const basicSections = [ validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'textbox', - fieldName: 'details.appDefinition.users.value' + type: 'see-attached-textbox', + fieldName: 'details.appDefinition.users' } ] }, diff --git a/src/projects/detail/components/SpecScreens.jsx b/src/projects/detail/components/SpecScreens.jsx index cc3f91604..9203be4f7 100644 --- a/src/projects/detail/components/SpecScreens.jsx +++ b/src/projects/detail/components/SpecScreens.jsx @@ -55,10 +55,8 @@ class SpecScreens extends Component { render() { const { screens } = this.state - const { project } = this.props - const numberOfScreens = _.get(project, 'details.appDefinition.numberScreens', '0') - let numberOfScreensValue = numberOfScreens.value ? numberOfScreens.value : numberOfScreens - const numberScreensSelected = parseInt(_.last(numberOfScreensValue.split('-'))) + const { appDefinition } = this.props.project.details + const numberScreensSelected = parseInt(_.last(_.get(appDefinition, 'numberScreens', '0').split('-'))) const renderCurrentScreen = (screen, index) => { return ( From 19f76180c5b8df99a5ed2fe819e34070c9466af3 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 5 Jun 2017 16:12:14 +0530 Subject: [PATCH 19/89] =?UTF-8?q?Github=20issue#894,=20Fix=20project=20ser?= =?UTF-8?q?vice=20to=20get=20new=20projects=20(with=20details=20JSON)=20in?= =?UTF-8?q?=20ES=20cluster=20=E2=80=94=20After=20reverting=20previous=20ch?= =?UTF-8?q?anges=20for=20fixing=20the=20same=20issue,=20fixed=20the=20dev?= =?UTF-8?q?=20data=20instead=20and=20now=20making=20the=20only=20required?= =?UTF-8?q?=20changes=20for=20new=20projects.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/projectQuestions/app_dev.v1.0.js | 8 ++++---- src/config/projectQuestions/avd.v1.0.js | 4 ++-- src/config/projectQuestions/topcoder.v1.js | 8 ++++---- src/config/projectQuestions/visual_design.v1.0.js | 4 ++-- src/config/projectQuestions/wireframes.v1.0.js | 8 ++++---- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js index ba694378f..ce00e35c3 100644 --- a/src/config/projectQuestions/app_dev.v1.0.js +++ b/src/config/projectQuestions/app_dev.v1.0.js @@ -287,8 +287,8 @@ export const basicSections = [ validationError: 'Please let us know the goal of your application', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.goal' + type: 'textbox', + fieldName: 'details.appDefinition.goal.value' }, { icon: 'question', @@ -296,8 +296,8 @@ export const basicSections = [ validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.users' + type: 'textbox', + fieldName: 'details.appDefinition.users.value' } ] }, diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js index da01aa46f..d782c5f92 100644 --- a/src/config/projectQuestions/avd.v1.0.js +++ b/src/config/projectQuestions/avd.v1.0.js @@ -302,7 +302,7 @@ export const basicSections = [ title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', type: 'textbox', - fieldName: 'details.appDefinition.goal' + fieldName: 'details.appDefinition.goal.value' }, { icon: 'question', @@ -311,7 +311,7 @@ export const basicSections = [ title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', type: 'textbox', - fieldName: 'details.appDefinition.users' + fieldName: 'details.appDefinition.users.value' } ] }, diff --git a/src/config/projectQuestions/topcoder.v1.js b/src/config/projectQuestions/topcoder.v1.js index 7119b84cd..7d87db987 100644 --- a/src/config/projectQuestions/topcoder.v1.js +++ b/src/config/projectQuestions/topcoder.v1.js @@ -237,15 +237,15 @@ export const basicSections = [ icon: 'question', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.goal' + type: 'textbox', + fieldName: 'details.appDefinition.goal.value' }, { icon: 'question', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.users' + type: 'textbox', + fieldName: 'details.appDefinition.users.value' } ] }, diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index 38fda7a05..b1e76d41b 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -320,8 +320,8 @@ export const basicSections = [ validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.users' + type: 'textbox', + fieldName: 'details.appDefinition.users.value' } ] }, diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js index 4dd7f3918..be0bdd7b5 100644 --- a/src/config/projectQuestions/wireframes.v1.0.js +++ b/src/config/projectQuestions/wireframes.v1.0.js @@ -301,8 +301,8 @@ export const basicSections = [ validationError: 'Please let us know the goal of your application', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.goal' + type: 'textbox', + fieldName: 'details.appDefinition.goal.value' }, { icon: 'question', @@ -310,8 +310,8 @@ export const basicSections = [ validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', - type: 'see-attached-textbox', - fieldName: 'details.appDefinition.users' + type: 'textbox', + fieldName: 'details.appDefinition.users.value' } ] }, From f05454a2a14ab12c4f404e90fd614127fba6b145 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 5 Jun 2017 16:38:03 +0530 Subject: [PATCH 20/89] Fixed style of project name and ref code text boxes --- .../detail/containers/Specification.scss | 59 ++++++++++++++++--- 1 file changed, 50 insertions(+), 9 deletions(-) diff --git a/src/projects/detail/containers/Specification.scss b/src/projects/detail/containers/Specification.scss index f67a433ea..ea439cb57 100644 --- a/src/projects/detail/containers/Specification.scss +++ b/src/projects/detail/containers/Specification.scss @@ -810,6 +810,56 @@ $title-color: $tc-gray-80; flex: 1; } + /* TODO extract following text box styles as separate theme for TextInput component in react-components repo*/ + .project-name input, + .project-refcode input{ + @include roboto; + border: none; + border-bottom: 1px dashed $tc-gray-20; + border-radius: 0; + box-shadow: none; + -ms-overflow-style: none; + font-size: $base-unit*3; + line-height: $base-unit*4; + &.empty { + background: $tc-gray-neutral-light; + border-bottom: 1px solid $tc-gray-40; + color: $tc-gray-30; + } + + @include placeholder { + @include roboto; + color: $tc-gray-30; + text-transform: none; + font-style: italic; + font-size: $base-unit*3; + line-height: $base-unit*4; + } + + &:focus { + background: $tc-dark-blue-10 !important; + border: none; + border-bottom: 1px solid $tc-dark-blue-70; + box-shadow: none; + color: $tc-gray-80; + } + &:hover { + border: none; + border-bottom: 1px solid $tc-dark-blue-70; + box-shadow: none; + } + &:disabled { + background: $tc-gray-neutral-light; + border-bottom: 1px solid $tc-gray-40; + color: $tc-gray-30; + } + &.error{ + border-left: 3px solid $tc-red-70!important; + border-bottom: 1px solid $tc-red-70!important; + background: $tc-gray-neutral-light!important; + } + } + .read-only-refcode { height: 100%; align-self: flex-end; @@ -851,15 +901,6 @@ $title-color: $tc-gray-80; label { display: none;//hides the empty label } - - input { - height: 50px; - line-height: 30px; - font-size: 20px; - @include placeholder { - color: $tc-gray-30; - } - } } } } From 4b300c6eba5e2ee7b475409a1c5a65c1a9c7f972 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 5 Jun 2017 17:24:52 +0530 Subject: [PATCH 21/89] Fixed styles for project name and ref code inputs. Extracted there styles a theme for the text input. --- .../detail/components/SpecSection.jsx | 2 + .../detail/containers/Specification.scss | 54 ------------------- 2 files changed, 2 insertions(+), 54 deletions(-) diff --git a/src/projects/detail/components/SpecSection.jsx b/src/projects/detail/components/SpecSection.jsx index ff1dc8b66..62c0c2abb 100644 --- a/src/projects/detail/components/SpecSection.jsx +++ b/src/projects/detail/components/SpecSection.jsx @@ -110,6 +110,7 @@ const SpecSection = props => { maxLength={ PROJECT_NAME_MAX_LENGTH } required={props.required} validationError={props.validationError} + theme="paper-form-dotted" />
} @@ -126,6 +127,7 @@ const SpecSection = props => { value={ refCode } wrapperClass="project-refcode" maxLength={ PROJECT_REF_CODE_MAX_LENGTH } + theme="paper-form-dotted" />
Optional diff --git a/src/projects/detail/containers/Specification.scss b/src/projects/detail/containers/Specification.scss index ea439cb57..7bb65aab5 100644 --- a/src/projects/detail/containers/Specification.scss +++ b/src/projects/detail/containers/Specification.scss @@ -810,56 +810,6 @@ $title-color: $tc-gray-80; flex: 1; } - /* TODO extract following text box styles as separate theme for TextInput component in react-components repo*/ - .project-name input, - .project-refcode input{ - @include roboto; - border: none; - border-bottom: 1px dashed $tc-gray-20; - border-radius: 0; - box-shadow: none; - -ms-overflow-style: none; - font-size: $base-unit*3; - line-height: $base-unit*4; - &.empty { - background: $tc-gray-neutral-light; - border-bottom: 1px solid $tc-gray-40; - color: $tc-gray-30; - } - - @include placeholder { - @include roboto; - color: $tc-gray-30; - text-transform: none; - font-style: italic; - font-size: $base-unit*3; - line-height: $base-unit*4; - } - - &:focus { - background: $tc-dark-blue-10 !important; - border: none; - border-bottom: 1px solid $tc-dark-blue-70; - box-shadow: none; - color: $tc-gray-80; - } - &:hover { - border: none; - border-bottom: 1px solid $tc-dark-blue-70; - box-shadow: none; - } - &:disabled { - background: $tc-gray-neutral-light; - border-bottom: 1px solid $tc-gray-40; - color: $tc-gray-30; - } - &.error{ - border-left: 3px solid $tc-red-70!important; - border-bottom: 1px solid $tc-red-70!important; - background: $tc-gray-neutral-light!important; - } - } - .read-only-refcode { height: 100%; align-self: flex-end; @@ -897,10 +847,6 @@ $title-color: $tc-gray-80; .project-refcode { width: 100%; height: 100%; - - label { - display: none;//hides the empty label - } } } } From 6b05508d63e937638a5e4a891020006b252e2d7d Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 7 Jun 2017 13:05:28 +0530 Subject: [PATCH 22/89] =?UTF-8?q?Github=20issue#901,=20Fix=20icons=20?= =?UTF-8?q?=E2=80=94=20Fixed=20product=20icons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../images/product-app-visual-design.svg | 26 ++++++++++++++++++- src/assets/images/product-app.svg | 21 +++++++++++++++ src/assets/images/product-code.svg | 1 - src/assets/images/product-demo.svg | 1 - .../images/product-front-end-prototype.svg | 20 ++++++++++++++ src/assets/images/product-ideation.svg | 1 - src/assets/images/product-infographic.svg | 18 +++++++++++++ src/assets/images/product-other-design.svg | 20 ++++++++++++++ src/assets/images/product-prototype.svg | 1 - .../images/product-software-development.svg | 20 ++++++++++++++ src/assets/images/product-website.svg | 19 ++++++++++++++ src/assets/images/product-wireframes.svg | 21 ++++++++++++++- .../images/project-app-visual-design.svg | 9 ------- .../images/project-development-code.svg | 7 ----- .../images/project-development-ideation.svg | 10 ------- src/assets/images/project-prototype-demo.svg | 10 ------- .../images/project-prototype-technical.svg | 8 ------ src/assets/images/project-wireframes.svg | 7 ----- src/config/projectWizard/index.js | 18 ++++++------- 19 files changed, 172 insertions(+), 66 deletions(-) mode change 100755 => 100644 src/assets/images/product-app-visual-design.svg create mode 100644 src/assets/images/product-app.svg delete mode 100755 src/assets/images/product-code.svg delete mode 100755 src/assets/images/product-demo.svg create mode 100644 src/assets/images/product-front-end-prototype.svg delete mode 100755 src/assets/images/product-ideation.svg create mode 100644 src/assets/images/product-infographic.svg create mode 100644 src/assets/images/product-other-design.svg delete mode 100755 src/assets/images/product-prototype.svg create mode 100644 src/assets/images/product-software-development.svg create mode 100644 src/assets/images/product-website.svg mode change 100755 => 100644 src/assets/images/product-wireframes.svg delete mode 100644 src/assets/images/project-app-visual-design.svg delete mode 100644 src/assets/images/project-development-code.svg delete mode 100644 src/assets/images/project-development-ideation.svg delete mode 100644 src/assets/images/project-prototype-demo.svg delete mode 100644 src/assets/images/project-prototype-technical.svg delete mode 100644 src/assets/images/project-wireframes.svg diff --git a/src/assets/images/product-app-visual-design.svg b/src/assets/images/product-app-visual-design.svg old mode 100755 new mode 100644 index 5f5ed1c09..45fd62cb6 --- a/src/assets/images/product-app-visual-design.svg +++ b/src/assets/images/product-app-visual-design.svg @@ -1 +1,25 @@ - \ No newline at end of file + + + + icon-product-visual-design + Created with Sketch. + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/product-app.svg b/src/assets/images/product-app.svg new file mode 100644 index 000000000..05b1ea7b0 --- /dev/null +++ b/src/assets/images/product-app.svg @@ -0,0 +1,21 @@ + + + + icon-product-app + Created with Sketch. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/product-code.svg b/src/assets/images/product-code.svg deleted file mode 100755 index e9838d564..000000000 --- a/src/assets/images/product-code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/images/product-demo.svg b/src/assets/images/product-demo.svg deleted file mode 100755 index 29abd0e2c..000000000 --- a/src/assets/images/product-demo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/images/product-front-end-prototype.svg b/src/assets/images/product-front-end-prototype.svg new file mode 100644 index 000000000..3a33ee067 --- /dev/null +++ b/src/assets/images/product-front-end-prototype.svg @@ -0,0 +1,20 @@ + + + + icon-product-front-end-prototype + Created with Sketch. + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/product-ideation.svg b/src/assets/images/product-ideation.svg deleted file mode 100755 index 49928ffe5..000000000 --- a/src/assets/images/product-ideation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/images/product-infographic.svg b/src/assets/images/product-infographic.svg new file mode 100644 index 000000000..a7d15c322 --- /dev/null +++ b/src/assets/images/product-infographic.svg @@ -0,0 +1,18 @@ + + + + icon-product-infographic + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/product-other-design.svg b/src/assets/images/product-other-design.svg new file mode 100644 index 000000000..a3e3f6c91 --- /dev/null +++ b/src/assets/images/product-other-design.svg @@ -0,0 +1,20 @@ + + + + icon-product-design-other + Created with Sketch. + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/product-prototype.svg b/src/assets/images/product-prototype.svg deleted file mode 100755 index 80e6df311..000000000 --- a/src/assets/images/product-prototype.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/images/product-software-development.svg b/src/assets/images/product-software-development.svg new file mode 100644 index 000000000..f2259e89b --- /dev/null +++ b/src/assets/images/product-software-development.svg @@ -0,0 +1,20 @@ + + + + icon-product-software-development + Created with Sketch. + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/product-website.svg b/src/assets/images/product-website.svg new file mode 100644 index 000000000..4b9ae2047 --- /dev/null +++ b/src/assets/images/product-website.svg @@ -0,0 +1,19 @@ + + + + icon-product-website + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/product-wireframes.svg b/src/assets/images/product-wireframes.svg old mode 100755 new mode 100644 index f801d76a4..7f2d4213d --- a/src/assets/images/product-wireframes.svg +++ b/src/assets/images/product-wireframes.svg @@ -1 +1,20 @@ - \ No newline at end of file + + + + icon-product-wireframes + Created with Sketch. + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/project-app-visual-design.svg b/src/assets/images/project-app-visual-design.svg deleted file mode 100644 index 8f2fb208e..000000000 --- a/src/assets/images/project-app-visual-design.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/assets/images/project-development-code.svg b/src/assets/images/project-development-code.svg deleted file mode 100644 index 5e014ec96..000000000 --- a/src/assets/images/project-development-code.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/assets/images/project-development-ideation.svg b/src/assets/images/project-development-ideation.svg deleted file mode 100644 index 060e8132d..000000000 --- a/src/assets/images/project-development-ideation.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/assets/images/project-prototype-demo.svg b/src/assets/images/project-prototype-demo.svg deleted file mode 100644 index 50318d226..000000000 --- a/src/assets/images/project-prototype-demo.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/assets/images/project-prototype-technical.svg b/src/assets/images/project-prototype-technical.svg deleted file mode 100644 index 62c4a56b5..000000000 --- a/src/assets/images/project-prototype-technical.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/assets/images/project-wireframes.svg b/src/assets/images/project-wireframes.svg deleted file mode 100644 index f7d377e06..000000000 --- a/src/assets/images/project-wireframes.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index cde9a48fb..bc83bbf76 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -8,13 +8,13 @@ const products = { Wireframes: { brief: '10-15 screens', details: 'Plan and explore the navigation and structure of your app', - icon: 'project-wireframes', + icon: 'product-wireframes', id: 'wireframes' }, 'Visual Design': { brief: '1-15 screens', details: 'Visualize and test your app requirements and ideas', - icon: 'project-app-visual-design', + icon: 'product-app-visual-design', id: 'visual_design_concepts' }, 'App Visual Design - Production': { @@ -27,19 +27,19 @@ const products = { Infographic: { brief: 'Infographic', details: 'Present your data in a clean and a fun way', - icon: 'project-app-visual-design', + icon: 'product-infographic', id: 'infographic' }, 'Other Design': { brief: 'other designs', details: 'Get help with other types of design', - icon: 'project-wireframes', + icon: 'product-other-design', id: 'generic_design' } } }, Development: { - icon: 'product-code', + icon: 'product-software-development', info: 'Front end prototypes, website and application development, services, and more', question: 'What do you need to develop?', id: 'app_dev', @@ -47,25 +47,25 @@ const products = { 'Front-end Prototype': { brief: '3-20 screens', details: 'Translate designs to an HTML/CSS/JavaScript prototype', - icon: 'project-prototype-demo', + icon: 'product-front-end-prototype', id: 'visual_prototype' }, Website: { brief: 'Websites', details: 'Build responsive or regular websites', - icon: 'project-prototype-technical', + icon: 'product-website', id: 'website_development' }, App: { brief: 'Apps', details: 'Build apps for mobile, web, or wearables', - icon: 'project-development-code', + icon: 'product-app', id: 'application_development' }, 'Software Development': { brief: 'Tasks or adhoc', details: 'Get help with any part of your development cycle', - icon: 'project-development-ideation', + icon: 'product-software-development', id: 'generic_dev' } } From 670b77bf73b3b3e10e31e072faa35ea1786c6311 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 7 Jun 2017 14:44:38 +0530 Subject: [PATCH 23/89] =?UTF-8?q?Github=20issue#901,=20Fix=20icons=20?= =?UTF-8?q?=E2=80=94=20Added=20icon=20for=20Start=20over=20button?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/images/arrows-undo.svg | 17 +++++++++++++++++ .../create/components/FillProjectDetails.js | 3 ++- .../create/components/FillProjectDetails.scss | 5 +++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/assets/images/arrows-undo.svg diff --git a/src/assets/images/arrows-undo.svg b/src/assets/images/arrows-undo.svg new file mode 100644 index 000000000..d1318cfcd --- /dev/null +++ b/src/assets/images/arrows-undo.svg @@ -0,0 +1,17 @@ + + + + arrows-undo + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/src/projects/create/components/FillProjectDetails.js b/src/projects/create/components/FillProjectDetails.js index 1f30482ef..c2bb60e58 100644 --- a/src/projects/create/components/FillProjectDetails.js +++ b/src/projects/create/components/FillProjectDetails.js @@ -4,6 +4,7 @@ import Sticky from 'react-stickynode' import { Icons } from 'appirio-tech-react-components' import config from '../../../config/projectWizard' +import SVGIconImage from '../../../components/SVGIconImage' import './FillProjectDetails.scss' import ProjectBasicDetailsForm from '../components/ProjectBasicDetailsForm' import ProjectOutline from '../components/ProjectOutline' @@ -52,7 +53,7 @@ class FillProjectDetails extends Component {
{ (!userRoles || !userRoles.length) && }

Let's setup your { productName } project

- { (!userRoles || !userRoles.length) && } + { (!userRoles || !userRoles.length) && }
diff --git a/src/projects/create/components/FillProjectDetails.scss b/src/projects/create/components/FillProjectDetails.scss index 71e49769e..008f485d8 100644 --- a/src/projects/create/components/FillProjectDetails.scss +++ b/src/projects/create/components/FillProjectDetails.scss @@ -29,6 +29,11 @@ button { align-self: flex-end; white-space: nowrap; + + .Icon { + vertical-align: middle; + margin-right: 2 * $base_unit; + } } } From 019171da98a65a3d0d07d943f6238d3c7aa25a65 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 9 Jun 2017 15:04:00 +0530 Subject: [PATCH 24/89] =?UTF-8?q?Github=20issue#892,=20Remove=20TopBar=20c?= =?UTF-8?q?omponent=20for=20logged=20out=20view=20of=20the=20project=20cre?= =?UTF-8?q?ation=20flow=20=E2=80=94=20Refactored=20layout=20to=20allow=20s?= =?UTF-8?q?eparate=20top=20bar=20components=20per=20route=20instead=20of?= =?UTF-8?q?=20handling=20that=20with=20if=20else=20=20in=20single=20compon?= =?UTF-8?q?ent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/App/App.jsx | 6 +- src/components/Layout/Layout.jsx | 24 +- src/components/TopBar/ProjectToolBar.js | 40 +- src/components/TopBar/ProjectToolBar.scss | 263 ++++++++++ src/components/TopBar/ProjectsToolBar.js | 241 +++++++++ src/components/TopBar/ProjectsToolBar.scss | 225 +++++++++ src/components/TopBar/TopBar.jsx | 6 +- src/components/TopBar/TopBar.scss | 545 --------------------- src/components/TopBar/TopBarContainer.js | 238 ++++----- src/components/TopBar/TopBarContainer.scss | 165 +++++-- src/projects/ProjectLayout.jsx | 4 +- src/projects/routes.jsx | 9 +- src/routes.jsx | 18 +- 13 files changed, 997 insertions(+), 787 deletions(-) create mode 100644 src/components/TopBar/ProjectToolBar.scss create mode 100644 src/components/TopBar/ProjectsToolBar.js create mode 100644 src/components/TopBar/ProjectsToolBar.scss diff --git a/src/components/App/App.jsx b/src/components/App/App.jsx index abad31813..0f65818b1 100644 --- a/src/components/App/App.jsx +++ b/src/components/App/App.jsx @@ -3,10 +3,10 @@ import Layout from '../Layout/Layout' require('./App.scss') -const App = ({ children }) => { +const App = (props) => { return ( - - { children } + + { props.children } ) } diff --git a/src/components/Layout/Layout.jsx b/src/components/Layout/Layout.jsx index 2ac012b6a..c5436976a 100644 --- a/src/components/Layout/Layout.jsx +++ b/src/components/Layout/Layout.jsx @@ -1,8 +1,6 @@ -import _ from 'lodash' import React from 'react' -import TopBarContainer from '../TopBar/TopBarContainer' import Footer from '../Footer/Footer' -import { DOMAIN, MAINTENANCE_MODE } from '../../config/constants' +import { MAINTENANCE_MODE } from '../../config/constants' import Alert from 'react-s-alert' import Maintenance from '../Maintenance/Maintenance' @@ -13,15 +11,8 @@ import '../../styles/vendors/s-alert-default.css' import 'react-s-alert/dist/s-alert-css-effects/slide.css' const Layout = (props) => { - const { isLoadingUser, user } = props - const handle = _.get(user, 'handle') - const userImage = _.get(user, 'profile.photoURL') - const userFirstName = _.get(user, 'profile.firstName') - const userLastName = _.get(user, 'profile.lastName') - let userName = userFirstName - if (userName && userLastName) { - userName += ' ' + userLastName - } + const { isLoadingUser } = props + if (isLoadingUser) { return (
) } else if (MAINTENANCE_MODE) { @@ -29,15 +20,10 @@ const Layout = (props) => { } else { return (
- + { props.topbar }
- { props.children } + { props.content }
diff --git a/src/components/TopBar/ProjectToolBar.js b/src/components/TopBar/ProjectToolBar.js index fde3d6362..7d694c77c 100644 --- a/src/components/TopBar/ProjectToolBar.js +++ b/src/components/TopBar/ProjectToolBar.js @@ -1,7 +1,15 @@ +require('./ProjectToolBar.scss') + +import _ from 'lodash' import React, {PropTypes} from 'react' import {Link} from 'react-router' +import { connect } from 'react-redux' import ReactDOM from 'react-dom' - +import { + ROLE_CONNECT_COPILOT, + ROLE_CONNECT_MANAGER, + ROLE_ADMINISTRATOR +} from '../../config/constants' function isEllipsisActive(el) { return (el.offsetWidth < el.scrollWidth) @@ -47,9 +55,8 @@ class ProjectToolBar extends React.Component { } render() { - //const {logo, avatar, project, isPowerUser} = this.props // TODO: removing isPowerUser until link challenges is needed once again. - const {logo, avatar, project } = this.props + const {logo, userMenu, project } = this.props const {router} = this.context const {isTooltipVisible} = this.state @@ -59,8 +66,8 @@ class ProjectToolBar extends React.Component { }) return ( -
-
+
+
{logo} {project &&
@@ -81,7 +88,7 @@ class ProjectToolBar extends React.Component {
  • Discussions
  • } - {avatar} + { userMenu }
    @@ -90,8 +97,6 @@ class ProjectToolBar extends React.Component { } ProjectToolBar.propTypes = { - logo: PropTypes.any.isRequired, - avatar: PropTypes.any.isRequired, project: PropTypes.object, isPowerUser: PropTypes.bool } @@ -100,4 +105,21 @@ ProjectToolBar.contextTypes = { router: PropTypes.object.isRequired } -export default ProjectToolBar +const mapStateToProps = ({ projectState, loadUser }) => { + let isPowerUser = false + const roles = [ROLE_CONNECT_COPILOT, ROLE_CONNECT_MANAGER, ROLE_ADMINISTRATOR] + if (loadUser.user) { + isPowerUser = loadUser.user.roles.some((role) => roles.indexOf(role) !== -1) + } + return { + project : projectState.project, + userRoles : _.get(loadUser, 'user.roles', []), + user : loadUser.user, + isPowerUser + } +} + +const actionsToBind = { } + +// export default ProjectToolBar +export default connect(mapStateToProps, actionsToBind)(ProjectToolBar) \ No newline at end of file diff --git a/src/components/TopBar/ProjectToolBar.scss b/src/components/TopBar/ProjectToolBar.scss new file mode 100644 index 000000000..8f6223051 --- /dev/null +++ b/src/components/TopBar/ProjectToolBar.scss @@ -0,0 +1,263 @@ +// this is to include tc styles in the output library +@import 'tc-includes'; + +.ProjectToolBar { + padding: 0; + min-height: 60px; + width: 100%; + height: auto; + .tool-bar { + display: flex; + justify-content: space-between; + width: 100%; + height: 60px; + background-color: $tc-black; + .bar-column:first-child{ + display: flex; + // width: calc(100% - 560px); + } + .bar-column:last-child{ + // width: 560px; + display: flex; + } + .logo-wrapper { + width: 110px; + margin-left: 4 * $base-unit; + } + .breadcrumb { + @include roboto-light; + font-size: 20px; + color: $tc-gray-10; + position: relative; + overflow: hidden; + text-overflow: ellipsis; + display: flex; + span { + display:block; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + padding-right: $base-unit * 12; + } + a { + display:block; + flex-shrink: 0; + color: $tc-gray-50; + &:hover, &.hover{ + text-decoration: none; + color: $tc-orange-30; + } + } + } + .bar-column .welcome-info{ + width: 70px; + display: flex; + align-items: center; + margin-right: 4*$base-unit; + .avatar-info { + position: relative; + .Dropdown { + min-width: 100px; + right: 0; + left: auto; + } + .username { + display: none; + } + .avatar{ + width: 30px; + height: 30px; + background-color: $tc-dark-blue-70 ; + border-radius: 15px; + overflow: hidden; + text-align: center; + line-height: 28px; + color: $tc-white; + @include roboto-medium; + font-size: 15px; + position: absolute; + left: 0; + top: 0; + img{ + width: 30px; + height: 30px; + border-radius: 15px; + } + } + .avatar-link-arrow{ + display: block; + width: 10px; + height: 30px; + //background: url("../../styles/i/arrow-down-black.png") right center no-repeat; + background-size: 10px 7.5px; + } + } + } + } + + .nav{ + padding-right: 5px; + height: 20px; + margin-top: 20px; + border-right: 1px solid $tc-gray-80; + flex: 1; + ul{ + width: 484px; + height: 20px; + display: flex; + justify-content: flex-end; + margin: 0; + padding: 0; + } + ul li{ + padding: 0 15px; + height: 20px; + line-height: 20px; + text-align: center; + vertical-align: middle; + &:first-child{ + padding-left: 0; + } + a{ + display: inline-block; + @include roboto-medium; + font-size: $tc-label-md; + color: $tc-gray-50; + line-height: 20px; + position: relative; + padding-left: 26px; + /* menu icons */ + >i{ + display: block; + width: 16px; + height: 16px; + position: absolute; + left: 0; + top: 2px; + &.icon-dashboard{ + background: url("../../styles/i/icon-dashboard.svg") left top no-repeat; + } + &.icon-specification{ + background: url("../../styles/i/icon-ruler-pencil.svg") left top no-repeat; + } + &.icon-challenges{ + background: url("../../styles/i/icon-hammer.svg") left top no-repeat; + } + &.icon-messages{ + background: url("../../styles/i/icon-chat.svg") left top no-repeat; + } + } + } + &:hover, &.hover{ + a, a:hover{ + color: $tc-orange-30; + >i{ + &.icon-dashboard{ + background: url("../../styles/i/icon-dashboard-hover.svg") left top no-repeat; + } + &.icon-specification{ + background: url("../../styles/i/icon-ruler-pencil-hover.svg") left top no-repeat; + } + &.icon-challenges{ + background: url("../../styles/i/icon-hammer-hover.svg") left top no-repeat; + } + &.icon-messages{ + background: url("../../styles/i/icon-chat-hover.svg") left top no-repeat; + } + } + } + } + a.active, a.active:hover{ + color: $tc-orange-70; + >i{ + &.icon-dashboard{ + background: url("../../styles/i/icon-dashboard-active.svg") left top no-repeat; + } + &.icon-specification{ + background: url("../../styles/i/icon-ruler-pencil-active.svg") left top no-repeat; + } + &.icon-challenges{ + background: url("../../styles/i/icon-hammer-active.svg") left top no-repeat; + } + &.icon-messages{ + background: url("../../styles/i/icon-chat-active.svg") left top no-repeat; + } + } + } + } + } + + .breadcrumb-tooltip{ + @include roboto(); + word-break: break-word; + position: absolute; + left: calc(50% - 240px - 230px); + top: 56px; + width: 480px; + padding: 15px; + font-size: 13px; + line-height: 20px; + font-weight: 500; + color: $tc-white; + background-color: $tc-gray-80; + border-radius: 4px; + z-index: 10; + &:before{ + display: block; + content: ''; + position: absolute; + left: 50%; + top: -7px; + margin-left: -7px; + width: 0; + height: 0; + border: 7px solid $tc-gray-80; + border-top: 0; + border-left-color: transparent; + border-right-color: transparent; + } + } +} + +@media all and (max-width: 1023px) { + .ProjectToolBar { + .top-bar{ + &:after{ + display: block; + content: ''; + width: 0; + height: 0; + clear: both; + overflow: hidden; + } + .bar-column:first-child { + width: calc(100% - 215px); + } + .bar-column:last-child{ + width: 215px; + } + .logo-wrapper { + width: 90px; + } + .breadcrumb .breadcrumb-tooltip{ + left: 28px; + } + } + } + .nav { + padding-right: 10px; + ul{ + width: 134px; + } + ul li { + padding: 0 10px; + &:first-child { + padding-left: 0; + } + a { + padding-left: 16px; + text-indent: -9999px; + } + } + } +} \ No newline at end of file diff --git a/src/components/TopBar/ProjectsToolBar.js b/src/components/TopBar/ProjectsToolBar.js new file mode 100644 index 000000000..da3ed9663 --- /dev/null +++ b/src/components/TopBar/ProjectsToolBar.js @@ -0,0 +1,241 @@ +require('./ProjectsToolBar.scss') + +import React, {PropTypes, Component} from 'react' +import { connect } from 'react-redux' +import cn from 'classnames' +import _ from 'lodash' +import Modal from 'react-modal' +import { SearchBar } from 'appirio-tech-react-components' +import Filters from './Filters' + +import ModalControl from '../ModalControl' +import SVGIconImage from '../SVGIconImage' +import ProjectWizard from '../../projects/create/components/ProjectWizard' + +import { createProject as createProjectAction } from '../../projects/actions/project' +import { projectSuggestions, loadProjects } from '../../projects/actions/loadProjects' +import { + ROLE_CONNECT_COPILOT, + ROLE_CONNECT_MANAGER, + ROLE_ADMINISTRATOR +} from '../../config/constants' + + +class ProjectsToolBar extends Component { + + constructor(props) { + super(props) + this.state = { + isCreatingProject: false, + isCreateProjectModalVisible : false, + errorCreatingProject: false, + isFilterVisible: false + } + this.applyFilters = this.applyFilters.bind(this) + this.toggleFilter = this.toggleFilter.bind(this) + this.showCreateProjectDialog = this.showCreateProjectDialog.bind(this) + this.hideCreateProjectDialog = this.hideCreateProjectDialog.bind(this) + this.handleTermChange = this.handleTermChange.bind(this) + this.handleSearch = this.handleSearch.bind(this) + this.handleMyProjectsFilter = this.handleMyProjectsFilter.bind(this) + } + + componentWillReceiveProps(nextProps) { + // if new project is created successfully + if (this.props.creatingProject && !nextProps.creatingProject) { + if (!nextProps.projectCreationError + && nextProps.project && nextProps.project.id) { + this.hideCreateProjectDialog() + this.context.router.push('/projects/' + nextProps.project.id) + } else { + this.setState({ + errorCreatingProject: true + }) + } + } + } + + componentWillUnmount() { + const contentDiv = document.getElementById('wrapper-main') + contentDiv.classList.remove('with-filters') + } + + /*eslint-disable no-unused-vars */ + handleTermChange(oldTerm, searchTerm, reqNo, callback) { + this.props.projectSuggestions(searchTerm) + callback(reqNo, this.props.projects) + } + /*eslint-enable */ + + handleSearch(keyword) { + this.applyFilters({ keyword }) + } + + handleMyProjectsFilter(event) { + this.applyFilters({memberOnly: event.target.checked}) + } + + showCreateProjectDialog() { + this.setState({ + isCreateProjectModalVisible : true + }) + } + + hideCreateProjectDialog() { + this.setState({ + isCreateProjectModalVisible : false, + errorCreatingProject: false + }) + } + + applyFilters(filter) { + const criteria = _.assign({}, this.props.criteria, filter) + if (criteria && criteria.keyword) { + criteria.keyword = encodeURIComponent(criteria.keyword) + // force sort criteria to best match + criteria.sort = 'best match' + } + this.routeWithParams(criteria, 1) + } + + toggleFilter() { + const {isFilterVisible} = this.state + const contentDiv = document.getElementById('wrapper-main') + this.setState({isFilterVisible: !isFilterVisible}, () => { + if (this.state.isFilterVisible) { + contentDiv.classList.add('with-filters') + } else { + contentDiv.classList.remove('with-filters') + } + }) + } + + routeWithParams(criteria, page) { + // remove any null values + criteria = _.pickBy(criteria, _.identity) + this.context.router.push({ + pathname: '/projects/', + query: _.assign({}, criteria, { page }) + }) + this.props.loadProjects(criteria, page) + } + + render() { + const { logo, userMenu, userRoles, criteria, isPowerUser } = this.props + const { isCreateProjectModalVisible, errorCreatingProject, isFilterVisible } = this.state + const isLoggedIn = userRoles && userRoles.length + + const noOfFilters = _.keys(criteria).length - 1 // -1 for default sort criteria + + return ( +
    + + } + label="esc" + onClick={ this.hideCreateProjectDialog } + /> + { !errorCreatingProject && + {} } + onProjectUpdate={ () => {} } + userRoles={ userRoles } + /> + } + { errorCreatingProject && } + +
    + { logo } + { + !!isLoggedIn && +
    + + { + !!isPowerUser && + + } +
    + } +
    + { + !!isLoggedIn && + + } + { userMenu } +
    +
    +
    + { isFilterVisible && + + } +
    +
    + ) + } +} + +ProjectsToolBar.propTypes = { + criteria : PropTypes.object.isRequired +} + +ProjectsToolBar.defaultProps = { +} + +ProjectsToolBar.contextTypes = { + router: PropTypes.object.isRequired +} + +// export default ProjectsToolBar + +const mapStateToProps = ({ projectSearchSuggestions, searchTerm, projectSearch, projectState, loadUser }) => { + let isPowerUser = false + const roles = [ROLE_CONNECT_COPILOT, ROLE_CONNECT_MANAGER, ROLE_ADMINISTRATOR] + if (loadUser.user) { + isPowerUser = loadUser.user.roles.some((role) => roles.indexOf(role) !== -1) + } + return { + projects : projectSearchSuggestions.projects, + previousSearchTerm : searchTerm.previousSearchTerm, + searchTermTag : searchTerm.searchTermTag, + creatingProject : projectState.processing, + projectCreationError : projectState.error, + criteria : projectSearch.criteria, + userRoles : _.get(loadUser, 'user.roles', []), + user : loadUser.user, + isPowerUser + } +} + +const actionsToBind = { projectSuggestions, loadProjects, createProjectAction } + +export default connect(mapStateToProps, actionsToBind)(ProjectsToolBar) \ No newline at end of file diff --git a/src/components/TopBar/ProjectsToolBar.scss b/src/components/TopBar/ProjectsToolBar.scss new file mode 100644 index 000000000..0d2921b30 --- /dev/null +++ b/src/components/TopBar/ProjectsToolBar.scss @@ -0,0 +1,225 @@ +// this is to include tc styles in the output library +@import 'tc-includes'; + +// TODO: move to includes +$tc-rgba-10: rgba(71,71,79,0.38); +$tc-rgba-20: rgba(0,0,0,0.17); +$tc-body-large : 20px; + +.ProjectsToolBar { + margin: 0 auto; + width: 100%; + display: flex; + flex-direction: column; + + .primary-toolbar { + display: flex; + width: 100%; + justify-content: space-between; + + .logo-wrapper { + margin-left: 4*$base-unit; + } + + .welcome-info { + margin-right: 4*$base-unit; + } + + .actions { + display: flex; + } + } + + .secondary-toolbar { + display: flex; + } + + .search-widget { + width: 595px; + height: 30px; + margin-top: 15px; + display: flex; + } + .search-filter { + width: 97px; + margin-left: 2*$base-unit; + .tc-btn{ + display: flex; + align-items: center; + // justify-content: center; + padding: 5px 2*$base-unit 5px 34px; + text-align: left; + color: $tc-gray-40; + background-color: transparent; + border-radius: 2px; + font-size: 12px; + position: relative; + &:before{ + display: block; + content: ''; + width: 14px; + height: 16px; + position: absolute; + top: 7px; + left: 10px; + background: url("../../styles/i/icon-filter.png") left top no-repeat; + background-size: 14px 32px; + } + &.active{ + background: $tc-gray-80; + box-shadow: inset 0px 1px 3px 0px $tc-rgba-10; + &:before{ + background: url("../../styles/i/icon-filter.png") left -16px no-repeat; + background-size: 14px 32px; + } + } + } + + .filter-indicator { + width: 15px; + height: 15px; + margin-left: $base-unit; + background-color: $tc-dark-blue-90; + border-radius: 26px; + color: $tc-white; + display: flex; + justify-content: center; + align-items: center; + } + } + + /* .bar__search */ + .bar__search{ + position: relative; + min-height: 60px; + padding: 0 20px; + background-color: $tc-gray-neutral-light; + display: flex; + width: 100%; + h2{ + font-size: $tc-body-large; + line-height: 60px; + color: $tc-black; + width: 120px; + white-space: nowrap; + } + .bar-control{ + width: 120px; + text-align: right; + min-height: 30px; + padding-top: 15px; + .tc-btn{ + display: inline-block; + height: 30px; + white-space: nowrap; + } + } + .search-panel{ + flex: 1; + margin: 0 auto; + text-align: center; + display: flex; + justify-content: center; + padding-top: 15px; + flex-wrap: wrap; + label{ + @include roboto-medium; + width: 83px; + display: inline-block; + line-height: 30px; + height: 30px; + font-size: 13px; + color: $tc-gray-70; + text-align: right; + } + .search-select-widget{ + width: 280px; + margin-left: 10px; + display: inline-block; + } + } + .SwitchButton { + .label { + padding-right: 10px; + } + } + } +} + +.project-creation-dialog-overlay { + position : fixed; + top : 0; + left : 0; + right : 0; + bottom : 0; + z-index: 21;/* +1 of the z-index of the topbar */ + background-color: $tc-gray-neutral-dark; + overflow-y: scroll; + + section.content { + padding: 1px 0; + } + + .escape-button { + position: absolute; + right: 12px; + top: 12px; + z-index: 22;/* +1 from z-index of the modal overlay */ + } +} + +.project-creation-dialog { + top: 0px; + left: 0px; + + .Wizard .content { + margin: 0 auto; + width: 100%; + min-height: 100vh; + } + .TextInput.project-name, + .TextInput.project-ref-code { + height: 45px; + } +} + +/*.project-creation-dialog-close { + cursor: pointer; + position: fixed; + top: 20px; + right: 20px; + width: 40px; + height: 40px; + text-align: center; + + & .x-mark-icon { + width: 100%; + height: 100%; + } +}*/ + + +@media all and (max-width: 1023px) { + .bar__search{ + h2{ + width: 110px; + } + .search-panel{ + flex: 1; + margin: 0 auto; + text-align: left; + display: flex; + justify-content: flex-start; + label{ + width: auto; + margin-left: 30px; + &.first{ + margin-left: 0; + } + } + .search-select-widget { + width: 170px; + } + } + } +} \ No newline at end of file diff --git a/src/components/TopBar/TopBar.jsx b/src/components/TopBar/TopBar.jsx index 9712dae30..d2e39ef0c 100644 --- a/src/components/TopBar/TopBar.jsx +++ b/src/components/TopBar/TopBar.jsx @@ -10,6 +10,7 @@ const { ConnectLogo } = Icons import { SearchBar } from 'appirio-tech-react-components' import Filters from './Filters' import ProjectToolBar from './ProjectToolBar' +import { DOMAIN } from '../../config/constants' class TopBar extends Component { @@ -76,6 +77,7 @@ class TopBar extends Component {
    ) + console.log(isLoggedIn) const avatar = (
    {isLoggedIn && !isProjectDetails && + New Project } @@ -86,7 +88,7 @@ class TopBar extends Component { userName={ userName } userHandle={userHandle} userImage={userImage} - domain={domain} + domain={ DOMAIN } menuItems={ userMenuItems } loginUrl={ loginUrl } registerUrl={ registerUrl } @@ -145,7 +147,7 @@ class TopBar extends Component { TopBar.propTypes = { userHandle : PropTypes.string, userImage : PropTypes.string, - domain : PropTypes.string.isRequired, + // domain : PropTypes.string.isRequired, mobileMenuUrl : PropTypes.string, mobileSearchUrl : PropTypes.string, criteria : PropTypes.object.isRequired diff --git a/src/components/TopBar/TopBar.scss b/src/components/TopBar/TopBar.scss index a60bb6060..91098f921 100644 --- a/src/components/TopBar/TopBar.scss +++ b/src/components/TopBar/TopBar.scss @@ -15,549 +15,4 @@ $tc-body-large : 20px; // z-index: 14; // } -.tc-header { - height: 60px; - // background: $tc-gray-neutral-light; - line-height: 60px; - height: 60px; - background-color: $tc-black; - z-index: 20; - padding: 0 20px; - position: fixed; - top: 0; - left: 0; - right: 0; - .logo-wrapper { - width: 60px; - height: 60px; - flex-shrink: 0; - - .logo { - display: inline-block; - position: relative; - margin-top: 12px; - // width: 60px; - // height: 36px; - } - } - - .UserDropdownMenu { - padding: 0; - display: flex; - align-content: center; - text-align: left; - } - - .sb-avatar { - display: block !important; - } - - &.tc-header__connect{ - padding: 0; - min-height: 60px; - height: auto; - - .top-bar { - height: 60px; - background-color: $tc-black; - padding: 0 20px; - position: relative; - text-align: center; - display: flex; - - .logo-wrapper { - // position: absolute; - // left: 20px; - // top: 0; - // z-index:2; - - } - - .search-bar{ - margin: 0 auto; - width: 605px; - padding-top: 15px; - display: flex; - justify-content:space-between; - &.search-bar-single{ - width: 498px; - } - .search-widget{ - width: 498px; - height: 30px; - } - .search-filter{ - width: 97px; - .tc-btn{ - display: flex; - align-items: center; - justfiy-content: center; - padding: 5px 0 5px 34px; - text-align: left; - color: $tc-gray-40; - background-color: transparent; - border-radius: 2px; - font-size: 12px; - position: relative; - &:before{ - display: block; - content: ''; - width: 14px; - height: 16px; - position: absolute; - top: 7px; - left: 10px; - background: url("../../styles/i/icon-filter.png") left top no-repeat; - background-size: 14px 32px; - } - &.active{ - background: $tc-gray-80; - box-shadow: inset 0px 1px 3px 0px $tc-rgba-10; - &:before{ - background: url("../../styles/i/icon-filter.png") left -16px no-repeat; - background-size: 14px 32px; - } - } - } - - .filter-indicator { - width: 15px; - height: 15px; - margin-left: $base-unit; - background-color: $tc-dark-blue-90; - border-radius: 26px; - color: $tc-white; - display: flex; - justify-content: center; - align-items: center; - } - } - } - .welcome-info{ - // position: absolute; - // right: 20px; - // top: 0; - // z-index:2; - height: 60px; - font-size: 13px; - color: $tc-gray-50; - display: flex; - justify-content: space-between; - @include roboto-medium; - >.tc-btn{ - margin-top: 15px; - border: 0; - width: 116px; - text-align: center; - } - .avatar-info{ - position: relative; - margin-left: 20px; - display: flex; - align-items: center; - .avatar{ - width: 30px; - height: 30px; - background-color: $tc-dark-blue-70 ; - border-radius: 15px; - overflow: hidden; - text-align: center; - line-height: 30px; - color: $tc-white; - @include roboto-medium; - font-size: 15px; - position: absolute; - left: 0; - top: 15px; - img{ - width: 30px; - height: 30px; - border-radius: 15px; - } - } - .avatar-link{ - display: inline-block; - padding-right: 16px; - position: relative; - &:after{ - display: block; - content: ''; - width: 10px; - position: absolute; - right: 0; - top: 50%; - margin-top: -4px; - height: 7.5px; - //background: url("../../styles/i/arrow-down-black.png") right center no-repeat; - background-size: 10px 7.5px; - } - } - } - .tc-btn-primary{ - margin-left: 7px; - color: $tc-white; - } - } - } - } - - &.tc-header__connect-project{ - padding: 0; - min-height: 60px; - height: auto; - .top-bar{ - display: flex; - height: 60px; - background-color: $tc-black; - padding: 0 20px; - .bar-column:first-child{ - display: flex; - width: calc(100% - 560px); - } - .bar-column:last-child{ - width: 560px; - display: flex; - } - .logo-wrapper{ - width: 110px; - } - .breadcrumb{ - @include roboto-light; - font-size: 20px; - color: $tc-gray-10; - position: relative; - overflow: hidden; - text-overflow: ellipsis; - display: flex; - span { - display:block; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - padding-right: $base-unit * 12; - } - a { - display:block; - flex-shrink: 0; - color: $tc-gray-50; - &:hover, &.hover{ - text-decoration: none; - color: $tc-orange-30; - } - } - } - .bar-column .welcome-info{ - width: 70px; - padding-left: 20px; - margin-left: auto; - display: flex; - align-items: center; - } - .avatar-info{ - position: relative; - .Dropdown { - min-width: 100px; - right: 0; - left: auto; - } - .username { - display: none; - } - .avatar{ - width: 30px; - height: 30px; - background-color: $tc-dark-blue-70 ; - border-radius: 15px; - overflow: hidden; - text-align: center; - line-height: 28px; - color: $tc-white; - @include roboto-medium; - font-size: 15px; - position: absolute; - left: 0; - top: 0; - img{ - width: 30px; - height: 30px; - border-radius: 15px; - } - } - .avatar-link-arrow{ - display: block; - width: 10px; - height: 30px; - //background: url("../../styles/i/arrow-down-black.png") right center no-repeat; - background-size: 10px 7.5px; - } - } - } - } - .nav{ - padding-right: 5px; - height: 20px; - margin-top: 20px; - border-right: 1px solid $tc-gray-80; - flex: 1; - ul{ - width: 484px; - height: 20px; - display: flex; - justify-content: flex-end; - margin: 0; - padding: 0; - } - ul li{ - padding: 0 15px; - height: 20px; - line-height: 20px; - text-align: center; - vertical-align: middle; - &:first-child{ - padding-left: 0; - } - a{ - display: inline-block; - @include roboto-medium; - font-size: $tc-label-md; - color: $tc-gray-50; - line-height: 20px; - position: relative; - padding-left: 26px; - /* menu icons */ - >i{ - display: block; - width: 16px; - height: 16px; - position: absolute; - left: 0; - top: 2px; - &.icon-dashboard{ - background: url("../../styles/i/icon-dashboard.svg") left top no-repeat; - } - &.icon-specification{ - background: url("../../styles/i/icon-ruler-pencil.svg") left top no-repeat; - } - &.icon-challenges{ - background: url("../../styles/i/icon-hammer.svg") left top no-repeat; - } - &.icon-messages{ - background: url("../../styles/i/icon-chat.svg") left top no-repeat; - } - } - } - &:hover, &.hover{ - a, a:hover{ - color: $tc-orange-30; - >i{ - &.icon-dashboard{ - background: url("../../styles/i/icon-dashboard-hover.svg") left top no-repeat; - } - &.icon-specification{ - background: url("../../styles/i/icon-ruler-pencil-hover.svg") left top no-repeat; - } - &.icon-challenges{ - background: url("../../styles/i/icon-hammer-hover.svg") left top no-repeat; - } - &.icon-messages{ - background: url("../../styles/i/icon-chat-hover.svg") left top no-repeat; - } - } - } - } - a.active, a.active:hover{ - color: $tc-orange-70; - >i{ - &.icon-dashboard{ - background: url("../../styles/i/icon-dashboard-active.svg") left top no-repeat; - } - &.icon-specification{ - background: url("../../styles/i/icon-ruler-pencil-active.svg") left top no-repeat; - } - &.icon-challenges{ - background: url("../../styles/i/icon-hammer-active.svg") left top no-repeat; - } - &.icon-messages{ - background: url("../../styles/i/icon-chat-active.svg") left top no-repeat; - } - } - } - } - } - - .breadcrumb-tooltip{ - @include roboto(); - word-break: break-word; - position: absolute; - left: calc(50% - 240px - 230px); - top: 56px; - width: 480px; - padding: 15px; - font-size: 13px; - line-height: 20px; - font-weight: 500; - color: $tc-white; - background-color: $tc-gray-80; - border-radius: 4px; - z-index: 10; - &:before{ - display: block; - content: ''; - position: absolute; - left: 50%; - top: -7px; - margin-left: -7px; - width: 0; - height: 0; - border: 7px solid $tc-gray-80; - border-top: 0; - border-left-color: transparent; - border-right-color: transparent; - } - } -} - - -/* .bar__search */ -.bar__search{ - position: relative; - min-height: 60px; - padding: 0 20px; - background-color: $tc-gray-neutral-light; - display: flex; - width: 100%; - h2{ - font-size: $tc-body-large; - line-height: 60px; - color: $tc-black; - width: 120px; - white-space: nowrap; - } - .bar-control{ - width: 120px; - text-align: right; - min-height: 30px; - padding-top: 15px; - .tc-btn{ - display: inline-block; - height: 30px; - white-space: nowrap; - } - } - .search-panel{ - flex: 1; - margin: 0 auto; - text-align: center; - display: flex; - justify-content: center; - padding-top: 15px; - flex-wrap: wrap; - label{ - @include roboto-medium; - width: 83px; - display: inline-block; - line-height: 30px; - height: 30px; - font-size: 13px; - color: $tc-gray-70; - text-align: right; - } - .search-select-widget{ - width: 280px; - margin-left: 10px; - display: inline-block; - } - } - .SwitchButton { - .label { - padding-right: 10px; - } - } -} - - - -@media all and (max-width: 1023px) { - .tc-header{ - &.tc-header__connect{ - .top-bar .search-bar{ - width: 383px; - margin-left: 110px; - .search-widget{ - width: 296px; - } - &.search-bar-single .search-widget{ - width: 383px; - } - } - .top-bar .welcome-info .avatar-info .avatar-link{ - text-indent: -9999px; - width: 10px; - padding-right: 0; - } - } - &.tc-header__connect-project{ - .top-bar{ - &:after{ - display: block; - content: ''; - width: 0; - height: 0; - clear: both; - overflow: hidden; - } - .bar-column:first-child{ - width: calc(100% - 215px); - } - .bar-column:last-child{ - width: 215px; - } - .logo-wrapper{ - width: 90px; - } - .breadcrumb .breadcrumb-tooltip{ - left: 28px; - } - } - } - .nav{ - padding-right: 10px; - ul{ - width: 134px; - } - ul li{ - padding: 0 10px; - &:first-child { - padding-left: 0; - } - a{ - padding-left: 16px; - text-indent: -9999px; - } - } - } - } - .bar__search{ - h2{ - width: 110px; - } - .search-panel{ - flex: 1; - margin: 0 auto; - text-align: left; - display: flex; - justify-content: flex-start; - label{ - width: auto; - margin-left: 30px; - &.first{ - margin-left: 0; - } - } - .search-select-widget { - width: 170px; - } - } - } -} diff --git a/src/components/TopBar/TopBarContainer.js b/src/components/TopBar/TopBarContainer.js index 322100221..e5e8c28ec 100644 --- a/src/components/TopBar/TopBarContainer.js +++ b/src/components/TopBar/TopBarContainer.js @@ -1,22 +1,13 @@ import React, {PropTypes} from 'react' import { connect } from 'react-redux' +import { Link } from 'react-router' import _ from 'lodash' -import Modal from 'react-modal' -import { createProject as createProjectAction } from '../../projects/actions/project' -import { projectSuggestions, loadProjects } from '../../projects/actions/loadProjects' -import TopBar from './TopBar' -import CoderBot from '../CoderBot/CoderBot' -import ModalControl from '../ModalControl' -import SVGIconImage from '../SVGIconImage' -import ProjectWizard from '../../projects/create/components/ProjectWizard' -import { TCEmitter } from '../../helpers' +import { UserDropdown, Icons } from 'appirio-tech-react-components' +const { ConnectLogo } = Icons import { - ROLE_CONNECT_COPILOT, - ROLE_CONNECT_MANAGER, - ROLE_ADMINISTRATOR, - EVENT_ROUTE_CHANGE, ACCOUNTS_APP_LOGIN_URL, - ACCOUNTS_APP_REGISTER_URL + ACCOUNTS_APP_REGISTER_URL, + DOMAIN } from '../../config/constants' require('./TopBarContainer.scss') @@ -24,145 +15,94 @@ class TopBarContainer extends React.Component { constructor(props) { super(props) - this.state = { - isFilterVisible: false, - isCreateProjectModalVisible : false, - errorCreatingProject: false - } - this.RouteChangeListener = null - this.applyFilters = this.applyFilters.bind(this) - this.toggleFilter = this.toggleFilter.bind(this) - this.showCreateProjectDialog = this.showCreateProjectDialog.bind(this) - this.hideCreateProjectDialog = this.hideCreateProjectDialog.bind(this) - } - - componentWillMount() { - this.setState({currentPath: window.location.pathname}) - this.RouteChangeListener = TCEmitter.addListener(EVENT_ROUTE_CHANGE, (path) => { - this.setState({currentPath: path}) - }) - } - - componentWillReceiveProps(nextProps) { - // if new project is created successfully - if (this.props.creatingProject && !nextProps.creatingProject) { - if (!nextProps.projectCreationError - && nextProps.project && nextProps.project.id) { - this.hideCreateProjectDialog() - this.context.router.push('/projects/' + nextProps.project.id) - } else { - this.setState({ - errorCreatingProject: true - }) - } - } } - componentDidUpdate() { - const isProjectDetails = /projects\/\d+/.test(this.state.currentPath) - const contentDiv = document.getElementById('wrapper-main') - if (!isProjectDetails && this.state.isFilterVisible) { - contentDiv.classList.add('with-filters') - } else { - contentDiv.classList.remove('with-filters') + handleMobileClick(se) { + const mobileMenuLink = se.target.querySelector('.mobile-wrap > a') + if (mobileMenuLink) { + mobileMenuLink.click() } } - toggleFilter() { - const {isFilterVisible} = this.state - const contentDiv = document.getElementById('wrapper-main') - this.setState({isFilterVisible: !isFilterVisible}, () => { - if (this.state.isFilterVisible) { - contentDiv.classList.add('with-filters') - } else { - contentDiv.classList.remove('with-filters') - } - }) - } - - componentWillUnmount() { - this.RouteChangeListener && this.RouteChangeListener.remove() - } - - showCreateProjectDialog() { - this.setState({ - isCreateProjectModalVisible : true - }) - } - - hideCreateProjectDialog() { - this.setState({ - isCreateProjectModalVisible : false, - errorCreatingProject: false - }) - } - - applyFilters(filter) { - const criteria = _.assign({}, this.props.criteria, filter) - if (criteria && criteria.keyword) { - criteria.keyword = encodeURIComponent(criteria.keyword) - // force sort criteria to best match - criteria.sort = 'best match' - } - this.routeWithParams(criteria, 1) - } - - routeWithParams(criteria, page) { - // remove any null values - criteria = _.pickBy(criteria, _.identity) - this.context.router.push({ - pathname: '/projects/', - query: _.assign({}, criteria, { page }) - }) - this.props.loadProjects(criteria, page) - } - render() { - const {isCreateProjectModalVisible, currentPath, isFilterVisible, errorCreatingProject } = this.state - const { userRoles } = this.props - const isProjectDetails = /projects\/\d+/.test(currentPath) + const { user, userRoles, toolbar } = this.props + console.log(typeof toolbar) + + const userHandle = _.get(user, 'handle') + const userImage = _.get(user, 'profile.photoURL') + const userFirstName = _.get(user, 'profile.firstName') + const userLastName = _.get(user, 'profile.lastName') + let userName = userFirstName + if (userName && userLastName) { + userName += ' ' + userLastName + } + const homePageUrl = `${window.location.protocol}//${window.location.host}/` + const logoutLink = `https://accounts.${DOMAIN}/#!/logout?retUrl=${homePageUrl}` + const isLoggedIn = userRoles && userRoles.length + const logoTargetUrl = isLoggedIn ? '/projects' : '/' const isHomePage = this.context.router.isActive('/', true) // NOTE: hardcoding to connectv2, once connect v1 window.host const loginUrl = `${ACCOUNTS_APP_LOGIN_URL}?retUrl=${window.location.protocol}//${window.location.host}/` const registerUrl = !isHomePage ? ACCOUNTS_APP_REGISTER_URL : null + + const logoutClick = (evt) => { + evt.preventDefault() + window.analytics && window.analytics.reset() + window.location = logoutLink + } + + const userMenuItems = [ + [ + { label: 'Help', link: 'https://help.topcoder.com/hc/en-us', absolute: true, id: 0 } + ], + [ + { label: 'Log out', onClick: logoutClick, absolute: true, id: 0 } + ] + ] + const logo = ( +
    + +
    + ) + + const avatar = ( +
    +
    +
    +
    + +
    +
    +
    +
    + ) + let ToolBar = null + ToolBar = typeof toolbar === 'function' ? toolbar : null + ToolBar = toolbar && typeof toolbar.type === 'function' ? toolbar.type : ToolBar return (
    - - } - label="esc" - onClick={ this.hideCreateProjectDialog } - /> - { !errorCreatingProject && - {} } - onProjectUpdate={ () => {} } - userRoles={ userRoles } - /> - } - { errorCreatingProject && } - - +
    +
    + { + ToolBar && + + } +
    +
    ) } @@ -172,25 +112,13 @@ TopBarContainer.contextTypes = { router: PropTypes.object.isRequired } -const mapStateToProps = ({ projectSearchSuggestions, searchTerm, projectSearch, projectState, loadUser }) => { - let isPowerUser = false - const roles = [ROLE_CONNECT_COPILOT, ROLE_CONNECT_MANAGER, ROLE_ADMINISTRATOR] - if (loadUser.user) { - isPowerUser = loadUser.user.roles.some((role) => roles.indexOf(role) !== -1) - } +const mapStateToProps = ({ loadUser }) => { return { - projects : projectSearchSuggestions.projects, - previousSearchTerm : searchTerm.previousSearchTerm, - searchTermTag : searchTerm.searchTermTag, - project : projectState.project, - creatingProject : projectState.processing, - projectCreationError : projectState.error, - criteria : projectSearch.criteria, userRoles : _.get(loadUser, 'user.roles', []), - isPowerUser + user : loadUser.user } } -const actionsToBind = { projectSuggestions, loadProjects, createProjectAction } +const actionsToBind = { } export default connect(mapStateToProps, actionsToBind)(TopBarContainer) diff --git a/src/components/TopBar/TopBarContainer.scss b/src/components/TopBar/TopBarContainer.scss index 7d8e93245..c5b276264 100644 --- a/src/components/TopBar/TopBarContainer.scss +++ b/src/components/TopBar/TopBarContainer.scss @@ -1,53 +1,134 @@ @import 'tc-includes'; -.project-creation-dialog-overlay { - position : fixed; - top : 0; - left : 0; - right : 0; - bottom : 0; - z-index: 21;/* +1 of the z-index of the topbar */ - background-color: $tc-gray-neutral-dark; - overflow-y: scroll; - - section.content { - padding: 1px 0; - } +.tc-header { + height: 60px; + // background: $tc-gray-neutral-light; + line-height: 60px; + height: 60px; + background-color: $tc-black; + z-index: 20; + padding: 0 20px; + position: fixed; + top: 0; + left: 0; + right: 0; + + .logo-wrapper { + width: 60px; + height: 60px; + flex-shrink: 0; - .escape-button { - position: absolute; - right: 12px; - top: 12px; - z-index: 22;/* +1 from z-index of the modal overlay */ + .logo { + display: inline-block; + position: relative; + margin-top: 12px; + // width: 60px; + // height: 36px; + } } -} -.project-creation-dialog { - top: 0px; - left: 0px; + .UserDropdownMenu { + padding: 0; + display: flex; + align-content: center; + text-align: left; + } - .Wizard .content { - margin: 0 auto; - width: 100%; - min-height: 100vh; + .sb-avatar { + display: block !important; } - .TextInput.project-name, - .TextInput.project-ref-code { - height: 45px; + + &.tc-header__connect{ + padding: 0; + min-height: 60px; + height: auto; + + .top-bar { + height: 60px; + background-color: $tc-black; + position: relative; + + .welcome-info { + height: 60px; + font-size: 13px; + color: $tc-gray-50; + display: flex; + justify-content: space-between; + @include roboto-medium; + >.tc-btn{ + margin-top: 15px; + border: 0; + width: 116px; + text-align: center; + } + .avatar-info { + position: relative; + margin-left: 20px; + display: flex; + align-items: center; + .avatar { + width: 30px; + height: 30px; + background-color: $tc-dark-blue-70 ; + border-radius: 15px; + overflow: hidden; + text-align: center; + line-height: 30px; + color: $tc-white; + @include roboto-medium; + font-size: 15px; + position: absolute; + left: 0; + top: 15px; + img { + width: 30px; + height: 30px; + border-radius: 15px; + } + } + .avatar-link { + display: inline-block; + padding-right: 16px; + position: relative; + &:after{ + display: block; + content: ''; + width: 10px; + position: absolute; + right: 0; + top: 50%; + margin-top: -4px; + height: 7.5px; + //background: url("../../styles/i/arrow-down-black.png") right center no-repeat; + background-size: 10px 7.5px; + } + } + } + .tc-btn-primary { + margin-left: 7px; + color: $tc-white; + } + } + } } } -/*.project-creation-dialog-close { - cursor: pointer; - position: fixed; - top: 20px; - right: 20px; - width: 40px; - height: 40px; - text-align: center; - - & .x-mark-icon { - width: 100%; - height: 100%; +@media all and (max-width: 1023px) { + .tc-header{ + &.tc-header__connect{ + .top-bar .search-bar{ + width: 383px; + margin-left: 110px; + .search-widget{ + width: 296px; + } + } + .top-bar .welcome-info .avatar-info .avatar-link{ + text-indent: -9999px; + width: 10px; + padding-right: 0; + } + } + } -}*/ \ No newline at end of file +} \ No newline at end of file diff --git a/src/projects/ProjectLayout.jsx b/src/projects/ProjectLayout.jsx index 84999507d..9bef72401 100644 --- a/src/projects/ProjectLayout.jsx +++ b/src/projects/ProjectLayout.jsx @@ -8,15 +8,15 @@ class ProjectViewLayout extends Component { } render() { - const {topbar, main} = this.props + const { main } = this.props return (
    - {topbar}
    {main}
    ) + // return this.props.children } } diff --git a/src/projects/routes.jsx b/src/projects/routes.jsx index ee0c47092..45c3025c8 100644 --- a/src/projects/routes.jsx +++ b/src/projects/routes.jsx @@ -3,6 +3,9 @@ import { Route, IndexRoute } from 'react-router' import ProjectLayout from './ProjectLayout' import Projects from './list/components/Projects/Projects' +import TopBarContainer from '../components/TopBar/TopBarContainer' +import ProjectsToolBar from '../components/TopBar/ProjectsToolBar' +import ProjectToolBar from '../components/TopBar/ProjectToolBar' import ProjectDetail from './detail/ProjectDetail' import Dashboard from './detail/Dashboard' import ProjectMessages from './detail/Messages' @@ -11,10 +14,10 @@ import { requiresAuthentication } from '../components/AuthenticatedComponent' const projectRoutes = ( - + , content: requiresAuthentication(ProjectLayout)}}> // TODO add project topbar - - + + // diff --git a/src/routes.jsx b/src/routes.jsx index 73ed2f966..bfe7e4851 100644 --- a/src/routes.jsx +++ b/src/routes.jsx @@ -6,6 +6,8 @@ import Home from './components/Home/Home' import ConnectTerms from './components/ConnectTerms/ConnectTerms' import CoderBot from './components/CoderBot/CoderBot' import projectRoutes from './projects/routes.jsx' +import TopBarContainer from './components/TopBar/TopBarContainer' +import ProjectsToolBar from './components/TopBar/ProjectsToolBar' import RedirectComponent from './components/RedirectComponent' import CreateContainer from './projects/create/containers/CreateContainer' import {ACCOUNTS_APP_LOGIN_URL, PROJECT_FEED_TYPE_PRIMARY, PROJECT_FEED_TYPE_MESSAGES } from './config/constants' @@ -74,20 +76,22 @@ const redirectToProject = (nextState, replace, callback) => { }) } +const renderTopBarWithProjectsToolBar = () => + export default ( window.scrollTo(0, 0)} component={ App } onEnter={ redirectToConnect }> - - - - - + + + + + {/* Handle /projects/* routes */} {projectRoutes} {/* {reportsListRoutes} */} - }/> - }/> + }} /> + }} /> ) From 825dc6d0af27f7e58bff4b40dd863b5efbf4339e Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 9 Jun 2017 15:16:48 +0530 Subject: [PATCH 25/89] =?UTF-8?q?Github=20issue#892,=20Remove=20TopBar=20c?= =?UTF-8?q?omponent=20for=20logged=20out=20view=20of=20the=20project=20cre?= =?UTF-8?q?ation=20flow=20=E2=80=94=20Removed=20unused=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/TopBar/TopBar.jsx | 161 ------------------------------ src/components/TopBar/TopBar.scss | 18 ---- 2 files changed, 179 deletions(-) delete mode 100644 src/components/TopBar/TopBar.jsx delete mode 100644 src/components/TopBar/TopBar.scss diff --git a/src/components/TopBar/TopBar.jsx b/src/components/TopBar/TopBar.jsx deleted file mode 100644 index d2e39ef0c..000000000 --- a/src/components/TopBar/TopBar.jsx +++ /dev/null @@ -1,161 +0,0 @@ -require('./TopBar.scss') - -import React, {PropTypes, Component} from 'react' -import { Link } from 'react-router' -import cn from 'classnames' -import _ from 'lodash' -import { UserDropdown, Icons } from 'appirio-tech-react-components' - -const { ConnectLogo } = Icons -import { SearchBar } from 'appirio-tech-react-components' -import Filters from './Filters' -import ProjectToolBar from './ProjectToolBar' -import { DOMAIN } from '../../config/constants' - - -class TopBar extends Component { - - constructor(props) { - super(props) - this.state = { - isCreatingProject: false - } - this.handleMobileClick = this.handleMobileClick.bind(this) - this.handleTermChange = this.handleTermChange.bind(this) - this.handleSearch = this.handleSearch.bind(this) - this.handleMyProjectsFilter = this.handleMyProjectsFilter.bind(this) - } - - /*eslint-disable no-unused-vars */ - handleTermChange(oldTerm, searchTerm, reqNo, callback) { - this.props.projectSuggestions(searchTerm) - callback(reqNo, this.props.projects) - } - /*eslint-enable */ - - handleSearch(keyword) { - this.props.applyFilters({ keyword }) - } - - handleMyProjectsFilter(event) { - this.props.applyFilters({memberOnly: event.target.checked}) - } - - handleMobileClick(se) { - const mobileMenuLink = se.target.querySelector('.mobile-wrap > a') - if (mobileMenuLink) { - mobileMenuLink.click() - } - } - - render() { - const { - userHandle, userImage, userName, domain, criteria, onNewProjectIntent, applyFilters, isProjectDetails, project, - isPowerUser, loginUrl, registerUrl, isFilterVisible - } = this.props - const homePageUrl = `${window.location.protocol}//${window.location.host}/` - const logoutLink = `https://accounts.${domain}/#!/logout?retUrl=${homePageUrl}` - const isLoggedIn = !!userHandle - const logoTargetUrl = isLoggedIn ? '/projects' : '/' - - const logoutClick = (evt) => { - evt.preventDefault() - window.analytics && window.analytics.reset() - window.location = logoutLink - } - - const userMenuItems = [ - [ - { label: 'Help', link: 'https://help.topcoder.com/hc/en-us', absolute: true, id: 0 } - ], - [ - { label: 'Log out', onClick: logoutClick, absolute: true, id: 0 } - ] - ] - const logo = ( -
    - -
    - ) - console.log(isLoggedIn) - const avatar = ( -
    - {isLoggedIn && !isProjectDetails && + New Project } -
    -
    -
    - -
    -
    -
    -
    - ) - - if (isProjectDetails) { - return - } - const noOfFilters = _.keys(criteria).length - 1 // -1 for default sort criteria - - return ( - // -
    -
    - {logo} -
    - {isLoggedIn &&
    - -
    } - {isPowerUser && } -
    - {avatar} -
    - {isFilterVisible && - - } -
    - //
    - ) - } -} - -TopBar.propTypes = { - userHandle : PropTypes.string, - userImage : PropTypes.string, - // domain : PropTypes.string.isRequired, - mobileMenuUrl : PropTypes.string, - mobileSearchUrl : PropTypes.string, - criteria : PropTypes.object.isRequired -} - -TopBar.defaultProps = { - mobileMenuUrl : '/menu', - mobileSearchUrl : '/search' -} - -export default TopBar diff --git a/src/components/TopBar/TopBar.scss b/src/components/TopBar/TopBar.scss deleted file mode 100644 index 91098f921..000000000 --- a/src/components/TopBar/TopBar.scss +++ /dev/null @@ -1,18 +0,0 @@ -// this is to include tc styles in the output library -@import 'tc-includes'; - -// TODO: move to includes -$tc-rgba-10: rgba(71,71,79,0.38); -$tc-rgba-20: rgba(0,0,0,0.17); -$tc-body-large : 20px; - -// .sticky-inner-wrapper { -// z-index: 15; -// } - -// .container .sticky-inner-wrapper, -// .dashboard-container .sticky-inner-wrapper { -// z-index: 14; -// } - - From 72c08937262b46161eeeb18d59e3fdce97c10aaf Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 9 Jun 2017 15:49:44 +0530 Subject: [PATCH 26/89] =?UTF-8?q?Github=20issue#896,=20Fix=20Tab=20sequenc?= =?UTF-8?q?e=20for=20project=20details=20form=20in=20project=20creation=20?= =?UTF-8?q?flow=20=E2=80=94=20Updated=20uses=20of=20TiledRadioGroup=20comp?= =?UTF-8?q?onent=20to=20be=20tabable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/components/SpecQuestions.jsx | 2 +- .../detail/containers/Specification.scss | 48 ------------------- 2 files changed, 1 insertion(+), 49 deletions(-) diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx index ca18eeb63..17cb09483 100644 --- a/src/projects/detail/components/SpecQuestions.jsx +++ b/src/projects/detail/components/SpecQuestions.jsx @@ -90,7 +90,7 @@ const SpecQuestions = ({questions, project, dirtyProject, resetFeatures, showFea break case 'tiled-radio-group': ChildElem = TCFormFields.TiledRadioGroup - _.assign(elemProps, {wrapperClass: 'row', options: q.options}) + _.assign(elemProps, {wrapperClass: 'row', options: q.options, theme: 'dark', tabable: true}) // child = break case 'see-attached-tiled-radio-group': diff --git a/src/projects/detail/containers/Specification.scss b/src/projects/detail/containers/Specification.scss index 7bb65aab5..b82395a7c 100644 --- a/src/projects/detail/containers/Specification.scss +++ b/src/projects/detail/containers/Specification.scss @@ -850,51 +850,3 @@ $title-color: $tc-gray-80; } } } - -.two-col-content.content .container .tiled-group-item { - border: 1px solid $tc-gray-20; - border-radius: 4px; - display: inline-block; - margin: 10px 10px 0; - position: relative; - vertical-align: top; - .check-mark { - background: $tc-dark-blue-90; - border-radius: 2px; - display: none; - height: 15px; - position: absolute; - right: 15px; - top: 15px; - width: 15px; - .Icon { - position: relative; - margin: 0; - top: -5px; - } - } - &.disabled { - opacity: 0.3 - } - &:hover { - border-color: $tc-dark-blue-70; - cursor: pointer; - .icon { - color: $tc-dark-blue-70; - } - } - - &.active { - background: $tc-gray-10; - border-color: transparent; - &:hover { - border-color: transparent; - .icon span { - color: $tc-gray-70; - } - } - .check-mark { - display: block; - } - } -} From 0c1a3a1fd26d8cedd7ea9f7ac19845351c6d2893 Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Mon, 12 Jun 2017 22:38:38 +0300 Subject: [PATCH 27/89] Styling Product catalogue page --- package-lock.json | 7919 +++++++++++++++++ package.json | 2 +- src/components/TopBar/ProjectsToolBar.scss | 5 +- .../create/components/ProductCard.scss | 14 +- .../create/components/SelectProduct.scss | 40 +- 5 files changed, 7969 insertions(+), 11 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..1fd309230 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7919 @@ +{ + "name": "connect-app", + "version": "1.1.0", + "lockfileVersion": 1, + "dependencies": { + "Base64": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.1.4.tgz", + "integrity": "sha1-6fbGvvVn/WNepBYqsU3TKedKpt4=" + }, + "abab": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz", + "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=", + "dev": true, + "optional": true + }, + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true + }, + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "dev": true + }, + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + }, + "acorn-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", + "dev": true, + "dependencies": { + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true + }, + "ajv-keywords": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", + "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=" + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "angucomplete-alt": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/angucomplete-alt/-/angucomplete-alt-2.5.0.tgz", + "integrity": "sha1-rsLmnVD7E7lCmgxP0oqPIYwGUEo=" + }, + "angular": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/angular/-/angular-1.6.4.tgz", + "integrity": "sha1-A7exXAGggC1+LPWTJA5gQFTcd/s=" + }, + "angular-cookies": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/angular-cookies/-/angular-cookies-1.6.4.tgz", + "integrity": "sha1-wo8/aqx6mCbB5F8daAckADblsm0=" + }, + "angular-jwt": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/angular-jwt/-/angular-jwt-0.0.9.tgz", + "integrity": "sha1-kSWHtSAYnSjQiURsf6rzDvdTQxM=" + }, + "angular-messages": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/angular-messages/-/angular-messages-1.6.4.tgz", + "integrity": "sha1-nsnBOTKTsU3lQWHS+El3ZInpgP4=" + }, + "angular-mocks": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/angular-mocks/-/angular-mocks-1.6.4.tgz", + "integrity": "sha1-R/31CSHPJPtInxAKjPKtmdBTj0A=", + "dev": true + }, + "angular-resource": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/angular-resource/-/angular-resource-1.4.14.tgz", + "integrity": "sha1-OCpITi3OJb+7U1g+eD+D5dxb7mQ=" + }, + "angular-scroll": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/angular-scroll/-/angular-scroll-1.0.2.tgz", + "integrity": "sha1-J2j/NdvhzkDgw/vt1FNIiCmcPi0=" + }, + "angular-storage": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/angular-storage/-/angular-storage-0.0.15.tgz", + "integrity": "sha1-AF1kgImChI2UlyXisr+Qod0nr8E=" + }, + "angular-ui-router": { + "version": "0.2.18", + "resolved": "https://registry.npmjs.org/angular-ui-router/-/angular-ui-router-0.2.18.tgz", + "integrity": "sha1-Ha1wQVxz1wRv0uEw3wPWL7dGQ2A=" + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "anymatch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", + "dev": true + }, + "appirio-tech-api-schemas": { + "version": "5.0.70", + "resolved": "https://registry.npmjs.org/appirio-tech-api-schemas/-/appirio-tech-api-schemas-5.0.70.tgz", + "integrity": "sha1-3RtCG/rw8PSokKRTgHSlVYDQy8s=" + }, + "appirio-tech-client-app-layer": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/appirio-tech-client-app-layer/-/appirio-tech-client-app-layer-0.1.3.tgz", + "integrity": "sha1-uO5YdHMM2r209RE8NMQvwOsxoOs=", + "dependencies": { + "axios": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.8.1.tgz", + "integrity": "sha1-4Or+wPNGE5Un3Dt5/cv/gDSiQEU=" + }, + "react": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", + "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=" + }, + "react-dom": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz", + "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM=" + }, + "react-router": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-1.0.3.tgz", + "integrity": "sha1-mA7KoFW4bkfIZUjCMq4FqIpB8Lc=" + }, + "redux-thunk": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz", + "integrity": "sha1-jjR2BoCLNb+Kkn30YW9v7RAYJuU=" + } + } + }, + "appirio-tech-ng-auth": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/appirio-tech-ng-auth/-/appirio-tech-ng-auth-4.2.6.tgz", + "integrity": "sha1-xCW9T6ans536yQ7jZCqv8L0YNco=", + "dependencies": { + "angular": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/angular/-/angular-1.4.14.tgz", + "integrity": "sha1-nQ/q9gzm5SzlD0nuMoZW0eGHXDc=" + } + } + }, + "appirio-tech-ng-iso-constants": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/appirio-tech-ng-iso-constants/-/appirio-tech-ng-iso-constants-1.0.6.tgz", + "integrity": "sha1-1r3R9xB/KEPjeX0UTgVH8vSkY3M=" + }, + "appirio-tech-ng-ui-components": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/appirio-tech-ng-ui-components/-/appirio-tech-ng-ui-components-2.2.4.tgz", + "integrity": "sha1-h86LqWrC+BuGjo3z1d5e0Qvt2no=", + "dependencies": { + "angular": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/angular/-/angular-1.4.14.tgz", + "integrity": "sha1-nQ/q9gzm5SzlD0nuMoZW0eGHXDc=" + }, + "moment": { + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.10.6.tgz", + "integrity": "sha1-bLIZZ8ecunsMpeZmRPFzZis++nc=" + }, + "react": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", + "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=" + }, + "react-dom": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz", + "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM=" + } + } + }, + "appirio-tech-ng-work-constants": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/appirio-tech-ng-work-constants/-/appirio-tech-ng-work-constants-0.0.1.tgz", + "integrity": "sha1-yo0qWoxV8/nbyq5yE19ph/zZH1k=" + }, + "appirio-tech-react-components": { + "version": "github:appirio-tech/react-components#9e994ab7618e0872bfddf34d5a069c9ca0688a00" + }, + "appirio-tech-webpack-config": { + "version": "github:appirio-tech/webpack-config#ddc36a13fe3c37baafe8e4c2b1d7a5b0c7ae1d38", + "dev": true, + "dependencies": { + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true + }, + "clean-css": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.3.tgz", + "integrity": "sha1-B8/omA7bINRV3cI6rc8eBMblCc4=", + "dev": true + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "html-minifier": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.2.tgz", + "integrity": "sha1-1zvD/0SJQkCIGM5gm/P7DqfvTrc=", + "dev": true + }, + "html-webpack-plugin": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.28.0.tgz", + "integrity": "sha1-LnhjtX5f1I/iYzA+L/yTTDBk0Ak=", + "dev": true + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "uglify-js": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.15.tgz", + "integrity": "sha1-qssyOoRrI0YCJw3q2KMkQaiAb0I=", + "dev": true + } + } + }, + "aproba": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", + "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true + }, + "arr-flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", + "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz", + "integrity": "sha1-UidltQw1EEkOUtfc/ghe+bqWlY8=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "assertion-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", + "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", + "dev": true + }, + "ast-types": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", + "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=" + }, + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "attr-accept": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-1.1.0.tgz", + "integrity": "sha1-tc01In8WOTWo8d4Q7T66FpQfa+Y=" + }, + "auth0-angular": { + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/auth0-angular/-/auth0-angular-4.2.7.tgz", + "integrity": "sha1-Y9n/uAlhfRBRGlD0JwMAuAp/ptk=" + }, + "auth0-js": { + "version": "6.8.4", + "resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-6.8.4.tgz", + "integrity": "sha1-Qw3Uystk2NFdabHmIRhPmipkCmE=" + }, + "auto-config-fake-server": { + "version": "2.0.604", + "resolved": "https://registry.npmjs.org/auto-config-fake-server/-/auto-config-fake-server-2.0.604.tgz", + "integrity": "sha1-FY5RTIR5nRQ5iNw/w7mpkwnNhkY=" + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "axios": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.13.1.tgz", + "integrity": "sha1-Pmer/kMzvJ0tX+b70TtGlOr8jfg=" + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "dev": true + }, + "babel-core": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz", + "integrity": "sha1-jEKFZNzh4fQfszfsNPTDsCK1rYM=", + "dev": true, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz", + "integrity": "sha1-5xX0hsWN7SVknYiJRNUqoHxdlJc=", + "dev": true, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true + }, + "babel-helper-builder-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz", + "integrity": "sha1-CteRfjPI11HmRtrKTnfMGTd9LLw=", + "dev": true + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true + }, + "babel-helper-define-map": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", + "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=", + "dev": true + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true + }, + "babel-helper-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", + "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=", + "dev": true + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true + }, + "babel-loader": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz", + "integrity": "sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true + }, + "babel-plugin-lodash": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-lodash/-/babel-plugin-lodash-2.3.0.tgz", + "integrity": "sha1-QWbI88pSqpW+nhg50kWD5wqFfsI=", + "dev": true + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dev": true + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", + "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", + "dev": true + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", + "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz", + "integrity": "sha1-h11ryb52HFiirj/u5dxIldjH+SE=", + "dev": true + }, + "babel-plugin-transform-react-display-name": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.23.0.tgz", + "integrity": "sha1-Q5iRDDWEQdxM7xh4cmTQQS7Tazc=", + "dev": true + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true + }, + "babel-plugin-transform-regenerator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", + "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", + "dev": true + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true + }, + "babel-polyfill": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", + "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", + "dependencies": { + "core-js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" + } + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true + }, + "babel-register": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", + "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", + "dev": true, + "dependencies": { + "core-js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "dev": true + } + } + }, + "babel-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "dependencies": { + "core-js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" + } + } + }, + "babel-template": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz", + "integrity": "sha1-BK5RTx+Ts6JTfyoPYKWkX7gwgzM=", + "dev": true + }, + "babel-traverse": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz", + "integrity": "sha1-qzZnP9NW+aCUhlnnszjV/q2zFpU=", + "dev": true + }, + "babel-types": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz", + "integrity": "sha1-oTaHncFbNga9oNkMH8dDBML/CXU=", + "dev": true + }, + "babylon": { + "version": "6.17.2", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.2.tgz", + "integrity": "sha1-IB0l71+JLEG65JSIsI2w3Udun1w=", + "dev": true + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + }, + "base62": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base62/-/base62-1.2.0.tgz", + "integrity": "sha1-MeflYNyEbJ9EwaUx32UU2jVHQVc=" + }, + "base64-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", + "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true + }, + "big.js": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", + "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", + "dev": true + }, + "bignumber.js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.4.0.tgz", + "integrity": "sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg=", + "dev": true + }, + "binary-extensions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", + "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true + }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" + }, + "blueimp-tmpl": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/blueimp-tmpl/-/blueimp-tmpl-2.5.7.tgz", + "integrity": "sha1-M/sSwTnWVRKuQK+9ji3vjZ25ZJA=" + }, + "bmp-js": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.0.3.tgz", + "integrity": "sha1-ZBE+nHzxICs3btYHvzBibr5XsYo=", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true + }, + "bourbon": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/bourbon/-/bourbon-4.3.4.tgz", + "integrity": "sha1-TaOAAp6SwMj5dkx3lFGhNLEefMM=" + }, + "bourbon-neat": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/bourbon-neat/-/bourbon-neat-1.7.2.tgz", + "integrity": "sha1-oiixJ0R53iR20yszFTEHylBTzz0=" + }, + "brace-expansion": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true + }, + "browserify-aes": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", + "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", + "dev": true + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", + "integrity": "sha1-1baAoWW2IBc5rLYRVCqrwtjOsHA=", + "dev": true + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camel-case": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz", + "integrity": "sha1-Gsp8TRlTWaLOmVV5NDPG5VQlEfI=" + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true + }, + "caniuse-db": { + "version": "1.0.30000679", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000679.tgz", + "integrity": "sha1-3XvhLxZXfl1q5tuIDG1hnnfco2U=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=" + }, + "chai": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", + "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true + }, + "change-case": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz", + "integrity": "sha1-LE/ePwY7tB0AzWjg1aCdthy+iU8=" + }, + "change-emitter": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz", + "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU=" + }, + "character-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz", + "integrity": "sha1-wN3kqxgnE7kZuXCVmhI+zBow/NY=", + "dev": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + }, + "cheerio": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz", + "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=", + "dev": true, + "dependencies": { + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "dependencies": { + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + } + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true + } + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true + }, + "circular-json": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", + "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=", + "dev": true + }, + "cjsx-loader": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cjsx-loader/-/cjsx-loader-2.1.0.tgz", + "integrity": "sha1-14OVnJfX4dN0tE2qvvZcoIs6Ozs=", + "dev": true + }, + "clap": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.1.3.tgz", + "integrity": "sha1-s7026T3Uy/s5WjwmiWNSRFJlwFs=", + "dev": true + }, + "classnames": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", + "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=" + }, + "clean-css": { + "version": "3.4.26", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.26.tgz", + "integrity": "sha1-VTI7NE/zvO5oSi6sgck9+Ppz3us=", + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=" + } + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true + }, + "cli-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", + "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=" + }, + "clone": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.2.tgz", + "integrity": "sha1-K6n+w7SqQ9eknX5sNWHpIGG2vOw=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "coffee-loader": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/coffee-loader/-/coffee-loader-0.7.3.tgz", + "integrity": "sha1-+tvG79b8fsyIxbMEaiwpIGa8tUo=", + "dev": true, + "dependencies": { + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true + } + } + }, + "coffee-react-transform": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/coffee-react-transform/-/coffee-react-transform-3.3.0.tgz", + "integrity": "sha1-8fkPoi3o12f8onk+O3Dw99ei5Gc=", + "dev": true + }, + "coffee-script": { + "version": "1.12.6", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.6.tgz", + "integrity": "sha1-KFo/cRVokGUGTWv570Vy22ZpXL8=", + "dev": true + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true + }, + "color-convert": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "dev": true + }, + "color-name": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz", + "integrity": "sha1-XIq3K2S9IhXWF66VWeuxSEdc+Y0=", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "commoner": { + "version": "0.10.8", + "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", + "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=" + }, + "compressible": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz", + "integrity": "sha1-/tocf3YXkScyspv4zyYlKiC57s0=", + "dev": true + }, + "compression": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", + "integrity": "sha1-zOsSHsydCcUtetDDNQ6pPd1AK8M=", + "dev": true, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "compression-webpack-plugin": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-0.2.0.tgz", + "integrity": "sha1-zkVTpHitScvVN0yqopLJ8WvrBV8=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=" + }, + "connect-history-api-fallback": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz", + "integrity": "sha1-5R0X+PDvDbkKZP20feMFFVbp8Wk=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constant-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz", + "integrity": "sha1-jsLKW6ND4Aqjjb9OIA/VrJB+/WM=" + }, + "constantinople": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz", + "integrity": "sha1-S5RdmTeQe82Y7ldRIsOBdRZUQUE=", + "dev": true, + "dependencies": { + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true + } + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", + "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-react-class": { + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.5.3.tgz", + "integrity": "sha1-+w98rnkznpoXnhlO9Gbvo5I4IP4=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "cross-env": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-1.0.8.tgz", + "integrity": "sha1-K950jvx4D1bd8H6mn8rYdTV3dM4=", + "dev": true, + "dependencies": { + "lodash.assign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", + "dev": true + } + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true + }, + "crypto-browserify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", + "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", + "dev": true + }, + "css": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz", + "integrity": "sha1-k4aBHKgrzMnuf7WnMrHioxfIo+c=", + "dev": true + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz", + "integrity": "sha1-n6I/K1wJZSNZEK1ezvO4o2OQ/lA=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "css-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz", + "integrity": "sha1-OLBQP7+dqfVOnB29pg4UXHcRe90=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz", + "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=", + "dev": true + }, + "css-stringify": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz", + "integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE=", + "dev": true + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "dev": true + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "cssom": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "optional": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "deep-diff": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.4.tgz", + "integrity": "sha1-qsXDmVIjar5fA3ojSQYLoBsArkg=" + }, + "deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "dependencies": { + "type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true + } + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "deep-freeze-node": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-freeze-node/-/deep-freeze-node-1.1.2.tgz", + "integrity": "sha1-ujlf4tmGPnoYbXwFrI7kLqSR7R0=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true + }, + "detective": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz", + "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=" + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true + }, + "dom-converter": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", + "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", + "dev": true, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true + } + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", + "dev": true + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "dev": true + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", + "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", + "dev": true + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true + }, + "dot-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz", + "integrity": "sha1-HnOCaQDeKNbeVIC8HeMdCEKwa+w=" + }, + "draft-js": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.7.0.tgz", + "integrity": "sha1-KVBpgNLLltsmlwVPrmGeb1tdQQE=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "draft-js-export-html": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/draft-js-export-html/-/draft-js-export-html-0.4.0.tgz", + "integrity": "sha1-ST1jDzb1TEGeVhHJimbhvhRjObY=" + }, + "draft-js-export-markdown": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/draft-js-export-markdown/-/draft-js-export-markdown-0.2.2.tgz", + "integrity": "sha1-WwoaEFkdi5YZnctwsEsat963KjM=" + }, + "draft-js-utils": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/draft-js-utils/-/draft-js-utils-0.1.7.tgz", + "integrity": "sha1-4raSfKYg7fGFWkv8HPHSEICnDxY=" + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true + } + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.13.tgz", + "integrity": "sha1-GzperObgh7teJXoQCwy/6Bsokfw=", + "dev": true + }, + "element-class": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/element-class/-/element-class-0.2.2.tgz", + "integrity": "sha1-nTu9B2f5AT744cjr5yLBQCpgBQ4=" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=" + }, + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "dependencies": { + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + } + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "envify": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz", + "integrity": "sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg=" + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "dev": true + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true + }, + "es5-ext": { + "version": "0.10.23", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.23.tgz", + "integrity": "sha1-dXi1G+l0IHpUh4IbVlOMIk5Oezg=", + "dev": true + }, + "es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "dev": true + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true + }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", + "dev": true + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", + "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=", + "dev": true, + "dependencies": { + "esprima": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz", + "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk=", + "dev": true + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "optional": true + } + } + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "dependencies": { + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + } + } + }, + "eslint": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-2.13.1.tgz", + "integrity": "sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE=", + "dev": true, + "dependencies": { + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + } + } + }, + "eslint-plugin-react": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-4.3.0.tgz", + "integrity": "sha1-x5qsgGnWLeJ4h8E7gpjVkgiN43g=", + "dev": true + }, + "espree": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", + "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", + "dev": true, + "dependencies": { + "acorn": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", + "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=", + "dev": true + } + } + }, + "esprima-fb": { + "version": "15001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz", + "integrity": "sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE=" + }, + "esrecurse": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", + "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=", + "dev": true, + "dependencies": { + "estraverse": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", + "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", + "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true + }, + "eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=" + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true + }, + "exenv": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.0.tgz", + "integrity": "sha1-ODXxJ6vwdb/ggtCu1EhAV8eOPIk=" + }, + "exif-parser": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.9.tgz", + "integrity": "sha1-HQh+Bf0rB546jq+P8kmXjLX2+6c=", + "dev": true + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true + }, + "express": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", + "integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=", + "dev": true, + "dependencies": { + "debug": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", + "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "dev": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true + }, + "extract-text-webpack-plugin": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-0.9.1.tgz", + "integrity": "sha1-723FCMs17Q3PikAJq76FP3p2IrU=", + "dev": true, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "extract-zip": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", + "integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=", + "dev": true, + "dependencies": { + "concat-stream": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", + "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=", + "dev": true + }, + "debug": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", + "dev": true + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "dev": true + }, + "falafel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", + "integrity": "sha1-wY0k71CRF0pJfzGM0ksCaiXN2rQ=", + "dev": true, + "dependencies": { + "acorn": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", + "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + } + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "favicons": { + "version": "4.8.6", + "resolved": "https://registry.npmjs.org/favicons/-/favicons-4.8.6.tgz", + "integrity": "sha1-orE4AKs/7CcVvI8n+oQdA41HYeI=", + "dev": true, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "cheerio": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz", + "integrity": "sha1-dy5wFfLuKZZQltcepBdbdas1SSU=", + "dev": true + }, + "css-select": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz", + "integrity": "sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA=", + "dev": true + }, + "css-what": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz", + "integrity": "sha1-18wt9FGAZm+Z0rFEYmOUaeAPc2w=", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true + }, + "domutils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz", + "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=", + "dev": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "dependencies": { + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + } + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "favicons-webpack-plugin": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/favicons-webpack-plugin/-/favicons-webpack-plugin-0.0.7.tgz", + "integrity": "sha1-JTpGpPk9E30QlnYod/io7xLihkg=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true + }, + "fbemitter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", + "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "fbjs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz", + "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=", + "dependencies": { + "whatwg-fetch": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz", + "integrity": "sha1-DjaExsuZlbQ+/J3wPkw2XZX9nMA=" + } + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "file-entry-cache": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz", + "integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "file-loader": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz", + "integrity": "sha1-knXQMf54DyfUf19K8CvUNxPMFRs=", + "dev": true + }, + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "dev": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "filepicker-js": { + "version": "2.4.18", + "resolved": "https://registry.npmjs.org/filepicker-js/-/filepicker-js-2.4.18.tgz", + "integrity": "sha1-gquFC5lEsSJY82F/5RbUfUileVw=" + }, + "filesize": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.10.tgz", + "integrity": "sha1-/I+iPdtO+eXgq24eZPZ5okpWdh8=" + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true + }, + "finalhandler": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", + "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=", + "dev": true, + "dependencies": { + "debug": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", + "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true + }, + "flat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-2.0.1.tgz", + "integrity": "sha1-cOKRiKdL4MPIlAnu0fqVd5B64y8=" + }, + "flat-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", + "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", + "dev": true + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "follow-redirects": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz", + "integrity": "sha1-NLkLqyqRGqNHVx2pDyK9NuzYqRk=" + }, + "for-each": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", + "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true + }, + "form-data-to-object": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/form-data-to-object/-/form-data-to-object-0.2.0.tgz", + "integrity": "sha1-96jmjd2RChEApl4lrGpIQUP/gWg=" + }, + "formatio": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", + "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=" + }, + "formsy-react": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/formsy-react/-/formsy-react-0.18.1.tgz", + "integrity": "sha1-xS7pW67yiW8VR85t+Nrl/NvZq0A=" + }, + "forwarded": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", + "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=", + "dev": true + }, + "fresh": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", + "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "dev": true + }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.1.tgz", + "integrity": "sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8=", + "dev": true, + "optional": true, + "dependencies": { + "abbrev": { + "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "optional": true + }, + "aproba": { + "version": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", + "integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=", + "dev": true, + "optional": true + }, + "asn1": { + "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true + }, + "asynckit": { + "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true + }, + "aws4": { + "version": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true + }, + "block-stream": { + "version": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true + }, + "boom": { + "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true + }, + "brace-expansion": { + "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", + "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=", + "dev": true + }, + "buffer-shims": { + "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "dev": true + }, + "caseless": { + "version": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true, + "optional": true + }, + "chalk": { + "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "combined-stream": { + "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true + }, + "commander": { + "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "optional": true + }, + "concat-map": { + "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "console-control-strings": { + "version": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "core-util-is": { + "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cryptiles": { + "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "optional": true + }, + "dashdash": { + "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "optional": true + }, + "deep-extend": { + "version": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", + "integrity": "sha1-7+QRPQgIX05vlod1mBD4B0aeIlM=", + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true + }, + "escape-string-regexp": { + "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "optional": true + }, + "extend": { + "version": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=", + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "dev": true + }, + "forever-agent": { + "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "optional": true + }, + "form-data": { + "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", + "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=", + "dev": true, + "optional": true + }, + "fs.realpath": { + "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fstream": { + "version": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", + "integrity": "sha1-YE6Kkv4m/9n2+uMDmdSYThqyKCI=", + "dev": true + }, + "fstream-ignore": { + "version": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "dev": true, + "optional": true + }, + "gauge": { + "version": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz", + "integrity": "sha1-HCOFX5YvF7OtPQ3HRD8wRULt/gk=", + "dev": true, + "optional": true + }, + "generate-function": { + "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true, + "optional": true + }, + "generate-object-property": { + "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "optional": true + }, + "getpass": { + "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", + "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", + "dev": true + }, + "graceful-fs": { + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "graceful-readlink": { + "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "optional": true + }, + "has-ansi": { + "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "optional": true + }, + "has-unicode": { + "version": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, + "optional": true + }, + "hawk": { + "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "optional": true + }, + "hoek": { + "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "http-signature": { + "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true + }, + "inflight": { + "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true + }, + "is-my-json-valid": { + "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", + "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=", + "dev": true, + "optional": true + }, + "is-property": { + "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true, + "optional": true + }, + "is-typedarray": { + "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true, + "optional": true + }, + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isstream": { + "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "dev": true, + "optional": true + }, + "jsbn": { + "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "json-schema": { + "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true, + "optional": true + }, + "json-stringify-safe": { + "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "optional": true + }, + "jsonpointer": { + "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true, + "optional": true + }, + "jsprim": { + "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", + "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=", + "dev": true, + "optional": true + }, + "mime-db": { + "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", + "integrity": "sha1-6v/NDk/Gk1z4E02iRuLmw1MFrf8=", + "dev": true + }, + "mime-types": { + "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", + "integrity": "sha1-9+99l1g/yvO30oK2+LVnnaselO4=", + "dev": true + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "dev": true + }, + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true + }, + "ms": { + "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz", + "integrity": "sha1-ZArFUZj2qSWXLgwWxKwmoDTV7Mk=", + "dev": true, + "optional": true + }, + "nopt": { + "version": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "optional": true + }, + "npmlog": { + "version": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", + "integrity": "sha1-0DlQ4OeM4VJ7om0qdZLpNIrD518=", + "dev": true, + "optional": true + }, + "number-is-nan": { + "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "optional": true + }, + "object-assign": { + "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "optional": true + }, + "once": { + "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true + }, + "path-is-absolute": { + "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "pinkie": { + "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "optional": true + }, + "pinkie-promise": { + "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "punycode": { + "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + }, + "qs": { + "version": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz", + "integrity": "sha1-kYwLO802Z5dyuvE1say0wWUe150=", + "dev": true, + "optional": true + }, + "rc": { + "version": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz", + "integrity": "sha1-xepWS7B6/5/TpbMukGwdOmWUD+o=", + "dev": true, + "optional": true, + "dependencies": { + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", + "integrity": "sha1-qeb+w8fdqF+LsbO6cChgRVb8gl4=", + "dev": true, + "optional": true + }, + "request": { + "version": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "optional": true + }, + "rimraf": { + "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", + "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", + "dev": true + }, + "semver": { + "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true, + "optional": true + }, + "sntp": { + "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "optional": true + }, + "sshpk": { + "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", + "integrity": "sha1-1agEziJpVRVjjnmNviMnPeBwpfo=", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true + }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "stringstream": { + "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true + }, + "strip-json-comments": { + "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "optional": true + }, + "supports-color": { + "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "optional": true + }, + "tar": { + "version": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true + }, + "tar-pack": { + "version": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz", + "integrity": "sha1-MJMYFkGPVa/E0hd1r91nIM7kXa4=", + "dev": true, + "optional": true, + "dependencies": { + "once": { + "version": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", + "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=", + "dev": true, + "optional": true + } + } + }, + "tough-cookie": { + "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true, + "optional": true + }, + "tunnel-agent": { + "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true, + "optional": true + }, + "tweetnacl": { + "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "uid-number": { + "version": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "dev": true, + "optional": true + }, + "verror": { + "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "dev": true, + "optional": true + }, + "wide-align": { + "version": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", + "integrity": "sha1-QO3egCpx/qHwcNo+YtzaLnrdlq0=", + "dev": true, + "optional": true + }, + "wrappy": { + "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true, + "optional": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true + }, + "function-bind": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "dev": true + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=" + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "dev": true, + "dependencies": { + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "globule": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.1.0.tgz", + "integrity": "sha1-xJNS5NwYPYWJPuglOF65lLtt9F8=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + }, + "lodash": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz", + "integrity": "sha1-0iyaxmAojzhD4Wun0rXQbMon13c=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true + }, + "harmony-reflect": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.5.1.tgz", + "integrity": "sha1-tUymF7AMyK71Wbuxez2FQx3H4yk=", + "dev": true + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", + "dev": true + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true + }, + "he": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.0.0.tgz", + "integrity": "sha1-baWyZdfyw7XkgHSRaODhWdBXKNo=" + }, + "history": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/history/-/history-1.17.0.tgz", + "integrity": "sha1-xUg8qlodH+oAoafY0ZuHQBZxHSk=" + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "hoist-non-react-statics": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", + "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true + }, + "hosted-git-info": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", + "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, + "html-minifier": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-1.5.0.tgz", + "integrity": "sha1-vrBf2cw0CUWGXBD0Cu30aa9LFTQ=" + }, + "html-webpack-plugin": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-1.7.0.tgz", + "integrity": "sha1-zQxzx5G9DIxFsk4wAb4zSmt0KXs=", + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + } + } + }, + "htmlparser2": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", + "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", + "dev": true, + "dependencies": { + "domutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", + "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + } + } + }, + "http-errors": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", + "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", + "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "dev": true, + "dependencies": { + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + } + } + }, + "http-proxy-middleware": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", + "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "dev": true, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true + } + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "dev": true + }, + "humps": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/humps/-/humps-0.6.0.tgz", + "integrity": "sha1-phchA4bwRF0SLOtNlBSho5saHpQ=" + }, + "iconv-lite": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz", + "integrity": "sha1-T9qjs4rLwsAxsEXQ7c3+HsqxjI0=" + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "dev": true + }, + "ignore": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", + "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", + "dev": true + }, + "ignore-styles": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ignore-styles/-/ignore-styles-1.2.0.tgz", + "integrity": "sha1-a7+6rn163fn5oLIlMQzVb12YDWE=", + "dev": true + }, + "image-size": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.4.0.tgz", + "integrity": "sha1-1LTh9hlS5MvBzqmmsMkV/stwdRA=", + "dev": true + }, + "immutable": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz", + "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + }, + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "inquirer": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", + "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", + "dev": true + }, + "interpret": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", + "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip-regex": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", + "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=", + "dev": true + }, + "ipaddr.js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.3.0.tgz", + "integrity": "sha1-HgOlL9rYOou7KyXL9JmLTP/NPew=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true + }, + "is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true + }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=" + }, + "is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", + "dev": true, + "dependencies": { + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-resolvable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", + "dev": true + }, + "is-retina": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-retina/-/is-retina-1.0.3.tgz", + "integrity": "sha1-10AbKGvqKuN/Ykd1iN5QTQuGR+M=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jade": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/jade/-/jade-1.11.0.tgz", + "integrity": "sha1-nIDlOMEtP7lcjZu5VZ+gzAQEBf0=", + "dev": true, + "dependencies": { + "commander": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", + "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", + "dev": true + } + } + }, + "jade-html-loader": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/jade-html-loader/-/jade-html-loader-0.0.3.tgz", + "integrity": "sha1-ggSLSG55YiZ5OPWM0er9nMAAPsw=", + "dev": true + }, + "jade-loader": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/jade-loader/-/jade-loader-0.8.0.tgz", + "integrity": "sha1-0bCZcam/kKKymLCvWxrQMA0QnC4=", + "dev": true + }, + "jade-react-loader": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jade-react-loader/-/jade-react-loader-1.0.2.tgz", + "integrity": "sha1-MxgiARamZZzJxsMO7qqHLSMKioQ=", + "dev": true + }, + "jimp": { + "version": "0.2.28", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.2.28.tgz", + "integrity": "sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI=", + "dev": true + }, + "jodid25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "dev": true, + "optional": true + }, + "jpeg-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.2.0.tgz", + "integrity": "sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII=", + "dev": true + }, + "js-base64": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", + "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=", + "dev": true + }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": true + }, + "js-tokens": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + } + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jsdom": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz", + "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=", + "dev": true, + "optional": true, + "dependencies": { + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true, + "optional": true + }, + "escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "dev": true, + "optional": true + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true, + "optional": true + }, + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "dev": true, + "optional": true + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-fallback": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-fallback/-/json-fallback-0.0.1.tgz", + "integrity": "sha1-6OMIPD/drQ+bXwnTMSB0RCWA14E=" + }, + "json-loader": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", + "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonp": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.0.4.tgz", + "integrity": "sha1-lGZaS3caq+y4qshBNbmVlHVpGL0=" + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsontoxml": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-0.0.11.tgz", + "integrity": "sha1-Nzq1sgcL43N6X7PjL9G3uBhwyqQ=", + "dev": true + }, + "jsprim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "dev": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "jstransform": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz", + "integrity": "sha1-CaeJk+CuTU70SH9hVakfYZDLQiM=" + }, + "jstransformer": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz", + "integrity": "sha1-eq4pqQPRls+glz2IXT5HlH7Ndqs=", + "dev": true, + "dependencies": { + "asap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz", + "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=", + "dev": true + }, + "promise": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz", + "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=", + "dev": true + } + } + }, + "jwt-decode": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-1.5.1.tgz", + "integrity": "sha1-vajYcxubc57otKMaDQJcqUrpLTs=" + }, + "kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true + }, + "load-bmfont": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.3.0.tgz", + "integrity": "sha1-u358cQ3mvK/LE8s7jIHgwBMey8k=", + "dev": true, + "dependencies": { + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash-es": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz", + "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc=" + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "dev": true + }, + "lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "dev": true + }, + "lodash._createcompounder": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz", + "integrity": "sha1-XdLLVTctbnDg4jkvsjBNZjEJEHU=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + }, + "lodash.camelcase": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", + "integrity": "sha1-kyyLh/ikN3iXxnGXUzKC+Xrqwpg=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.deburr": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", + "integrity": "sha1-baj1QzSjZqfPTEx2742Aqhs2XtU=", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "lodash.words": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz", + "integrity": "sha1-TiqGSbwIdFsXxpWxo86P7llmI7M=", + "dev": true + }, + "lolex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", + "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=" + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=" + }, + "lru-cache": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.0.tgz", + "integrity": "sha512-aHGs865JXz6bkB4AHL+3AhyvTFKL3iZamKVWjIUKnXOXyasJvqPK8WAjOnAQKQZVpeXDVz19u1DD0r/12bWAdQ==", + "dev": true + }, + "macaddress": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "material-colors": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.5.tgz", + "integrity": "sha1-UpJZPmdUyxvMK5gDDk4Najr8nqE=" + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, + "md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memory-fs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", + "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "merge-defaults": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/merge-defaults/-/merge-defaults-0.2.1.tgz", + "integrity": "sha1-3UIkjrlrtqUVIXJDIccv+Vg93oA=", + "dev": true, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true + }, + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "dev": true + }, + "mime-db": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "dev": true + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + }, + "mocha": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", + "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "dev": true, + "dependencies": { + "commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", + "dev": true + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", + "dev": true + }, + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "dev": true, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", + "dev": true + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "dev": true + } + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", + "dev": true + } + } + }, + "mocha-jsdom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mocha-jsdom/-/mocha-jsdom-1.1.0.tgz", + "integrity": "sha1-4VdvvQYBzInTWKIToOVYXRt8egE=", + "dev": true + }, + "moment": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", + "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "dev": true + }, + "nan": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "dev": true + }, + "ncname": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", + "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=" + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "ng-onload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ng-onload/-/ng-onload-0.2.1.tgz", + "integrity": "sha1-ycc0Zi4qJqAqAy4TBwr7vay23g0=" + }, + "ngreact": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ngreact/-/ngreact-0.2.0.tgz", + "integrity": "sha1-PaQ6SIFYPFTMUDXim7SNnhFnVYc=" + }, + "no-case": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", + "integrity": "sha1-euuhxzpSGEJlVUt9wDuvcg34AIE=", + "dev": true + }, + "nock": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-8.2.1.tgz", + "integrity": "sha1-ZMxl4b3TiT9Yy6fhq/3Dj0DwNko=", + "dev": true, + "dependencies": { + "lodash": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.9.0.tgz", + "integrity": "sha1-TCDXQvA86F3HAODderm8q4Xm/BQ=", + "dev": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true + } + } + }, + "node-bourbon": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/node-bourbon/-/node-bourbon-4.2.8.tgz", + "integrity": "sha1-5ETx8JQ0q3ZQ6jGMKOLhA9P5Qs0=" + }, + "node-fetch": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz", + "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ==" + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + } + } + }, + "node-libs-browser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", + "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", + "dev": true + }, + "node-neat": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-neat/-/node-neat-1.7.2.tgz", + "integrity": "sha1-OEcpELgV4mG4sbmbpRmZRGWhXCE=" + }, + "node-rest-client": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/node-rest-client/-/node-rest-client-1.8.0.tgz", + "integrity": "sha1-jTxWa4F+JzlMtyc3g6Qcrv4+WVU=", + "dev": true, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "node-sass": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-3.13.1.tgz", + "integrity": "sha1-ckD7v/I5YwS0IjUn7TAgWJwAT8I=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true + }, + "normalize-package-data": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", + "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true + } + } + }, + "normalizr": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-1.4.1.tgz", + "integrity": "sha1-qjh8JGXxNhHK86rkK6+Y9wXoos4=", + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + } + } + }, + "npmlog": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "dev": true + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nwmatcher": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.0.tgz", + "integrity": "sha1-tDiTYhcOfvl5jDx3FtgOvAEG/M8=", + "dev": true, + "optional": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=" + }, + "object-inspect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-0.4.0.tgz", + "integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w=", + "dev": true + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "open": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz", + "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=", + "dev": true + }, + "optimist": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", + "dev": true + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, + "original": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", + "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", + "dev": true, + "dependencies": { + "url-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", + "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", + "dev": true + } + } + }, + "os-browserify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "param-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz", + "integrity": "sha1-3LCRpDwlm5Io8cNB57akTqC/l0M=" + }, + "parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=", + "dev": true + }, + "parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=", + "dev": true + }, + "parse-bmfont-xml": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.3.tgz", + "integrity": "sha1-1rZqNxr9OcUAfZ8O6yYqTyzOe3w=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true + }, + "parse-headers": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", + "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true + }, + "parse-png": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-1.1.2.tgz", + "integrity": "sha1-9cKtfHmTSQmGAgooTBmu5FlxH/I=", + "dev": true + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true, + "optional": true + }, + "parseurl": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", + "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", + "dev": true + }, + "pascal-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz", + "integrity": "sha1-Pl1kogBDgwp8STRMLXS0G+DJyZs=" + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz", + "integrity": "sha1-UM5roNO+090LXCqcRVNpdDRAlRQ=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true + }, + "pbkdf2-compat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "phantomjs-prebuilt": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz", + "integrity": "sha1-1T0xH8+30dCN2yQBRVjxGIxRbaA=", + "dev": true, + "dependencies": { + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "es6-promise": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz", + "integrity": "sha1-eILzCt3lskDM+n99eMVIMwlRrkI=", + "dev": true + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true + }, + "pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "dev": true + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true + }, + "pluralize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", + "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", + "dev": true + }, + "pn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.0.0.tgz", + "integrity": "sha1-HPWjCw2AbNGPiPxBprXUrWFbO6k=", + "dev": true + }, + "pngjs": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.2.0.tgz", + "integrity": "sha1-/J/OoaijddpUpRFIAZ1avUHbq94=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true + }, + "postcss-filter-plugins": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "dev": true + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "dev": true, + "dependencies": { + "postcss": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "dependencies": { + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true + }, + "postcss": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", + "dev": true + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "dependencies": { + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true + }, + "postcss": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", + "dev": true + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "dependencies": { + "postcss": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.0.tgz", + "integrity": "sha1-h/Tp1waiTIfWy+6fq+wAH8+Mddg=", + "dev": true + }, + "private": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", + "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, + "promise": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", + "integrity": "sha1-SJZUxpJha4qlWwck+oCbt9tJxb8=" + }, + "prop-types": { + "version": "15.5.10", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz", + "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "propagate": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz", + "integrity": "sha1-8/zKCm/gZzanulcpZgaWF8EwtIE=", + "dev": true + }, + "proxy-addr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz", + "integrity": "sha1-J+VF9pYKRKYn2bREZ+NcG2tM4vM=", + "dev": true + }, + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "q": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", + "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=" + }, + "query-string": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz", + "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", + "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", + "dev": true + }, + "quote-stream": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-0.0.0.tgz", + "integrity": "sha1-zeKelMQJsW4Z3HCYuJtmWPlyHTs=", + "dev": true + }, + "raf": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.3.2.tgz", + "integrity": "sha1-DBO+C1tJtG921maSSNUnzysC/ic=" + }, + "randomatic": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", + "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", + "dev": true + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "react": { + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/react/-/react-15.5.4.tgz", + "integrity": "sha1-+oPrAVBqsjfNwcjDsc6o3gEr8Ec=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "react-addons-css-transition-group": { + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/react-addons-css-transition-group/-/react-addons-css-transition-group-15.5.2.tgz", + "integrity": "sha1-6n4Knw4cJ8pCbaTv01WZFb1C6tI=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "react-addons-pure-render-mixin": { + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-15.5.2.tgz", + "integrity": "sha1-67hGrrL9dxM2wjKCKSMQj4fVv/I=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "react-addons-shallow-compare": { + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/react-addons-shallow-compare/-/react-addons-shallow-compare-15.5.2.tgz", + "integrity": "sha1-fLDuesyNfJP8wgLfC/R7qRanva0=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "react-addons-update": { + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/react-addons-update/-/react-addons-update-15.5.2.tgz", + "integrity": "sha1-CtpQSUOHsXI4mZ7pZi+fP8OPk10=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "react-avatar": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-avatar/-/react-avatar-2.3.0.tgz", + "integrity": "sha1-09IvSZ3NJij1vp0ofwOHfMsLjwY=" + }, + "react-color": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.12.0.tgz", + "integrity": "sha1-VL+T5Ru43Cx2KCrBJ/hbNLhs1zQ=" + }, + "react-datetime": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.7.1.tgz", + "integrity": "sha1-PcS1LY162zD55sDbx27gLYbSw8c=", + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + } + } + }, + "react-dom": { + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.5.4.tgz", + "integrity": "sha1-ugwoeG/VLtfk8hNf4CiNRirvk9o=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "react-dotdotdot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/react-dotdotdot/-/react-dotdotdot-1.1.0.tgz", + "integrity": "sha1-tnRrG/BJxrKAajJAMvckyW+hfvE=" + }, + "react-dropzone": { + "version": "3.13.2", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-3.13.2.tgz", + "integrity": "sha1-MYdFwDAHymuUjN1EMavACbFqZYg=" + }, + "react-hot-api": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/react-hot-api/-/react-hot-api-0.4.7.tgz", + "integrity": "sha1-p+IqVtJS4Rq9k2a2EmTPRJLFgXE=", + "dev": true + }, + "react-hot-loader": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-1.3.1.tgz", + "integrity": "sha1-yVZHrni3Pfzv9uxx/8sEGC/22vk=", + "dev": true + }, + "react-input-autosize": { + "version": "0.6.13", + "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-0.6.13.tgz", + "integrity": "sha1-OG/3qdLD3AFsJlvy5Z05cFD2Wvc=" + }, + "react-jade": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/react-jade/-/react-jade-2.5.0.tgz", + "integrity": "sha1-w02dLdPuoB9S/UnMKIpcGmh8lIw=", + "dev": true, + "dependencies": { + "acorn": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", + "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", + "dev": true + }, + "commander": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", + "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", + "dev": true + }, + "jade": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/jade/-/jade-1.9.2.tgz", + "integrity": "sha1-C4n5xg1OrSc46Ca6eyzKyaVwKr4=", + "dev": true, + "dependencies": { + "with": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz", + "integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=", + "dev": true + } + } + }, + "with": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", + "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", + "dev": true, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + }, + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "dev": true, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + } + } + } + } + }, + "react-layout-pane": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/react-layout-pane/-/react-layout-pane-0.1.16.tgz", + "integrity": "sha1-wW0Eodx8M97e3gP1Q4yc+gwXVBw=", + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "react": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", + "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=" + }, + "react-dom": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz", + "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM=" + } + } + }, + "react-lazy-cache": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/react-lazy-cache/-/react-lazy-cache-3.0.1.tgz", + "integrity": "sha1-DcZNON8XZ+93Z4xclBkAZMsRsM0=" + }, + "react-modal": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-1.7.7.tgz", + "integrity": "sha1-cCBfUcWHCMSHr/aBuj/teUbjkdk=" + }, + "react-onclickoutside": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-4.9.0.tgz", + "integrity": "sha1-KQjDE24kQQK+peVDeoOKUo1dKZU=", + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "react-redux": { + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.8.tgz", + "integrity": "sha1-57wd0QDotk6WrIIS2xEyObni4I8=" + }, + "react-router": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.8.1.tgz", + "integrity": "sha1-c+lJH2zrMW0Pd5gpCBhj43juTtc=", + "dependencies": { + "history": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/history/-/history-2.1.2.tgz", + "integrity": "sha1-SqLeiXoOSGfkU5hDvm7Nsphr/ew=", + "dependencies": { + "warning": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", + "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=" + } + } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=" + } + } + }, + "react-s-alert": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-s-alert/-/react-s-alert-1.3.0.tgz", + "integrity": "sha1-2BIkpHTxXonDXA6mwqc/Iyp2cSg=" + }, + "react-scroll": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.5.2.tgz", + "integrity": "sha1-8Q8UhA0xOKEh0sDwSTO7/uQZOXU=", + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "react-select": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-0.9.1.tgz", + "integrity": "sha1-4yKi0KBjlqSCBrBVPfXsR9Fgg7o=" + }, + "react-stickynode": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/react-stickynode/-/react-stickynode-1.3.1.tgz", + "integrity": "sha1-3i83lYy3vlTxaK51T7csrvhmCgQ=" + }, + "react-switch-button": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/react-switch-button/-/react-switch-button-1.1.2.tgz", + "integrity": "sha1-jOhPaUa046k3PnttasjngNl/L08=" + }, + "react-text-truncate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-text-truncate/-/react-text-truncate-0.8.3.tgz", + "integrity": "sha1-MRA4dTHpNE/13aXCXDfsfZ4Bf38=" + }, + "react-textarea-autosize": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-4.3.2.tgz", + "integrity": "sha1-lipSxoys6uQIwYrOzsKQSbgeQvo=" + }, + "react-vendor-prefix": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/react-vendor-prefix/-/react-vendor-prefix-0.0.1.tgz", + "integrity": "sha1-KNz8l5WbOPCKWna4ChWpSY07AHw=" + }, + "reactcss": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.2.tgz", + "integrity": "sha1-QbDvQ+AdVIgDV8NLEawVMSCTUO8=" + }, + "read-chunk": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-1.0.1.tgz", + "integrity": "sha1-X2jKswfmY/GZk1J9m1icrORmEZQ=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=" + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true + }, + "readline2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "dev": true + }, + "recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + } + } + }, + "recompose": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.20.2.tgz", + "integrity": "sha1-ET1qx+KcpmTP/+wWtoHd3fFSULw=", + "dependencies": { + "fbjs": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "symbol-observable": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", + "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=" + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true + }, + "redux": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.6.0.tgz", + "integrity": "sha1-iHwrPQub2G7KK+cFccJ2VMGeGI0=" + }, + "redux-form": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/redux-form/-/redux-form-4.2.2.tgz", + "integrity": "sha1-uK43pAcJBvRdvTCwcinxoQvyXLA=" + }, + "redux-logger": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-2.10.2.tgz", + "integrity": "sha1-PFpfCm8yV3wd6t9mVfJX+CxsOTc=" + }, + "redux-mock-store": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.2.3.tgz", + "integrity": "sha1-GzrSmdqRy0G6MNaOO28CRHX7nhs=", + "dev": true + }, + "redux-promise-middleware": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/redux-promise-middleware/-/redux-promise-middleware-4.3.0.tgz", + "integrity": "sha1-OJl1dLbxUKuP8apyylVj+8gsfO8=" + }, + "redux-router": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redux-router/-/redux-router-1.0.0.tgz", + "integrity": "sha1-PBZ240Qb7FD+jZJFfAF8tjaZM08=" + }, + "redux-segment": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/redux-segment/-/redux-segment-1.6.1.tgz", + "integrity": "sha1-gT0HNK57XeFOhjICr9IMJN55Ai4=" + }, + "redux-thunk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.2.0.tgz", + "integrity": "sha1-5hWhbha0ehmlFXZhM9Hj6Zt4UuU=" + }, + "regenerate": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", + "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + }, + "regenerator-transform": { + "version": "0.9.11", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", + "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", + "dev": true + }, + "regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "dev": true + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remove-trailing-separator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", + "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "dev": true + }, + "renderkid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", + "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", + "dev": true, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true + } + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "dependencies": { + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true + } + } + }, + "request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "reqwest": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/reqwest/-/reqwest-1.1.6.tgz", + "integrity": "sha1-S2iU0pWWv46CSiXzSXXfFVYu6BM=" + }, + "resize-img": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/resize-img/-/resize-img-1.1.2.tgz", + "integrity": "sha1-+tZQ+vPvLFPqYxErwnLZXp2SVQ4=", + "dev": true, + "dependencies": { + "bmp-js": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.0.1.tgz", + "integrity": "sha1-WtAUcJnROp84qnuZrx1ueGZu038=", + "dev": true + }, + "jpeg-js": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.1.2.tgz", + "integrity": "sha1-E1uZLAV1yYXPoPSUoyJ+0jhYPs4=", + "dev": true + } + } + }, + "resolve": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", + "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", + "dev": true + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=" + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + } + } + }, + "ripemd160": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", + "dev": true + }, + "run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "dev": true + }, + "rx-lite": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", + "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", + "dev": true + }, + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true + }, + "samsam": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", + "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=" + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true + } + } + }, + "sass-loader": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-3.2.3.tgz", + "integrity": "sha1-dC6B/YFwqHcal54YYiUBZ0qI41U=", + "dev": true, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "sax": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz", + "integrity": "sha1-/YYxojvHgmvvXYcb24c3jJVkeCg=", + "dev": true + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "send": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", + "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=", + "dev": true, + "dependencies": { + "debug": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", + "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "dev": true + } + } + }, + "sentence-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz", + "integrity": "sha1-gDSq/CFFdy06vhUJqkLJ4QQtwTk=" + }, + "serve-index": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.0.tgz", + "integrity": "sha1-0rKA/FYNYW7oG0i/D6gqvtJIXOc=", + "dev": true + }, + "serve-static": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", + "integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + }, + "sha.js": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", + "dev": true + }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=", + "dev": true + }, + "shelljs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz", + "integrity": "sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sinon": { + "version": "2.0.0-pre", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-2.0.0-pre.tgz", + "integrity": "sha1-GCk7APsvFVyZ6OW0bjH36t4ygV0=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "snake-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz", + "integrity": "sha1-DC8l4wUVjZoY09l3BmGH/vilpmo=" + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true + }, + "sockjs": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", + "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", + "dev": true, + "dependencies": { + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + } + } + }, + "sockjs-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", + "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "dev": true, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true + }, + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=" + }, + "source-map-support": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", + "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "dev": true, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "dev": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "static-eval": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.4.tgz", + "integrity": "sha1-t9NNg4k3uWn5ZBygfUj47eJj6ns=", + "dev": true, + "dependencies": { + "escodegen": { + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz", + "integrity": "sha1-Dk/xcV8yh3XWyrUaxEpAbNer/9M=", + "dev": true + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "estraverse": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz", + "integrity": "sha1-N8K4k+8T1yPydth41g2FNRUqbEI=", + "dev": true + } + } + }, + "static-module": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-1.3.2.tgz", + "integrity": "sha1-Mp+58iOlZiZr2nGEO32TLHZxdPM=", + "dev": true, + "dependencies": { + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "dependencies": { + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + } + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true + }, + "stream-cache": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stream-cache/-/stream-cache-0.0.2.tgz", + "integrity": "sha1-GsWtaDJCjKVWZ9ve45Xa1ObbEY8=", + "dev": true + }, + "stream-consume": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=" + }, + "stream-http": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.1.tgz", + "integrity": "sha1-VGpRdBrVprB+njGwsQRBqRffUoo=", + "dev": true, + "dependencies": { + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "stream-to": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz", + "integrity": "sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0=", + "dev": true + }, + "stream-to-buffer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz", + "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + }, + "style-loader": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz", + "integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=", + "dev": true, + "dependencies": { + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true + } + } + }, + "subscribe-ui-event": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/subscribe-ui-event/-/subscribe-ui-event-1.0.14.tgz", + "integrity": "sha1-xQYQS8Ncert2LrNHtZVEKiVnJn8=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "svg2png": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg2png/-/svg2png-3.0.1.tgz", + "integrity": "sha1-omRNaLAjGsAK9DGqFjcU/xcQZEc=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "dev": true + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "dev": true + } + } + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true + }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=" + }, + "symbol-observable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", + "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true, + "optional": true + }, + "table": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", + "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", + "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", + "dev": true + } + } + }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true + }, + "tc-accounts": { + "version": "git+https://github.com/appirio-tech/accounts-app.git#e24fddd041d2fa25edb037d64870dbd59cea8da9" + }, + "tc-ui": { + "version": "git+https://github.com/appirio-tech/tc-ui.git#36ad570a72a03ee880951f65a98d6f1d7426067a", + "dependencies": { + "react": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", + "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=" + }, + "react-dom": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz", + "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM=" + } + } + }, + "text-encoding": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.5.2.tgz", + "integrity": "sha1-hbRmCBnwiHd2CUZVUWkP6hN9gko=" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", + "dev": true, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + } + } + }, + "timers-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", + "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", + "dev": true + }, + "tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" + }, + "title-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz", + "integrity": "sha1-+uSmrlRr+iLQg6DuqRCkDRLtT1o=" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-ico": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/to-ico/-/to-ico-1.1.2.tgz", + "integrity": "sha1-yzhIXxNvS+yJ4l+Jeh1gjAlik+k=", + "dev": true, + "dependencies": { + "image-size": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.4.tgz", + "integrity": "sha1-lOB77sBlk4bxrvuEsiIuiEBUhc0=", + "dev": true + } + } + }, + "to-iso-string": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", + "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", + "dev": true + }, + "toposort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.3.tgz", + "integrity": "sha1-8CzYp0vYvi/A6YYRw7rLlaFxhpw=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true, + "optional": true + }, + "transform-loader": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/transform-loader/-/transform-loader-0.2.4.tgz", + "integrity": "sha1-5ch4d7qW1R0/IlNoWHtG4ibRzsk=", + "dev": true, + "dependencies": { + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true + } + } + }, + "transformers": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz", + "integrity": "sha1-XSPLNVYd2F3Gf7hIIwm0fVPM6ac=", + "dev": true, + "dependencies": { + "is-promise": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz", + "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=", + "dev": true + }, + "promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz", + "integrity": "sha1-RmSKqdYFr10ucMMCS/WUNtoCuA4=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true + }, + "uglify-js": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz", + "integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=", + "dev": true + } + } + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true + }, + "type-detect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "dev": true + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "ua-parser-js": { + "version": "0.7.12", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz", + "integrity": "sha1-BMgamb3V3FImPqKdJMa/jUgYpLs=" + }, + "uglify-js": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", + "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=" + }, + "uncontrollable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz", + "integrity": "sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak=" + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "dev": true + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", + "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", + "dev": true, + "dependencies": { + "querystringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", + "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", + "dev": true + } + } + }, + "url-regex": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", + "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", + "dev": true + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "dev": true + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true + }, + "vary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", + "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=", + "dev": true + }, + "vendors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", + "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", + "dev": true + }, + "verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "dev": true + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "warning": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", + "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=" + }, + "watch-run": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/watch-run/-/watch-run-1.2.5.tgz", + "integrity": "sha1-ldNaqn9Zdcj9yP/Tzzv/9YY8oEw=", + "dev": true + }, + "watchpack": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", + "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", + "dev": true, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + } + } + }, + "webidl-conversions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz", + "integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=", + "dev": true, + "optional": true + }, + "webpack": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", + "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", + "dev": true, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + }, + "uglify-js": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", + "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", + "dev": true, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + } + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true + }, + "webpack-dev-middleware": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.10.2.tgz", + "integrity": "sha1-LiUs4d+wINvaHMs33ybzCrAU29E=", + "dev": true, + "dependencies": { + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "1.16.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-1.16.5.tgz", + "integrity": "sha1-DL1fLSrI1OWTqs1clwLnu9XlmJI=", + "dev": true, + "dependencies": { + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true + }, + "websocket-extensions": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz", + "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=", + "dev": true + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "whatwg-url-compat": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz", + "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", + "dev": true, + "optional": true + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true + }, + "winchan": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/winchan/-/winchan-0.1.4.tgz", + "integrity": "sha1-iPoSQRzVQutiYBjDihlry7F5k7s=" + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "with": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz", + "integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=", + "dev": true, + "dependencies": { + "acorn": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", + "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", + "dev": true + } + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true + }, + "xhr": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", + "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=", + "dev": true, + "dependencies": { + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "xml-char-classes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", + "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=" + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true, + "optional": true + }, + "xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=", + "dev": true + }, + "xml2js": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", + "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", + "dev": true + }, + "xmlbuilder": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", + "dev": true + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=" + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true + }, + "zepto": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/zepto/-/zepto-0.0.4.tgz", + "integrity": "sha1-m7++DxwvVzvvqqz/6fVSzLP6J9I=" + } + } +} diff --git a/package.json b/package.json index 55d2d4fce..54593f146 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint": "^2.2.0", "eslint-plugin-react": "^4.1.0", "favicons-webpack-plugin": "0.0.7", - "to-ico":"1.1.2", + "to-ico": "1.1.2", "ignore-styles": "^1.2.0", "mocha": "^2.4.5", "mocha-jsdom": "^1.1.0", diff --git a/src/components/TopBar/ProjectsToolBar.scss b/src/components/TopBar/ProjectsToolBar.scss index 0d2921b30..c1da17498 100644 --- a/src/components/TopBar/ProjectsToolBar.scss +++ b/src/components/TopBar/ProjectsToolBar.scss @@ -153,7 +153,8 @@ $tc-body-large : 20px; right : 0; bottom : 0; z-index: 21;/* +1 of the z-index of the topbar */ - background-color: $tc-gray-neutral-dark; + background-color: #fafafb; + /*background-color: $tc-gray-neutral-dark;*/ overflow-y: scroll; section.content { @@ -174,9 +175,11 @@ $tc-body-large : 20px; .Wizard .content { margin: 0 auto; + padding: 50px 0; width: 100%; min-height: 100vh; } + .TextInput.project-name, .TextInput.project-ref-code { height: 45px; diff --git a/src/projects/create/components/ProductCard.scss b/src/projects/create/components/ProductCard.scss index cbd863ade..7d4abf210 100644 --- a/src/projects/create/components/ProductCard.scss +++ b/src/projects/create/components/ProductCard.scss @@ -1,24 +1,28 @@ @import 'tc-includes'; .ProductCard { - border: 1px solid $tc-gray-20; + /*border: 1px solid $tc-gray-20;*/ border-radius: 4px; display: flex; flex-direction: column; align-items: center; - height: 255px; + height: 260px; margin: 10px 10px 0; position: relative; vertical-align: top; - width: 215px; + width: 230px; .sub-type-details { margin: 0 20px; + font-size: 13px; + color: $tc-gray-50; + line-height: 20px; } .header { @include tc-body; @include roboto-bold; - color: $tc-gray-70; - margin-bottom: 0; + color: $tc-gray-80; + line-height: 20px; + margin-bottom: 10px; margin-top: 0px; } .Icon { diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss index 2aea79365..3f67f49d0 100644 --- a/src/projects/create/components/SelectProduct.scss +++ b/src/projects/create/components/SelectProduct.scss @@ -4,7 +4,7 @@ @include tc-body; color: $tc-gray-50; text-align: center; - max-width: 960px; + max-width: 1000px; margin: 0 auto; a, a:hover { color: $tc-dark-blue; @@ -15,8 +15,12 @@ } h1 { @include tc-heading; - color: $tc-gray-50; - margin-bottom: 20px; + @include roboto-light; + color: $tc-black; + margin-bottom: 40px; + font-size: 36px; + line-height: 40px; + } .footer { margin-bottom: 15px; @@ -24,16 +28,29 @@ } .ProductCard { - + transition: 300ms all ease; + -moz-transition: 300ms all ease; + -webkit-transition: 300ms all ease; .tc-btn { display: none; } } .ProductCard:hover { + transition: 300ms all ease; + -moz-transition: 300ms all ease; + -webkit-transition: 300ms all ease; + position: relative; background: $tc-white; + box-shadow: 0 2px 9px 0 rgba(38, 38, 38, 0.1); + h1 { + color: $tc-dark-blue; + } .tc-btn { display: block; + display: block; + position: absolute; + bottom: 30px; } } @@ -43,3 +60,18 @@ flex-flow: row wrap; } } +@media screen and (max-width: 1100px) { + .SelectProduct { + max-width: 750px; + } +} +@media screen and (max-width: 850px) { + .SelectProduct { + max-width: 500px; + } +} +@media screen and (max-width: 500px) { + .SelectProduct { + max-width: 250px; + } +} From 8c1b1077aafa48a972624d841b44802784cecf7b Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Wed, 14 Jun 2017 00:25:37 +0300 Subject: [PATCH 28/89] #905 --- .../create/components/FillProjectDetails.scss | 30 ++++++++++++++ .../create/components/SelectProduct.scss | 39 +++++++++++-------- 2 files changed, 53 insertions(+), 16 deletions(-) diff --git a/src/projects/create/components/FillProjectDetails.scss b/src/projects/create/components/FillProjectDetails.scss index 008f485d8..851e9050b 100644 --- a/src/projects/create/components/FillProjectDetails.scss +++ b/src/projects/create/components/FillProjectDetails.scss @@ -88,4 +88,34 @@ } } } +} + +.ProjectWizard { + .FillProjectDetails { + .header h1{ + @include roboto-light; + font-size: 36px; + color: $tc-black; + line-height: 40px; + } + .two-col-content.content .container { + margin-top: 0; + .left-area .title span, + .section-header .section-number { + display: none; + } + .gray-text { + @include roboto; + font-size: 15px; + color: $tc-gray-50; + line-height: 25px; + } + .left-area { + padding: 50px; + } + } + } + .spec-question-list-item .content-col > h5 span { + display: none; + } } \ No newline at end of file diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss index 3f67f49d0..876de6251 100644 --- a/src/projects/create/components/SelectProduct.scss +++ b/src/projects/create/components/SelectProduct.scss @@ -34,26 +34,33 @@ .tc-btn { display: none; } - } - - .ProductCard:hover { - transition: 300ms all ease; - -moz-transition: 300ms all ease; - -webkit-transition: 300ms all ease; - position: relative; - background: $tc-white; - box-shadow: 0 2px 9px 0 rgba(38, 38, 38, 0.1); - h1 { - color: $tc-dark-blue; + &:hover { + transition: 300ms all ease; + -moz-transition: 300ms all ease; + -webkit-transition: 300ms all ease; + position: relative; + background: $tc-white; + box-shadow: 0 2px 9px 0 rgba(38, 38, 38, 0.1); + h1 { + color: $tc-dark-blue; + } + .tc-btn { + display: block; + position: absolute; + bottom: 30px; + &:hover { + background-image: linear-gradient(0deg, #3996FF 0%, #127BF3 100%); + box-shadow: inset 0 1px 3px 0 rgba(71,71,79,0.38); + } + } } - .tc-btn { - display: block; - display: block; - position: absolute; - bottom: 30px; + &:active { + background: $tc-dark-blue-10; } } + + .cards { display: flex; justify-content: space-between; From d6fd2eb120e019d12bc62e3fcfeefb835ace3927 Mon Sep 17 00:00:00 2001 From: Victor George Date: Thu, 15 Jun 2017 10:48:46 -0700 Subject: [PATCH 29/89] updated packages --- package-lock.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fd309230..b5c79afc1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3,11 +3,6 @@ "version": "1.1.0", "lockfileVersion": 1, "dependencies": { - "Base64": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.1.4.tgz", - "integrity": "sha1-6fbGvvVn/WNepBYqsU3TKedKpt4=" - }, "abab": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz", @@ -1000,6 +995,11 @@ "resolved": "https://registry.npmjs.org/base62/-/base62-1.2.0.tgz", "integrity": "sha1-MeflYNyEbJ9EwaUx32UU2jVHQVc=" }, + "Base64": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.1.4.tgz", + "integrity": "sha1-6fbGvvVn/WNepBYqsU3TKedKpt4=" + }, "base64-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", @@ -3338,16 +3338,16 @@ } } }, - "string-width": { - "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true - }, "string_decoder": { "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, + "string-width": { + "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true + }, "stringstream": { "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", @@ -7038,17 +7038,17 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", From 542e073053b39d099ed2fa585ab9092a7048c679 Mon Sep 17 00:00:00 2001 From: Victor George Date: Fri, 16 Jun 2017 13:42:43 -0700 Subject: [PATCH 30/89] adding cards back --- .../detail/containers/Specification.scss | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/projects/detail/containers/Specification.scss b/src/projects/detail/containers/Specification.scss index b82395a7c..3b6cc9254 100644 --- a/src/projects/detail/containers/Specification.scss +++ b/src/projects/detail/containers/Specification.scss @@ -850,3 +850,51 @@ $title-color: $tc-gray-80; } } } + +.two-col-content.content .container .tiled-group-item { + border: 1px solid $tc-gray-20; + border-radius: 4px; + display: inline-block; + margin: 10px 10px 0; + position: relative; + vertical-align: top; + .check-mark { + background: $tc-dark-blue-90; + border-radius: 2px; + display: none; + height: 15px; + position: absolute; + right: 15px; + top: 15px; + width: 15px; + .Icon { + position: relative; + margin: 0; + top: -5px; + } + } + &.disabled { + opacity: 0.3 + } + &:hover { + border-color: $tc-dark-blue-70; + cursor: pointer; + .icon { + color: $tc-dark-blue-70; + } + } + + &.active { + background: $tc-gray-10; + border-color: transparent; + &:hover { + border-color: transparent; + .icon span { + color: $tc-gray-70; + } + } + .check-mark { + display: block; + } + } +} \ No newline at end of file From 389a1afae8016b7e5bd98d452479b5fd8ab8988a Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Mon, 19 Jun 2017 22:10:40 +0300 Subject: [PATCH 31/89] Styling cards #906 --- .../detail/containers/Specification.scss | 87 ++++++++++++++----- 1 file changed, 63 insertions(+), 24 deletions(-) diff --git a/src/projects/detail/containers/Specification.scss b/src/projects/detail/containers/Specification.scss index 3b6cc9254..209eebf6c 100644 --- a/src/projects/detail/containers/Specification.scss +++ b/src/projects/detail/containers/Specification.scss @@ -852,26 +852,23 @@ $title-color: $tc-gray-80; } .two-col-content.content .container .tiled-group-item { + position: relative; + -webkit-flex: initial; + flex: initial; + margin-right: 20px; + height:155px; + width:135px; border: 1px solid $tc-gray-20; border-radius: 4px; + cursor: pointer; + border: 1px solid #dcdce0; + border-radius: 4px; display: inline-block; margin: 10px 10px 0; position: relative; vertical-align: top; .check-mark { - background: $tc-dark-blue-90; - border-radius: 2px; display: none; - height: 15px; - position: absolute; - right: 15px; - top: 15px; - width: 15px; - .Icon { - position: relative; - margin: 0; - top: -5px; - } } &.disabled { opacity: 0.3 @@ -879,22 +876,64 @@ $title-color: $tc-gray-80; &:hover { border-color: $tc-dark-blue-70; cursor: pointer; - .icon { - color: $tc-dark-blue-70; - } } - &.active { + &.active{ background: $tc-gray-10; - border-color: transparent; - &:hover { - border-color: transparent; - .icon span { - color: $tc-gray-70; - } - } - .check-mark { + border-color: $tc-gray-10; + &:after { + content: ''; display: block; + position: absolute; + top: 10px; + right: 10px; + width: 15px; + height: 15px; + background: #1A85FF; + border-radius: 2px; + } + &:before { + content: ''; + position: absolute; + z-index: 1; + top: 12px; + right: 15px; + width: 5px; + border-width: 0 2px 2px 0; + border-style: solid; + border-color: #fff; + height: 10px; + transform: rotate(45deg); + -o-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -webkit-transform: rotate(45deg); } + &:hover { + border-color: $tc-gray-10; + } + } + + span.title{ + display:block; + margin-top: 20px; + @include roboto-bold; + color: $tc-black; + font-size: 13px; + text-align:center; + } + + span.icon { + text-align: center; + display:block; + height: 50px; + margin:30px auto 20px auto; + } + small { + display:block; + font-size: 11px; + text-align:center; + color: $tc-gray-50; + @include roboto; + margin-top:10px; } } \ No newline at end of file From 631e0cf5a29ccad8a2ceb26b38036bf4dcd09291 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 27 Jun 2017 14:49:40 +0530 Subject: [PATCH 32/89] =?UTF-8?q?Github=20issue#911,=20Create=20project=20?= =?UTF-8?q?in=20'in=5Freview'=20status=20for=20new=20project=20creation=20?= =?UTF-8?q?flow=20=E2=80=94=20Updated=20project=20creation=20flow=20to=20u?= =?UTF-8?q?pdate=20the=20project=20status=20to=20in=5Freview=20immediately?= =?UTF-8?q?=20after=20creating=20the=20project=20as=20the=20current=20api?= =?UTF-8?q?=20does=20not=20allow=20creation=20of=20a=20project=20in=20a=20?= =?UTF-8?q?non=20draft=20status.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/projects.js | 19 +++++++++++++++++++ src/components/TopBar/ProjectsToolBar.js | 14 +++++++++++--- src/projects/actions/project.js | 10 ++++++++++ .../create/containers/CreateContainer.jsx | 9 +++++---- 4 files changed, 45 insertions(+), 7 deletions(-) diff --git a/src/api/projects.js b/src/api/projects.js index 7e39c6bd7..19c3cf6a6 100644 --- a/src/api/projects.js +++ b/src/api/projects.js @@ -69,6 +69,25 @@ export function createProject(projectProps) { }) } +export function createProjectWithStatus(projectProps, status) { + return axios.post(`${TC_API_URL}/v4/projects/`, { param: projectProps }) + .then( resp => { + return _.get(resp.data, 'result.content', {}) + }) + .then(project => { + const updatedProps = { status } + const projectId = project.id + return axios.patch(`${TC_API_URL}/v4/projectss/${projectId}/`, { param: updatedProps }) + .then(resp => { + return _.get(resp.data, 'result.content') + }) + .catch(error => { + // return created project even if status update fails to prevent error page + return project + }) + }) +} + export function deleteProject(projectId) { return axios.delete(`${TC_API_URL}/v4/projects/${projectId}/`) .then(() => { diff --git a/src/components/TopBar/ProjectsToolBar.js b/src/components/TopBar/ProjectsToolBar.js index da3ed9663..fb1873888 100644 --- a/src/components/TopBar/ProjectsToolBar.js +++ b/src/components/TopBar/ProjectsToolBar.js @@ -10,14 +10,16 @@ import Filters from './Filters' import ModalControl from '../ModalControl' import SVGIconImage from '../SVGIconImage' +import CoderBot from '../CoderBot/CoderBot' import ProjectWizard from '../../projects/create/components/ProjectWizard' -import { createProject as createProjectAction } from '../../projects/actions/project' +import { createProjectWithStatus as createProjectAction } from '../../projects/actions/project' import { projectSuggestions, loadProjects } from '../../projects/actions/loadProjects' import { ROLE_CONNECT_COPILOT, ROLE_CONNECT_MANAGER, - ROLE_ADMINISTRATOR + ROLE_ADMINISTRATOR, + PROJECT_STATUS_IN_REVIEW } from '../../config/constants' @@ -38,6 +40,7 @@ class ProjectsToolBar extends Component { this.handleTermChange = this.handleTermChange.bind(this) this.handleSearch = this.handleSearch.bind(this) this.handleMyProjectsFilter = this.handleMyProjectsFilter.bind(this) + this.createProject = this.createProject.bind(this) } componentWillReceiveProps(nextProps) { @@ -120,6 +123,10 @@ class ProjectsToolBar extends Component { this.props.loadProjects(criteria, page) } + createProject(project) { + this.props.createProjectAction(project, PROJECT_STATUS_IN_REVIEW) + } + render() { const { logo, userMenu, userRoles, criteria, isPowerUser } = this.props const { isCreateProjectModalVisible, errorCreatingProject, isFilterVisible } = this.state @@ -146,7 +153,7 @@ class ProjectsToolBar extends Component { {} } onProjectUpdate={ () => {} } @@ -229,6 +236,7 @@ const mapStateToProps = ({ projectSearchSuggestions, searchTerm, projectSearch, searchTermTag : searchTerm.searchTermTag, creatingProject : projectState.processing, projectCreationError : projectState.error, + project : projectState.project, criteria : projectSearch.criteria, userRoles : _.get(loadUser, 'user.roles', []), user : loadUser.user, diff --git a/src/projects/actions/project.js b/src/projects/actions/project.js index a6e49039d..3ea87811e 100644 --- a/src/projects/actions/project.js +++ b/src/projects/actions/project.js @@ -1,4 +1,5 @@ import { getProjectById, createProject as createProjectAPI, + createProjectWithStatus as createProjectWithStatusAPI, updateProject as updateProjectAPI, deleteProject as deleteProjectAPI, getDirectProjectData } from '../../api/projects' @@ -41,6 +42,15 @@ export function updateProject(projectId, updatedProps) { } } +export function createProjectWithStatus(newProject, status) { + return (dispatch) => { + return dispatch({ + type: CREATE_PROJECT, + payload: createProjectWithStatusAPI(newProject, status) + }) + } +} + export function deleteProject(newProject) { return (dispatch) => { return dispatch({ diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index 0d99e2916..42399f995 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -3,11 +3,11 @@ import React, { PropTypes } from 'react' import { withRouter } from 'react-router' import { connect } from 'react-redux' import { renderComponent, branch, compose, withProps } from 'recompose' -import { createProject as createProjectAction, fireProjectDirty, fireProjectDirtyUndo } from '../../actions/project' +import { createProjectWithStatus as createProjectAction, fireProjectDirty, fireProjectDirtyUndo } from '../../actions/project' import CoderBot from '../../../components/CoderBot/CoderBot' import spinnerWhileLoading from '../../../components/LoadingSpinner' import ProjectWizard from '../components/ProjectWizard' -import { CREATE_PROJECT_FAILURE, LS_INCOMPLETE_PROJECT } from '../../../config/constants' +import { CREATE_PROJECT_FAILURE, LS_INCOMPLETE_PROJECT, PROJECT_STATUS_IN_REVIEW } from '../../../config/constants' const page404 = compose( withProps({code:500}) @@ -82,7 +82,7 @@ class CreateConainer extends React.Component { // if project wizard is loaded after redirection from register page // TODO should we validate the project again? console.log('calling createProjectAction...') - this.props.createProjectAction(incompleteProject) + this.props.createProjectAction(incompleteProject, PROJECT_STATUS_IN_REVIEW) } } } @@ -118,7 +118,8 @@ class CreateConainer extends React.Component { if (this.props.userRoles && this.props.userRoles.length > 0) { // if user is logged in and has a valid role, create project // uses dirtyProject from the state as it has the latest changes from the user - this.props.createProjectAction(project) + // this.props.createProjectAction(project) + this.props.createProjectAction(project, PROJECT_STATUS_IN_REVIEW) } else { // redirect to registration/login page const retUrl = window.location.origin + '/new-project-callback' From 7639172892b45d67b8b7c9eb3355c58ba053b419 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 27 Jun 2017 14:50:54 +0530 Subject: [PATCH 33/89] Null pointer checks for error scenario --- src/projects/reducers/project.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/projects/reducers/project.js b/src/projects/reducers/project.js index 544201c8c..3bbac1497 100644 --- a/src/projects/reducers/project.js +++ b/src/projects/reducers/project.js @@ -27,10 +27,10 @@ const initialState = { // NOTE: We should always update projectNonDirty state whenever we update the project state const parseErrorObj = (action) => { - const data = action.payload.response.data.result + const data = _.get(action.payload, 'response.data.result') return { type: action.type, - code: data.status, + code: _.get(data, 'status', 500), msg: _.get(data, 'content.message', ''), details: JSON.parse(_.get(data, 'details', null)) } From 537e7349bdd2e0da01eeb8d84cf68d1ad1428053 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 27 Jun 2017 14:51:17 +0530 Subject: [PATCH 34/89] =?UTF-8?q?Github=20issue#911,=20Create=20project=20?= =?UTF-8?q?in=20'in=5Freview'=20status=20for=20new=20project=20creation=20?= =?UTF-8?q?flow=20=E2=80=94=20fixed=20dev=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/projects.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/projects.js b/src/api/projects.js index 19c3cf6a6..4cec2aa3f 100644 --- a/src/api/projects.js +++ b/src/api/projects.js @@ -77,7 +77,7 @@ export function createProjectWithStatus(projectProps, status) { .then(project => { const updatedProps = { status } const projectId = project.id - return axios.patch(`${TC_API_URL}/v4/projectss/${projectId}/`, { param: updatedProps }) + return axios.patch(`${TC_API_URL}/v4/projects/${projectId}/`, { param: updatedProps }) .then(resp => { return _.get(resp.data, 'result.content') }) From 72b7fdedf19542caa7d8ad6b6c887aa0b253829b Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 27 Jun 2017 15:21:28 +0530 Subject: [PATCH 35/89] fixed lint error --- src/api/projects.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/projects.js b/src/api/projects.js index 4cec2aa3f..7ea6fb933 100644 --- a/src/api/projects.js +++ b/src/api/projects.js @@ -81,7 +81,7 @@ export function createProjectWithStatus(projectProps, status) { .then(resp => { return _.get(resp.data, 'result.content') }) - .catch(error => { + .catch(error => { // eslint-disable-line no-unused-vars // return created project even if status update fails to prevent error page return project }) From 112d834d72650f7965391a96c5ab8fe171f9d0fa Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 27 Jun 2017 16:48:24 +0530 Subject: [PATCH 36/89] =?UTF-8?q?Github=20issue#912,=20Wire=20Change=20pro?= =?UTF-8?q?ject=20type=20button=20on=20project=20details=20form=20?= =?UTF-8?q?=E2=80=94=20Done.=20Wired.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/projects/create/components/FillProjectDetails.js | 3 ++- src/projects/create/components/ProjectWizard.jsx | 7 +------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/projects/create/components/FillProjectDetails.js b/src/projects/create/components/FillProjectDetails.js index c2bb60e58..9302439b8 100644 --- a/src/projects/create/components/FillProjectDetails.js +++ b/src/projects/create/components/FillProjectDetails.js @@ -53,7 +53,7 @@ class FillProjectDetails extends Component {
    { (!userRoles || !userRoles.length) && }

    Let's setup your { productName } project

    - { (!userRoles || !userRoles.length) && } + { (!userRoles || !userRoles.length) && }
    @@ -84,6 +84,7 @@ class FillProjectDetails extends Component { FillProjectDetails.propTypes = { // onProjectChange: PT.func.isRequired, onCreateProject: PT.func.isRequired, + onChangeProjectType: PT.func.isRequired, project: PT.object.isRequired, userRoles: PT.arrayOf(PT.string), processing: PT.bool, diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index 4649f3b48..8d7d9efab 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -200,12 +200,7 @@ class ProjectWizard extends Component { dirtyProject={ dirtyProject } processing={ processing} onCreateProject={ this.handleOnCreateProject } - onProjectNameChange={projectName => this.setState({ - project: update(project, { name: {$set : projectName }}) - })} - onProjectRefChange={projectRef => this.setState({ - project: update(project, { details: { utm : { code : {$set : projectRef }}}}) - })} + onChangeProjectType={() => this.handleStepChange(WZ_STEP_SELECT_PROD_TYPE) } onProjectChange={ this.handleProjectChange } submitBtnText="Continue" userRoles={ userRoles } From 55ccc79e0bd185441a1212046b2167d1db648edf Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Thu, 29 Jun 2017 14:59:28 +0530 Subject: [PATCH 37/89] Redirect to registration page instead of login page to validate the complete flow for logged out project creation --- src/projects/create/containers/CreateContainer.jsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index 42399f995..13e4663bf 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -7,7 +7,12 @@ import { createProjectWithStatus as createProjectAction, fireProjectDirty, fireP import CoderBot from '../../../components/CoderBot/CoderBot' import spinnerWhileLoading from '../../../components/LoadingSpinner' import ProjectWizard from '../components/ProjectWizard' -import { CREATE_PROJECT_FAILURE, LS_INCOMPLETE_PROJECT, PROJECT_STATUS_IN_REVIEW } from '../../../config/constants' +import { + CREATE_PROJECT_FAILURE, + LS_INCOMPLETE_PROJECT, + PROJECT_STATUS_IN_REVIEW, + ACCOUNTS_APP_REGISTER_URL +} from '../../../config/constants' const page404 = compose( withProps({code:500}) @@ -123,7 +128,7 @@ class CreateConainer extends React.Component { } else { // redirect to registration/login page const retUrl = window.location.origin + '/new-project-callback' - window.location = 'https://accounts.topcoder-dev.com/#!/connect?retUrl=' + retUrl + window.location = ACCOUNTS_APP_REGISTER_URL + '?retUrl=' + retUrl } }) } From be27deda9e3b209807b340be6adb70a300b3d35f Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 3 Jul 2017 13:10:38 +0530 Subject: [PATCH 38/89] =?UTF-8?q?Github=20issue#915,=20Update=20button=20f?= =?UTF-8?q?unctionality=20on=20Connect=20front=20page=20=E2=80=94=20Done.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Home/Home.jsx | 9 ++++----- src/components/Home/Home.scss | 12 ++++++++++++ src/routes.jsx | 2 +- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/components/Home/Home.jsx b/src/components/Home/Home.jsx index ab70ea723..d33e4700c 100644 --- a/src/components/Home/Home.jsx +++ b/src/components/Home/Home.jsx @@ -1,9 +1,9 @@ import React from 'react' import { connect } from 'react-redux' -import { withRouter } from 'react-router' +import { withRouter, Link } from 'react-router' import './Home.scss' import homeImgSrc from '../../assets/images/hero-tc-landing.png' -import { DOMAIN, ACCOUNTS_APP_REGISTER_URL } from '../../config/constants' +import { DOMAIN } from '../../config/constants' class Home extends React.Component { constructor(props) { @@ -18,7 +18,6 @@ class Home extends React.Component { } render() { - const registerUrl = ACCOUNTS_APP_REGISTER_URL const learnMoreUrl = 'https://www.' + DOMAIN +'/what-can-you-do/' return (
    @@ -31,8 +30,8 @@ class Home extends React.Component {

    Companies and agencies, from the world’s largest to the Valley’s newest, use crowdsourcing to deliver high-quality assets, faster.

    Join Connect today to see what we can do for your next project through the power of crowdsourcing, delivered by Topcoder.

    diff --git a/src/components/Home/Home.scss b/src/components/Home/Home.scss index 9c61fa4f2..60d7e0769 100644 --- a/src/components/Home/Home.scss +++ b/src/components/Home/Home.scss @@ -39,7 +39,19 @@ .content-container{ padding: $base-unit*9 0 0 $base-unit*17; .button-bar{ + display: flex; + flex-direction: column; padding-top:$base-unit*6; + + a.tc-link { + text-align: center; + color: #1a85ff; + font-family: Roboto; + font-size: 13px; + margin: 0 auto; + display: inline-block; + margin-top: 10px; + } } h1{ @include tc-heading-extra-large; diff --git a/src/routes.jsx b/src/routes.jsx index bfe7e4851..8f100fdf3 100644 --- a/src/routes.jsx +++ b/src/routes.jsx @@ -80,7 +80,7 @@ const renderTopBarWithProjectsToolBar = () => window.scrollTo(0, 0)} component={ App } onEnter={ redirectToConnect }> - + From 15dd4404b6ab9b318880f0cc622ef8443c202670 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 3 Jul 2017 15:55:15 +0530 Subject: [PATCH 39/89] =?UTF-8?q?Github=20issue#933,=20=20wrong=20product?= =?UTF-8?q?=20id=20in=20the=20deep=20link=20=E2=80=94=20redirected=20to=20?= =?UTF-8?q?404=20Github=20issue#932,=20Create=20URL=20for=20each=20project?= =?UTF-8?q?=20spec=20page=E2=80=A6=20=E2=80=94=20Removed=20disabled=20prod?= =?UTF-8?q?ucts=20from=20project=20wizard=20deep=20links?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/projectWizard/index.js | 3 ++- src/routes.jsx | 13 ++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index bc83bbf76..506433821 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -99,7 +99,8 @@ export function findProductCategory(product) { } for(const pType in products) { for(const prd in products[pType].subtypes) { - if (products[pType].subtypes[prd].id === product) { + const subType = products[pType].subtypes[prd] + if (subType.id === product && !subType.disabled) { return pType } } diff --git a/src/routes.jsx b/src/routes.jsx index 8f100fdf3..87876730c 100644 --- a/src/routes.jsx +++ b/src/routes.jsx @@ -10,6 +10,7 @@ import TopBarContainer from './components/TopBar/TopBarContainer' import ProjectsToolBar from './components/TopBar/ProjectsToolBar' import RedirectComponent from './components/RedirectComponent' import CreateContainer from './projects/create/containers/CreateContainer' +import { findProductCategory } from './config/projectWizard' import {ACCOUNTS_APP_LOGIN_URL, PROJECT_FEED_TYPE_PRIMARY, PROJECT_FEED_TYPE_MESSAGES } from './config/constants' import { getTopic } from './api/messages' import { getFreshToken } from 'tc-accounts' @@ -76,12 +77,21 @@ const redirectToProject = (nextState, replace, callback) => { }) } +const validateCreateProjectParams = (nextState, replace, callback) => { + const product = nextState.params.product + const productCategory = findProductCategory(product) + if (!productCategory) { + replace('/404') + } + callback() +} + const renderTopBarWithProjectsToolBar = () => export default ( window.scrollTo(0, 0)} component={ App } onEnter={ redirectToConnect }> - + @@ -92,6 +102,7 @@ export default ( {/* {reportsListRoutes} */} }} /> + }} /> }} /> ) From 33f15bdfe62cbd56411aac1db063bf7b4a337fc8 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 3 Jul 2017 16:24:25 +0530 Subject: [PATCH 40/89] Disabled visuals design concepts Renamed visual design production as visual design --- src/config/projectWizard/index.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index 506433821..394aec2bb 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -11,18 +11,18 @@ const products = { icon: 'product-wireframes', id: 'wireframes' }, - 'Visual Design': { + 'App Visual Design - Concepts': { brief: '1-15 screens', details: 'Visualize and test your app requirements and ideas', icon: 'product-app-visual-design', - id: 'visual_design_concepts' + id: 'visual_design_concepts', + disabled: true }, - 'App Visual Design - Production': { + 'Visual Design': { brief: '1-15 screens', details: 'Create development-ready designs', - icon: 'project-app-visual-design', - id: 'visual_design_prod', - disabled: true + icon: 'product-app-visual-design', + id: 'visual_design_prod' }, Infographic: { brief: 'Infographic', From 196cd2a4d0214edc3310bedfef29adbca93cd7e2 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 3 Jul 2017 16:26:10 +0530 Subject: [PATCH 41/89] Refactored to have onStepChange and onProjectUpdate methods optional for ProjectWizard component Added docs for ProjectWizard --- src/components/TopBar/ProjectsToolBar.js | 2 - .../create/components/ProjectWizard.jsx | 53 ++++++++++++++----- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/src/components/TopBar/ProjectsToolBar.js b/src/components/TopBar/ProjectsToolBar.js index fb1873888..49889f043 100644 --- a/src/components/TopBar/ProjectsToolBar.js +++ b/src/components/TopBar/ProjectsToolBar.js @@ -155,8 +155,6 @@ class ProjectsToolBar extends Component { processing={ this.props.creatingProject } createProject={ this.createProject } closeModal={ this.hideCreateProjectDialog } - onStepChange={ () => {} } - onProjectUpdate={ () => {} } userRoles={ userRoles } /> } diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index 8d7d9efab..4768a87a9 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -39,7 +39,7 @@ class ProjectWizard extends Component { } componentDidMount() { - const { params } = this.props + const { params, onStepChange } = this.props // load incomplete project from local storage const incompleteProjectStr = window.localStorage.getItem(LS_INCOMPLETE_PROJECT) if(incompleteProjectStr) { @@ -50,7 +50,7 @@ class ProjectWizard extends Component { wizardStep: WZ_STEP_INCOMP_PROJ_CONF, isProjectDirty: false }, () => { - this.props.onStepChange(this.state.wizardStep) + typeof onStepChange === 'function' && onStepChange(this.state.wizardStep) }) } else { // if there is no incomplete project in the local storage, load the wizard with appropriate step @@ -60,9 +60,9 @@ class ProjectWizard extends Component { const prodCategory = findProductCategory(params.product) if (prodCategory) { updateQuery['type'] = { $set : config[prodCategory].id } + updateQuery['details'] = { products : { $set: [params.product] } } + wizardStep = WZ_STEP_FILL_PROJ_DETAILS } - updateQuery['details'] = { products : { $set: [params.product] } } - wizardStep = WZ_STEP_FILL_PROJ_DETAILS } this.setState({ project: update(this.state.project, updateQuery), @@ -70,12 +70,13 @@ class ProjectWizard extends Component { wizardStep, isProjectDirty: false }, () => { - this.props.onStepChange(this.state.wizardStep) + typeof onStepChange === 'function' && onStepChange(this.state.wizardStep) }) } } componentWillReceiveProps(nextProps) { + const { onStepChange } = nextProps const type = _.get(nextProps.project, 'type', null) const product = _.get(nextProps.project, 'details.products[0]', null) const wizardStep = type && product ? WZ_STEP_FILL_PROJ_DETAILS : null @@ -83,7 +84,7 @@ class ProjectWizard extends Component { this.setState({ wizardStep }, () => { - this.props.onStepChange(this.state.wizardStep) + typeof onStepChange === 'function' && onStepChange(this.state.wizardStep) }) } } @@ -93,6 +94,7 @@ class ProjectWizard extends Component { * It also moves the wizard to the project details step if there exists an incomplete project. */ loadIncompleteProject() { + const { onStepChange } = this.props const incompleteProjectStr = window.localStorage.getItem(LS_INCOMPLETE_PROJECT) if(incompleteProjectStr) { const incompleteProject = JSON.parse(incompleteProjectStr) @@ -101,7 +103,7 @@ class ProjectWizard extends Component { dirtyProject: update(this.state.dirtyProject, { $merge : incompleteProject }), wizardStep: WZ_STEP_FILL_PROJ_DETAILS }, () => { - this.props.onStepChange(this.state.wizardStep) + typeof onStepChange === 'function' && onStepChange(this.state.wizardStep) }) } } @@ -110,13 +112,14 @@ class ProjectWizard extends Component { * Removed incomplete project from the local storage and resets the state. Also, moves wizard to the first step. */ removeIncompleteProject() { + const { onStepChange } = this.props window.localStorage.removeItem(LS_INCOMPLETE_PROJECT) this.setState({ project: { details: {} }, dirtyProject: { details: {} }, wizardStep: WZ_STEP_SELECT_PROD_TYPE }, () => { - this.props.onStepChange(this.state.wizardStep) + typeof onStepChange === 'function' && onStepChange(this.state.wizardStep) }) } @@ -133,6 +136,7 @@ class ProjectWizard extends Component { } updateProducts(projectType, product) { + const { onStepChange } = this.props const products = _.get(this.state.project, 'details.products') let updateQuery = { details: { products : { $set : [product] }}} if (!products) { @@ -146,17 +150,18 @@ class ProjectWizard extends Component { dirtyProject: update(this.state.project, updateQuery), wizardStep: WZ_STEP_FILL_PROJ_DETAILS }, () => { - this.props.onStepChange(this.state.wizardStep) + typeof onStepChange === 'function' && onStepChange(this.state.wizardStep) }) } handleProjectChange(change) { + const { onProjectUpdate } = this.props this.setState({ // update only dirtyProject when Form changes the model dirtyProject: _.merge({}, this.state.dirtyProject, unflatten(change)), isProjectDirty: true }, () => { - this.props.onProjectUpdate(this.state.dirtyProject) + typeof onProjectUpdate === 'function' && onProjectUpdate(this.state.dirtyProject) }) } @@ -165,6 +170,7 @@ class ProjectWizard extends Component { } handleStepChange(wizardStep) { + const { onStepChange } = this.props this.setState({ // In this wizard we have just two steps, and this callback is triggered // only to move from the second step back to the first, thus we always @@ -172,7 +178,7 @@ class ProjectWizard extends Component { project: update(this.state.project, { details: { products: {$set : [] }}}), wizardStep }, () => { - this.props.onStepChange(wizardStep) + typeof onStepChange === 'function' && onStepChange(wizardStep) }) } @@ -211,12 +217,33 @@ class ProjectWizard extends Component { } ProjectWizard.propTypes = { + /** + * Callback to be called when the wizard is shown in modal form and close button is clicked. + */ closeModal: PropTypes.func, + /** + * Flag to render the wizard as modal (allows closing of the wizard at any step) + */ showModal: PropTypes.bool, + /** + * Callback to create project. Called when the wizard finishes its last step. + */ createProject: PropTypes.func.isRequired, - onStepChange: PropTypes.func.isRequired, - onProjectUpdate: PropTypes.func.isRequired, + /** + * Callback called on every step change in the wizard. + */ + onStepChange: PropTypes.func, + /** + * Callback called for every change in project details. + */ + onProjectUpdate: PropTypes.func, + /** + * Flag which indicates that a project creation is in progress. + */ processing: PropTypes.bool.isRequired, + /** + * Roles of the logged in user. Used to determine anonymous access. + */ userRoles: PropTypes.arrayOf(PropTypes.string) } From d66e8bedf01d7393bf91e5fd342fa1371dbbb29e Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 4 Jul 2017 11:31:50 +0530 Subject: [PATCH 42/89] Fixed bug which was not allowing the new-project url to be opened without product in URL params --- src/routes.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes.jsx b/src/routes.jsx index 87876730c..e0666221d 100644 --- a/src/routes.jsx +++ b/src/routes.jsx @@ -80,7 +80,7 @@ const redirectToProject = (nextState, replace, callback) => { const validateCreateProjectParams = (nextState, replace, callback) => { const product = nextState.params.product const productCategory = findProductCategory(product) - if (!productCategory) { + if (product && product.trim().length > 0 && !productCategory) { replace('/404') } callback() From 30a26039fcb84f96f0d0d47f57abaa0a003b194e Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Wed, 5 Jul 2017 01:06:07 +0300 Subject: [PATCH 43/89] Styling #890 --- .../IncompleteProjectConfirmation.js | 3 +- .../IncompleteProjectConfirmation.scss | 33 +++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/projects/create/components/IncompleteProjectConfirmation.js b/src/projects/create/components/IncompleteProjectConfirmation.js index 3ba57e619..91f5fd349 100644 --- a/src/projects/create/components/IncompleteProjectConfirmation.js +++ b/src/projects/create/components/IncompleteProjectConfirmation.js @@ -5,9 +5,10 @@ function IncompleteProjectConfirmation({ loadIncompleteProject, removeIncomplete return (
    +

    Hello Victor G

    You created a project with us recently
    -
    Do you want to continue where you left off, or create a new project?
    +

    Do you want to continue where you left off, or create a new project?

    diff --git a/src/projects/create/components/IncompleteProjectConfirmation.scss b/src/projects/create/components/IncompleteProjectConfirmation.scss index f748a84b2..1472f8c9d 100644 --- a/src/projects/create/components/IncompleteProjectConfirmation.scss +++ b/src/projects/create/components/IncompleteProjectConfirmation.scss @@ -5,10 +5,39 @@ display: flex; flex-direction: column; align-items: center; - + .connect-logo { + position: absolute; + left: 20px; + top: 20px; + } + h3 { + @include roboto-light; + margin-bottom: 12 * $base_unit; + color: $tc-black; + line-height: 40px; + font-size: 36px; + } + h5 { + @include roboto-medium; + margin-bottom: 4 * $base_unit; + color: $tc-gray-80; + line-height: 30px; + font-size: 20px; + } + p { + @include roboto; + margin-bottom: 10 * $base_unit; + color: $tc-gray-60; + line-height: 25px; + font-size: 15px; + } .actions { + button { + display: block; + margin: 0 auto; + } button + button { - margin-left: 4 * $base_unit; + margin-top: 4 * $base_unit; } } } \ No newline at end of file From a8aded48548c0574475dfddfca33ce855910a595 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Thu, 6 Jul 2017 14:26:05 +0530 Subject: [PATCH 44/89] =?UTF-8?q?Github=20issue#932,=20Create=20URL=20for?= =?UTF-8?q?=20each=20project=20spec=20page...=20=E2=80=94=20Removed=20/pro?= =?UTF-8?q?duct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes.jsx b/src/routes.jsx index e0666221d..a3fdf65ae 100644 --- a/src/routes.jsx +++ b/src/routes.jsx @@ -91,7 +91,7 @@ const renderTopBarWithProjectsToolBar = () => window.scrollTo(0, 0)} component={ App } onEnter={ redirectToConnect }> - + From 4f38addc3961eb4259788373573939da63ff2464 Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Mon, 10 Jul 2017 22:01:09 +0300 Subject: [PATCH 45/89] Fix button animation -- #906 --- src/projects/create/components/ProductCard.js | 2 +- src/projects/create/components/SelectProduct.scss | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/projects/create/components/ProductCard.js b/src/projects/create/components/ProductCard.js index e70a15c55..59d10ab15 100644 --- a/src/projects/create/components/ProductCard.js +++ b/src/projects/create/components/ProductCard.js @@ -29,7 +29,7 @@ class ProductCard extends React.Component { {icon}

    {p.type}

    {p.info}
    -
    Create project
    +
    ) } diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss index 876de6251..5826fef0f 100644 --- a/src/projects/create/components/SelectProduct.scss +++ b/src/projects/create/components/SelectProduct.scss @@ -32,7 +32,9 @@ -moz-transition: 300ms all ease; -webkit-transition: 300ms all ease; .tc-btn { - display: none; + position: absolute; + bottom: 30px; + opacity: 0 } &:hover { transition: 300ms all ease; @@ -45,13 +47,7 @@ color: $tc-dark-blue; } .tc-btn { - display: block; - position: absolute; - bottom: 30px; - &:hover { - background-image: linear-gradient(0deg, #3996FF 0%, #127BF3 100%); - box-shadow: inset 0 1px 3px 0 rgba(71,71,79,0.38); - } + opacity: 1; } } &:active { From 9498602afc85df2ed4d25ece8217306b0ad6bf30 Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Mon, 10 Jul 2017 22:08:52 +0300 Subject: [PATCH 46/89] Fix #855 --- src/components/ActionCard/ActionCard.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/ActionCard/ActionCard.scss b/src/components/ActionCard/ActionCard.scss index 8b8d742a4..81aa22701 100644 --- a/src/components/ActionCard/ActionCard.scss +++ b/src/components/ActionCard/ActionCard.scss @@ -145,6 +145,7 @@ color: $tc-gray-70; line-height: $base-unit*5; padding: 10px 0; + word-break: break-word; &.comment-section { margin-bottom: -50px; From 97f1f41e964be06a473a986873174cf1cdf94c2c Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 11 Jul 2017 12:06:36 +0530 Subject: [PATCH 47/89] =?UTF-8?q?Github=20issue#959,=20Copy=20issue=20for?= =?UTF-8?q?=20incomplete=20project=20confirmation=20page=20=E2=80=94=20Don?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../create/components/IncompleteProjectConfirmation.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/projects/create/components/IncompleteProjectConfirmation.js b/src/projects/create/components/IncompleteProjectConfirmation.js index 91f5fd349..8e0fcc5b9 100644 --- a/src/projects/create/components/IncompleteProjectConfirmation.js +++ b/src/projects/create/components/IncompleteProjectConfirmation.js @@ -6,9 +6,9 @@ function IncompleteProjectConfirmation({ loadIncompleteProject, removeIncomplete return (
    -

    Hello Victor G

    -
    You created a project with us recently
    -

    Do you want to continue where you left off, or create a new project?

    +

    Welcome back!

    +
    You started a project with us recently.
    +

    Do you want to continue where you left off or create a new project?

    From 43e5a89893d44395ead77d111ea9e75dcb19d87c Mon Sep 17 00:00:00 2001 From: Victor George Date: Tue, 11 Jul 2017 12:42:44 -0700 Subject: [PATCH 48/89] NPM packages updated so we can compile correctly --- package-lock.json | 482 ++++++++++++++++++++++++++++++++++++---------- package.json | 26 +-- 2 files changed, 398 insertions(+), 110 deletions(-) diff --git a/package-lock.json b/package-lock.json index b5c79afc1..5b933988a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -245,7 +245,7 @@ "integrity": "sha1-yo0qWoxV8/nbyq5yE19ph/zZH1k=" }, "appirio-tech-react-components": { - "version": "github:appirio-tech/react-components#9e994ab7618e0872bfddf34d5a069c9ca0688a00" + "version": "github:appirio-tech/react-components#2752f92d27dda3a88a89abb316f4a4e87d8165ac" }, "appirio-tech-webpack-config": { "version": "github:appirio-tech/webpack-config#ddc36a13fe3c37baafe8e4c2b1d7a5b0c7ae1d38", @@ -1205,6 +1205,11 @@ "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", "dev": true }, + "chain-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.0.tgz", + "integrity": "sha1-DUqzfn4Y6tC9xHuSB2QRjOWHM9w=" + }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -1884,6 +1889,11 @@ } } }, + "dom-helpers": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.2.1.tgz", + "integrity": "sha1-MgPgf+0he9H0JLAZc1WC/Deyglo=" + }, "dom-serializer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", @@ -1951,15 +1961,25 @@ } }, "draft-js-export-html": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/draft-js-export-html/-/draft-js-export-html-0.4.0.tgz", - "integrity": "sha1-ST1jDzb1TEGeVhHJimbhvhRjObY=" + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/draft-js-export-html/-/draft-js-export-html-0.5.4.tgz", + "integrity": "sha1-4kkn2j7+bz3xfx12BqncYUHb9y0=" }, "draft-js-export-markdown": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/draft-js-export-markdown/-/draft-js-export-markdown-0.2.2.tgz", "integrity": "sha1-WwoaEFkdi5YZnctwsEsat963KjM=" }, + "draft-js-import-element": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/draft-js-import-element/-/draft-js-import-element-0.4.3.tgz", + "integrity": "sha1-eFOBouAyOpg2z6hWxELpATvUgqQ=" + }, + "draft-js-import-html": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/draft-js-import-html/-/draft-js-import-html-0.3.2.tgz", + "integrity": "sha1-zCBaYZLKwsZSBXZohwLuMfUkGBA=" + }, "draft-js-utils": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/draft-js-utils/-/draft-js-utils-0.1.7.tgz", @@ -2795,7 +2815,11 @@ "version": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", "integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=", "dev": true, - "optional": true + "optional": true, + "requires": { + "delegates": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz" + } }, "asn1": { "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -2836,22 +2860,35 @@ "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, - "optional": true + "optional": true, + "requires": { + "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + } }, "block-stream": { "version": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true + "dev": true, + "requires": { + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + } }, "boom": { "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true + "dev": true, + "requires": { + "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + } }, "brace-expansion": { "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=", - "dev": true + "dev": true, + "requires": { + "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } }, "buffer-shims": { "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", @@ -2868,7 +2905,14 @@ "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, - "optional": true + "optional": true, + "requires": { + "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } }, "code-point-at": { "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -2878,13 +2922,19 @@ "combined-stream": { "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "dev": true + "dev": true, + "requires": { + "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } }, "commander": { "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, - "optional": true + "optional": true, + "requires": { + "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } }, "concat-map": { "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2905,13 +2955,19 @@ "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, - "optional": true + "optional": true, + "requires": { + "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + } }, "dashdash": { "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "optional": true, + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + }, "dependencies": { "assert-plus": { "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -2925,7 +2981,10 @@ "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "dev": true, - "optional": true + "optional": true, + "requires": { + "ms": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + } }, "deep-extend": { "version": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", @@ -2948,7 +3007,10 @@ "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + } }, "escape-string-regexp": { "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -2977,7 +3039,12 @@ "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=", "dev": true, - "optional": true + "optional": true, + "requires": { + "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz" + } }, "fs.realpath": { "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2987,19 +3054,40 @@ "fstream": { "version": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", "integrity": "sha1-YE6Kkv4m/9n2+uMDmdSYThqyKCI=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz" + } }, "fstream-ignore": { "version": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "dev": true, - "optional": true + "optional": true, + "requires": { + "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz" + } }, "gauge": { "version": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz", "integrity": "sha1-HCOFX5YvF7OtPQ3HRD8wRULt/gk=", "dev": true, - "optional": true + "optional": true, + "requires": { + "aproba": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "console-control-strings": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "has-unicode": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "wide-align": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz" + } }, "generate-function": { "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", @@ -3011,13 +3099,19 @@ "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true, - "optional": true + "optional": true, + "requires": { + "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } }, "getpass": { "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=", "dev": true, "optional": true, + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + }, "dependencies": { "assert-plus": { "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -3030,7 +3124,15 @@ "glob": { "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + } }, "graceful-fs": { "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", @@ -3047,13 +3149,22 @@ "version": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "dev": true, - "optional": true + "optional": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", + "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + } }, "has-ansi": { "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, - "optional": true + "optional": true, + "requires": { + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + } }, "has-unicode": { "version": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -3065,7 +3176,13 @@ "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, - "optional": true + "optional": true, + "requires": { + "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + } }, "hoek": { "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", @@ -3076,12 +3193,21 @@ "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, - "optional": true + "optional": true, + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", + "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz" + } }, "inflight": { "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true + "dev": true, + "requires": { + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + } }, "inherits": { "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -3097,13 +3223,22 @@ "is-fullwidth-code-point": { "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true + "dev": true, + "requires": { + "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + } }, "is-my-json-valid": { "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=", "dev": true, - "optional": true + "optional": true, + "requires": { + "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } }, "is-property": { "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -3132,7 +3267,10 @@ "version": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "dev": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + } }, "jsbn": { "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -3162,7 +3300,12 @@ "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=", "dev": true, - "optional": true + "optional": true, + "requires": { + "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "verror": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + } }, "mime-db": { "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", @@ -3172,12 +3315,18 @@ "mime-types": { "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", "integrity": "sha1-9+99l1g/yvO30oK2+LVnnaselO4=", - "dev": true + "dev": true, + "requires": { + "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz" + } }, "minimatch": { "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", - "dev": true + "dev": true, + "requires": { + "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz" + } }, "minimist": { "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", @@ -3187,7 +3336,10 @@ "mkdirp": { "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true + "dev": true, + "requires": { + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } }, "ms": { "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", @@ -3199,19 +3351,39 @@ "version": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz", "integrity": "sha1-ZArFUZj2qSWXLgwWxKwmoDTV7Mk=", "dev": true, - "optional": true + "optional": true, + "requires": { + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "npmlog": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", + "rc": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz", + "request": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", + "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "tar": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "tar-pack": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz" + } }, "nopt": { "version": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, - "optional": true + "optional": true, + "requires": { + "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz" + } }, "npmlog": { "version": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", "integrity": "sha1-0DlQ4OeM4VJ7om0qdZLpNIrD518=", "dev": true, - "optional": true + "optional": true, + "requires": { + "are-we-there-yet": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", + "console-control-strings": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "gauge": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz", + "set-blocking": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + } }, "number-is-nan": { "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -3233,7 +3405,10 @@ "once": { "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true + "dev": true, + "requires": { + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + } }, "path-is-absolute": { "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -3250,7 +3425,10 @@ "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, - "optional": true + "optional": true, + "requires": { + "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + } }, "process-nextick-args": { "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", @@ -3274,6 +3452,12 @@ "integrity": "sha1-xepWS7B6/5/TpbMukGwdOmWUD+o=", "dev": true, "optional": true, + "requires": { + "deep-extend": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", + "ini": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + }, "dependencies": { "minimist": { "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", @@ -3287,18 +3471,52 @@ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", "integrity": "sha1-qeb+w8fdqF+LsbO6cChgRVb8gl4=", "dev": true, - "optional": true + "optional": true, + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } }, "request": { "version": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", "dev": true, - "optional": true + "optional": true, + "requires": { + "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", + "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", + "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "qs": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz", + "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" + } }, "rimraf": { "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", - "dev": true + "dev": true, + "requires": { + "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz" + } }, "semver": { "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", @@ -3322,13 +3540,27 @@ "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, - "optional": true + "optional": true, + "requires": { + "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + } }, "sshpk": { "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", "integrity": "sha1-1agEziJpVRVjjnmNviMnPeBwpfo=", "dev": true, "optional": true, + "requires": { + "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", + "jodid25519": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + }, "dependencies": { "assert-plus": { "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -3346,7 +3578,12 @@ "string-width": { "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true + "dev": true, + "requires": { + "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + } }, "stringstream": { "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -3357,7 +3594,10 @@ "strip-ansi": { "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + } }, "strip-json-comments": { "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -3374,25 +3614,52 @@ "tar": { "version": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true + "dev": true, + "requires": { + "block-stream": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + } }, "tar-pack": { "version": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz", "integrity": "sha1-MJMYFkGPVa/E0hd1r91nIM7kXa4=", "dev": true, "optional": true, + "requires": { + "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", + "fstream-ignore": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", + "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", + "tar": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "uid-number": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" + }, "dependencies": { "once": { "version": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", "dev": true, - "optional": true + "optional": true, + "requires": { + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + } }, "readable-stream": { "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=", "dev": true, - "optional": true + "optional": true, + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } } } }, @@ -3400,7 +3667,10 @@ "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "dev": true, - "optional": true + "optional": true, + "requires": { + "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + } }, "tunnel-agent": { "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", @@ -3435,13 +3705,19 @@ "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "dev": true, - "optional": true + "optional": true, + "requires": { + "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + } }, "wide-align": { "version": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", "integrity": "sha1-QO3egCpx/qHwcNo+YtzaLnrdlq0=", "dev": true, - "optional": true + "optional": true, + "requires": { + "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + } }, "wrappy": { "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -4902,12 +5178,6 @@ "resolved": "https://registry.npmjs.org/ngreact/-/ngreact-0.2.0.tgz", "integrity": "sha1-PaQ6SIFYPFTMUDXim7SNnhFnVYc=" }, - "no-case": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", - "integrity": "sha1-euuhxzpSGEJlVUt9wDuvcg34AIE=", - "dev": true - }, "nock": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/nock/-/nock-8.2.1.tgz", @@ -5858,6 +6128,9 @@ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=" }, + "qs": { + "version": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8" + }, "query-string": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz", @@ -5905,10 +6178,15 @@ "dev": true }, "react": { - "version": "15.5.4", - "resolved": "https://registry.npmjs.org/react/-/react-15.5.4.tgz", - "integrity": "sha1-+oPrAVBqsjfNwcjDsc6o3gEr8Ec=", + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/react/-/react-15.6.1.tgz", + "integrity": "sha1-uqhDTsZ4C96ZfNw4C3nNM7ljk98=", "dependencies": { + "create-react-class": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz", + "integrity": "sha1-q0SEl8JlZuHilBPogyB9V8/nvtQ=" + }, "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", @@ -5922,26 +6200,14 @@ } }, "react-addons-css-transition-group": { - "version": "15.5.2", - "resolved": "https://registry.npmjs.org/react-addons-css-transition-group/-/react-addons-css-transition-group-15.5.2.tgz", - "integrity": "sha1-6n4Knw4cJ8pCbaTv01WZFb1C6tI=", - "dependencies": { - "fbjs": { - "version": "0.8.12", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - } - } + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/react-addons-css-transition-group/-/react-addons-css-transition-group-15.6.0.tgz", + "integrity": "sha1-aYh89uSHTSXNZuIqaZ4p8NZIq6A=" }, "react-addons-pure-render-mixin": { - "version": "15.5.2", - "resolved": "https://registry.npmjs.org/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-15.5.2.tgz", - "integrity": "sha1-67hGrrL9dxM2wjKCKSMQj4fVv/I=", + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-15.6.0.tgz", + "integrity": "sha1-hLoChjDN+JI50W8btNmP6GVlGBM=", "dependencies": { "fbjs": { "version": "0.8.12", @@ -5995,9 +6261,9 @@ "integrity": "sha1-09IvSZ3NJij1vp0ofwOHfMsLjwY=" }, "react-color": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.12.0.tgz", - "integrity": "sha1-VL+T5Ru43Cx2KCrBJ/hbNLhs1zQ=" + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.13.1.tgz", + "integrity": "sha512-HpWtDtq1xzPzDGoMkyGksLfggXefT7CRRa05eOcKQ+bsylO2T+bJYssDhx9aYWyk4fAsjxLq32NLkDq3TxkXrA==" }, "react-datetime": { "version": "2.7.1", @@ -6012,9 +6278,9 @@ } }, "react-dom": { - "version": "15.5.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.5.4.tgz", - "integrity": "sha1-ugwoeG/VLtfk8hNf4CiNRirvk9o=", + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz", + "integrity": "sha1-LLDtQZEDjlPCCes6eaI+Kkz5lHA=", "dependencies": { "fbjs": { "version": "0.8.12", @@ -6028,6 +6294,11 @@ } } }, + "react-dom-factories": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/react-dom-factories/-/react-dom-factories-1.0.0.tgz", + "integrity": "sha1-9DwF5QUbME8zJRYY1byFmynka20=" + }, "react-dotdotdot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/react-dotdotdot/-/react-dotdotdot-1.1.0.tgz", @@ -6145,9 +6416,9 @@ "integrity": "sha1-DcZNON8XZ+93Z4xclBkAZMsRsM0=" }, "react-modal": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-1.7.7.tgz", - "integrity": "sha1-cCBfUcWHCMSHr/aBuj/teUbjkdk=" + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-1.9.7.tgz", + "integrity": "sha512-oZNqI0ZnPD7NnfObrCMz2hxHTAw5oEuhZJ+gnyFNIQB2rR8h1YbLQTfhms1mtSJigb0J23OOWElHjXYYaKO+wg==" }, "react-onclickoutside": { "version": "4.9.0", @@ -6196,9 +6467,9 @@ "integrity": "sha1-2BIkpHTxXonDXA6mwqc/Iyp2cSg=" }, "react-scroll": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.5.2.tgz", - "integrity": "sha1-8Q8UhA0xOKEh0sDwSTO7/uQZOXU=", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.5.4.tgz", + "integrity": "sha512-dK6560l7Js0JoVV6hdoTQmMnpE2Nkv5gJZgZlBuu2tGTnhgqR62OQ8GE2zNG0NyKB5YREK1hpeVqHDixad+pYw==", "dependencies": { "object-assign": { "version": "4.1.1", @@ -6232,6 +6503,18 @@ "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-4.3.2.tgz", "integrity": "sha1-lipSxoys6uQIwYrOzsKQSbgeQvo=" }, + "react-transition-group": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.0.tgz", + "integrity": "sha1-tR/JIbDDg1p+98Vxx5/ILHPpIE8=", + "dependencies": { + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=" + } + } + }, "react-vendor-prefix": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/react-vendor-prefix/-/react-vendor-prefix-0.0.1.tgz", @@ -6335,9 +6618,9 @@ "dev": true }, "redux": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.6.0.tgz", - "integrity": "sha1-iHwrPQub2G7KK+cFccJ2VMGeGI0=" + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.1.tgz", + "integrity": "sha512-iEVTlORM5mv6xb3ZAOyrVehVUD+W87jdFAX6SYVgZh3/SQAWFSxTRJOqPWQdvo4VN4lJkNDvqKlBXBabsJTSkA==" }, "redux-form": { "version": "4.2.2", @@ -6366,9 +6649,9 @@ "integrity": "sha1-PBZ240Qb7FD+jZJFfAF8tjaZM08=" }, "redux-segment": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/redux-segment/-/redux-segment-1.6.1.tgz", - "integrity": "sha1-gT0HNK57XeFOhjICr9IMJN55Ai4=" + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/redux-segment/-/redux-segment-1.6.2.tgz", + "integrity": "sha1-FXaHeZN+4CzZLgqBKzeau7sbex8=" }, "redux-thunk": { "version": "2.2.0", @@ -7159,6 +7442,11 @@ "dev": true, "optional": true }, + "synthetic-dom": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/synthetic-dom/-/synthetic-dom-0.2.1.tgz", + "integrity": "sha1-bHb8+R6ppSMTGPj0FeJ4g9U034Y=" + }, "table": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", @@ -7192,10 +7480,10 @@ "dev": true }, "tc-accounts": { - "version": "git+https://github.com/appirio-tech/accounts-app.git#e24fddd041d2fa25edb037d64870dbd59cea8da9" + "version": "git+https://github.com/appirio-tech/accounts-app.git#90945856275749e6e124b4e4bb6964513547b415" }, "tc-ui": { - "version": "git+https://github.com/appirio-tech/tc-ui.git#36ad570a72a03ee880951f65a98d6f1d7426067a", + "version": "git+https://github.com/appirio-tech/tc-ui.git#d7e830f7e63a90b09ed96616f0a37516b0c412c5", "dependencies": { "react": { "version": "0.14.9", diff --git a/package.json b/package.json index 590895d3c..76ad3ad5a 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,11 @@ "webpack-dev-server": "^1.12.1" }, "dependencies": { - "appirio-tech-react-components": "appirio-tech/react-components.git#feature/connectv2", + "appirio-tech-react-components": "github:appirio-tech/react-components#feature/connectv2", "axios": "^0.13.1", "classnames": "^2.2.3", "draft-js": "^0.7.0", - "draft-js-export-html": "^0.5.0", + "draft-js-export-html": "^0.5.4", "draft-js-export-markdown": "^0.2.1", "draft-js-import-html": "^0.3.2", "fbemitter": "^2.1.1", @@ -48,27 +48,27 @@ "isomorphic-fetch": "^2.2.1", "lodash": "^4.16.4", "moment": "^2.14.1", - "react": "^15.4.2", - "react-addons-css-transition-group": "^15.3.1", - "react-addons-pure-render-mixin": "^15.3.1", - "react-color": "^2.2.7", + "react": "^15.6.1", + "react-addons-css-transition-group": "^15.6.0", + "react-addons-pure-render-mixin": "^15.6.0", + "react-color": "^2.13.1", "react-datetime": "2.7.1", - "react-dom": "^15.3.1", + "react-dom": "^15.6.1", "react-dotdotdot": "^1.0.4", "react-layout-pane": "^0.1.16", - "react-modal": "^1.4.0", + "react-modal": "^1.9.7", "react-redux": "^4.4.5", "react-router": "^2.7.0", "react-s-alert": "^1.1.4", - "react-scroll": "^1.2.0", + "react-scroll": "^1.5.4", "react-stickynode": "^1.2.1", "react-text-truncate": "^0.8.3", "recompose": "^0.20.2", - "redux": "^3.5.2", + "redux": "^3.7.1", "redux-promise-middleware": "^4.0.0", - "redux-segment": "^1.6.1", + "redux-segment": "^1.6.2", "redux-thunk": "^2.1.0", - "tc-accounts": "https://github.com/appirio-tech/accounts-app.git#dev", - "tc-ui": "https://github.com/appirio-tech/tc-ui.git#feature/connectv2" + "tc-accounts": "git+https://github.com/appirio-tech/accounts-app.git#dev", + "tc-ui": "git+https://github.com/appirio-tech/tc-ui.git#feature/connectv2" } } From acd6ed8976b69c673989f68ab48c0bdd085939c7 Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Thu, 13 Jul 2017 00:01:05 +0300 Subject: [PATCH 49/89] Fix #948 --- src/components/Panel/Panel.scss | 2 +- src/components/TeamManagement/TeamManagement.scss | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/components/Panel/Panel.scss b/src/components/Panel/Panel.scss index 52e09411b..f43cbebcb 100644 --- a/src/components/Panel/Panel.scss +++ b/src/components/Panel/Panel.scss @@ -26,7 +26,7 @@ .btn-action{ position: absolute; top: $base-unit*3; - right: $base-unit*3; + right: $base-unit*4; border-radius: 21px; height: 4 * $base-unit; width: 4 * $base-unit; diff --git a/src/components/TeamManagement/TeamManagement.scss b/src/components/TeamManagement/TeamManagement.scss index cbab61f3c..b2a490f05 100644 --- a/src/components/TeamManagement/TeamManagement.scss +++ b/src/components/TeamManagement/TeamManagement.scss @@ -39,6 +39,7 @@ $tc-body-extra-small : 12px; @include roboto; font-size: $tc-label-lg; display: flex; + min-height: 60px; .profile { flex-grow: 1; margin-left: $base-unit*2; @@ -69,7 +70,7 @@ $tc-body-extra-small : 12px; } } .buttons{ - + display: none; button, a { display: block; float: right; @@ -116,6 +117,10 @@ $tc-body-extra-small : 12px; &:hover, &.active{ background-color: $tc-gray-neutral-light; + + .buttons{ + display: block; + } } } } From 72433415553e38b0bc24b1ff435e30d9e6dd3455 Mon Sep 17 00:00:00 2001 From: Victor George Date: Thu, 13 Jul 2017 09:58:04 -0700 Subject: [PATCH 50/89] tiny fix to get user management to design. --- .../TeamManagement/TeamManagement.scss | 193 +++++++++++------- 1 file changed, 122 insertions(+), 71 deletions(-) diff --git a/src/components/TeamManagement/TeamManagement.scss b/src/components/TeamManagement/TeamManagement.scss index b2a490f05..46822f0a5 100644 --- a/src/components/TeamManagement/TeamManagement.scss +++ b/src/components/TeamManagement/TeamManagement.scss @@ -1,45 +1,48 @@ @import "~tc-ui/src/styles/tc-includes"; // @import "../../styles/variables"; // TODO where do we add these -$tc-heading-extra-small : 14px; -$tc-body-small : 14px; -$tc-body-extra-small : 12px; +$tc-heading-extra-small: 14px; +$tc-body-small: 14px; +$tc-body-extra-small: 12px; @mixin icon($url) { background: url("../../assets/images/#{$url}") no-repeat; - } /* wrap to avoid conflicts */ .team-management { - .panel { background: $tc-white; border-radius: $corner-radius; padding: $base-unit*2 0; + .panel-title, .panel-body, - .panel-row{ + .panel-row { padding: $base-unit*2 $base-unit*4; } - .panel-title{ + + .panel-title { @include roboto-medium; color: $tc-gray-50; text-transform: uppercase; font-size: $tc-label-sm; line-height: $base-unit*3; } - .panel-body{ - &.join-project{ + + .panel-body { + &.join-project { justify-content: center; background-color: $tc-gray-neutral-light; } } - .panel-row{ + + .panel-row { @include roboto; font-size: $tc-label-lg; display: flex; min-height: 60px; + .profile { flex-grow: 1; margin-left: $base-unit*2; @@ -60,7 +63,8 @@ $tc-body-extra-small : 12px; margin-top: 6px; } } - .title{ + + .title { margin-left: $base-unit*2; color: $tc-gray-50; font-size: $tc-label-sm; @@ -69,9 +73,12 @@ $tc-body-extra-small : 12px; color: $tc-orange; } } - .buttons{ + + .buttons { display: none; - button, a { + + button, + a { display: block; float: right; border: none; @@ -83,25 +90,32 @@ $tc-body-extra-small : 12px; background-size: 16px; display: inline-block; margin-right: -$base-unit; - margin-top: $base-unit; - &:hover{ + margin-top: 12px; + transition: 250ms all ease-in-out; + + &:hover { opacity: 1.0; } } - .btn-user-remove{ + + .btn-user-remove { // @include icon('user-remove.svg'); } - .btn-promote{ + + .btn-promote { // @include icon('promote.svg'); } - .btn-leave{ + + .btn-leave { // @include icon('exit.svg'); } } - &.add-team-member{ + + &.add-team-member { cursor: pointer; display: flex; align-items: center; + .add-icon { padding-top: 10px; padding-left: 10px; @@ -114,18 +128,27 @@ $tc-body-extra-small : 12px; border-radius: 33px; } } + &:hover, - &.active{ + &.active { background-color: $tc-gray-neutral-light; - .buttons{ + .buttons { display: block; } } } + + .panel-row:hover { + .title { + display: none; + } + } } + .panel.modal-active { position: relative; + .modal-overlay { position: absolute; top: 0; @@ -137,30 +160,33 @@ $tc-body-extra-small : 12px; border-radius: $corner-radius; z-index: 1; } + .modal, .panel-title { position: relative; z-index: 2; } } - .modal{ + + .modal { background: $tc-gray-neutral-light; border-radius: $corner-radius; position: relative; padding: $base-unit*2 0; - .btn-close{ + .btn-close { width: 14px; height: 14px; display: block; - position:absolute; + position: absolute; top: $base-unit*3; right: $base-unit*3; // @include icon('x-mark-big.svg'); background-size: $tc-heading-extra-small; overflow: hidden; } - .modal-title{ + + .modal-title { @include roboto-bold; font-size: $tc-label-lg; padding: $base-unit*2 $base-unit*4 0 $base-unit*4; @@ -179,14 +205,15 @@ $tc-body-extra-small : 12px; color: $tc-red; } } - .modal-body{ + + .modal-body { @include roboto; font-size: $tc-label-md; line-height: $base-unit * 4; margin: $base-unit*2 $base-unit*4; - input{ - display:block; + input { + display: block; height: 38px; margin: 0 auto; color: $tc-black; @@ -194,27 +221,28 @@ $tc-body-extra-small : 12px; border-color: $tc-gray-20; @include tc-label-md; - &[disabled]{ + &[disabled] { color: $tc-gray-20; background: $tc-white; } - &:hover{ + &:hover { border-color: $tc-gray-40; background: $tc-gray-neutral-light; } - &:focus{ - background: $tc-white!important; - border-color: $tc-dark-blue-90!important; + &:focus { + background: $tc-white !important; + border-color: $tc-dark-blue-90 !important; } - &.error{ - border-left: 3px solid $tc-red-70!important; - background: $tc-gray-neutral-light!important; - &:focus{ - background: $tc-white!important; - border-color: $tc-dark-blue-90!important; + &.error { + border-left: 3px solid $tc-red-70 !important; + background: $tc-gray-neutral-light !important; + + &:focus { + background: $tc-white !important; + border-color: $tc-dark-blue-90 !important; } } } @@ -223,13 +251,15 @@ $tc-body-extra-small : 12px; display: none; } - .modal-inline-form{ + .modal-inline-form { display: flex; margin-bottom: $base-unit*2; - button{ + + button { margin-left: $base-unit*2; } - .input-icon-group{ + + .input-icon-group { position: relative; flex-grow: 1; height: 40px; @@ -238,7 +268,8 @@ $tc-body-extra-small : 12px; background: $tc-white; border: 1px solid $tc-gray-20; box-shadow: inset 0px 0px 2px 0px rgba(183, 183, 183, 0.2); - input{ + + input { flex-grow: 1; display: inline-block; border: none; @@ -247,22 +278,30 @@ $tc-body-extra-small : 12px; /* lowercase username placeholder */ - &::-webkit-input-placeholder { text-transform:none; } - &::-moz-placeholder { text-transform:none; } + &::-webkit-input-placeholder { + text-transform: none; + } + + &::-moz-placeholder { + text-transform: none; + } } - .input-icon{ + + .input-icon { height: 30px; margin: 4px; + &:empty { flex-shrink: 0; width: 30px; // @include icon('username-icon.svg'); background-size: 30px 30px; - background-color:$tc-gray-20; + background-color: $tc-gray-20; background-position: center; border-radius: 34px; } - img{ + + img { width: 30px; height: 30px; border-radius: 34px; @@ -270,20 +309,22 @@ $tc-body-extra-small : 12px; } } } + .message { margin-bottom: $base-unit*4; - strong{ + + strong { @include roboto-bold; } } - .error-message{ + + .error-message { display: block; margin: $base-unit*2 auto; @include roboto; - color: $tc-gray-70; font-size: $tc-body-small; - font-style:italic; + font-style: italic; border: 1px solid $tc-red-30; background: $tc-red-10; color: $tc-red-70; @@ -291,30 +332,35 @@ $tc-body-extra-small : 12px; border-radius: $corner-radius; box-sizing: border-box; height: 40px; - strong{ + + strong { @include roboto-bold; } } /* Style for dropdown display */ - .dropdown-demo{ + .dropdown-demo { position: absolute; top: 42px; left: 0px; width: 100%; } } - &.add-team-member{ + + &.add-team-member { margin-bottom: -$base-unit*2; } + .tab-group { - width:160px; + width: 160px; list-style-type: none; padding: 0; margin: 10px 0 0 0; - ul{ + + ul { display: flex; - width:160px; + width: 160px; } + li { flex: initial; height: 30px; @@ -323,39 +369,43 @@ $tc-body-extra-small : 12px; text-align: center; @include roboto-medium; font-size: $tc-body-extra-small; - line-height:18px; + line-height: 18px; box-shadow: none; background-color: $tc-white; border: 1px solid $tc-gray-30; cursor: pointer; - a{ + + a { color: $tc-gray-80; font-weight: normal; } + &:hover { } + &.active { cursor: default; background: $tc-dark-blue-90; color: $tc-white; // box-shadow: inset 0px 1px 3px 0px rgba(71,71,79,0.38); - a{ + a { } } - &:first-child{ + + &:first-child { border-radius: 2px 0 0 2px; - border-right:none; + border-right: none; } - &:last-child{ - border-radius: 0 2px 2px 0 ; - border-left:none; + + &:last-child { + border-radius: 0 2px 2px 0; + border-left: none; } } } } - - .member-dropdown{ + .member-dropdown { @include roboto; transform: translateY(-100%); position: absolute; @@ -364,8 +414,8 @@ $tc-body-extra-small : 12px; width: 100%; margin: 0 auto; background: $tc-white; - border:1px solid $tc-gray-30; - box-shadow: 0px 1px 2px 1px rgba(38,38,40,0.09); + border: 1px solid $tc-gray-30; + box-shadow: 0px 1px 2px 1px rgba(38, 38, 40, 0.09); border-radius: 2px; padding: 10px 0 10px 0; max-height: 210px; @@ -378,7 +428,7 @@ $tc-body-extra-small : 12px; flex-shrink: 0; } - .dropdown-cell{ + .dropdown-cell { display: flex; align-items: center; cursor: pointer; @@ -386,6 +436,7 @@ $tc-body-extra-small : 12px; &:hover { background: $tc-dark-blue-10; } + .handle { font-size: $tc-label-lg; color: $tc-gray-80; From 1637e1c0dd8299470cefadb1576aed5b40e7f2d2 Mon Sep 17 00:00:00 2001 From: Victor George Date: Thu, 13 Jul 2017 09:58:29 -0700 Subject: [PATCH 51/89] package-lock file updates --- package-lock.json | 4296 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 3811 insertions(+), 485 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5b933988a..aa7333dae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2,6 +2,7 @@ "name": "connect-app", "version": "1.1.0", "lockfileVersion": 1, + "requires": true, "dependencies": { "abab": { "version": "1.0.3", @@ -20,7 +21,11 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", - "dev": true + "dev": true, + "requires": { + "mime-types": "2.1.15", + "negotiator": "0.6.1" + } }, "acorn": { "version": "4.0.13", @@ -32,6 +37,9 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", "dev": true, + "requires": { + "acorn": "2.7.0" + }, "dependencies": { "acorn": { "version": "2.7.0", @@ -46,6 +54,9 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, + "requires": { + "acorn": "3.3.0" + }, "dependencies": { "acorn": { "version": "3.3.0", @@ -59,7 +70,11 @@ "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true + "dev": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } }, "ajv-keywords": { "version": "1.5.1", @@ -70,7 +85,12 @@ "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=" + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } }, "alphanum-sort": { "version": "1.0.2", @@ -132,7 +152,10 @@ "angular-ui-router": { "version": "0.2.18", "resolved": "https://registry.npmjs.org/angular-ui-router/-/angular-ui-router-0.2.18.tgz", - "integrity": "sha1-Ha1wQVxz1wRv0uEw3wPWL7dGQ2A=" + "integrity": "sha1-Ha1wQVxz1wRv0uEw3wPWL7dGQ2A=", + "requires": { + "angular": "1.6.4" + } }, "ansi-escapes": { "version": "1.4.0", @@ -156,27 +179,61 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", - "dev": true + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "2.3.11" + } }, "appirio-tech-api-schemas": { "version": "5.0.70", "resolved": "https://registry.npmjs.org/appirio-tech-api-schemas/-/appirio-tech-api-schemas-5.0.70.tgz", - "integrity": "sha1-3RtCG/rw8PSokKRTgHSlVYDQy8s=" + "integrity": "sha1-3RtCG/rw8PSokKRTgHSlVYDQy8s=", + "requires": { + "auto-config-fake-server": "2.0.604" + } }, "appirio-tech-client-app-layer": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/appirio-tech-client-app-layer/-/appirio-tech-client-app-layer-0.1.3.tgz", "integrity": "sha1-uO5YdHMM2r209RE8NMQvwOsxoOs=", + "requires": { + "axios": "0.8.1", + "history": "1.17.0", + "html-webpack-plugin": "1.7.0", + "humps": "0.6.0", + "isomorphic-fetch": "2.2.1", + "jwt-decode": "1.5.1", + "lodash": "4.17.4", + "normalizr": "1.4.1", + "q": "1.5.0", + "react": "0.14.9", + "react-dom": "0.14.9", + "react-redux": "4.4.8", + "react-router": "1.0.3", + "redux": "3.7.1", + "redux-form": "4.2.2", + "redux-logger": "2.10.2", + "redux-router": "1.0.0", + "redux-thunk": "0.1.0" + }, "dependencies": { "axios": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.8.1.tgz", - "integrity": "sha1-4Or+wPNGE5Un3Dt5/cv/gDSiQEU=" + "integrity": "sha1-4Or+wPNGE5Un3Dt5/cv/gDSiQEU=", + "requires": { + "follow-redirects": "0.0.7" + } }, "react": { "version": "0.14.9", "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", - "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=" + "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=", + "requires": { + "envify": "3.4.1", + "fbjs": "0.6.1" + } }, "react-dom": { "version": "0.14.9", @@ -186,7 +243,11 @@ "react-router": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/react-router/-/react-router-1.0.3.tgz", - "integrity": "sha1-mA7KoFW4bkfIZUjCMq4FqIpB8Lc=" + "integrity": "sha1-mA7KoFW4bkfIZUjCMq4FqIpB8Lc=", + "requires": { + "invariant": "2.2.2", + "warning": "2.1.0" + } }, "redux-thunk": { "version": "0.1.0", @@ -199,6 +260,15 @@ "version": "4.2.6", "resolved": "https://registry.npmjs.org/appirio-tech-ng-auth/-/appirio-tech-ng-auth-4.2.6.tgz", "integrity": "sha1-xCW9T6ans536yQ7jZCqv8L0YNco=", + "requires": { + "angular": "1.4.14", + "angular-cookies": "1.6.4", + "angular-jwt": "0.0.9", + "angular-resource": "1.4.14", + "angular-storage": "0.0.15", + "angular-ui-router": "0.2.18", + "appirio-tech-ng-work-constants": "0.0.1" + }, "dependencies": { "angular": { "version": "1.4.14", @@ -216,6 +286,21 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/appirio-tech-ng-ui-components/-/appirio-tech-ng-ui-components-2.2.4.tgz", "integrity": "sha1-h86LqWrC+BuGjo3z1d5e0Qvt2no=", + "requires": { + "angular": "1.4.14", + "angular-scroll": "1.0.2", + "angular-ui-router": "0.2.18", + "classnames": "2.2.5", + "moment": "2.10.6", + "ngreact": "0.2.0", + "react": "0.14.9", + "react-dom": "0.14.9", + "react-input-autosize": "0.6.13", + "react-redux": "4.4.8", + "react-select": "0.9.1", + "redux": "3.7.1", + "zepto": "0.0.4" + }, "dependencies": { "angular": { "version": "1.4.14", @@ -230,7 +315,11 @@ "react": { "version": "0.14.9", "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", - "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=" + "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=", + "requires": { + "envify": "3.4.1", + "fbjs": "0.6.1" + } }, "react-dom": { "version": "0.14.9", @@ -242,26 +331,91 @@ "appirio-tech-ng-work-constants": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/appirio-tech-ng-work-constants/-/appirio-tech-ng-work-constants-0.0.1.tgz", - "integrity": "sha1-yo0qWoxV8/nbyq5yE19ph/zZH1k=" + "integrity": "sha1-yo0qWoxV8/nbyq5yE19ph/zZH1k=", + "requires": { + "angular": "1.6.4" + } }, "appirio-tech-react-components": { - "version": "github:appirio-tech/react-components#2752f92d27dda3a88a89abb316f4a4e87d8165ac" + "version": "github:appirio-tech/react-components#2752f92d27dda3a88a89abb316f4a4e87d8165ac", + "requires": { + "appirio-tech-api-schemas": "5.0.70", + "appirio-tech-client-app-layer": "0.1.3", + "classnames": "2.2.5", + "formsy-react": "0.18.1", + "isomorphic-fetch": "2.2.1", + "lodash": "4.17.4", + "moment": "2.18.1", + "react": "15.6.1", + "react-addons-pure-render-mixin": "15.6.0", + "react-addons-update": "15.5.2", + "react-avatar": "2.3.0", + "react-datetime": "2.7.1", + "react-dom": "15.6.1", + "react-dropzone": "3.13.2", + "react-redux": "4.4.8", + "react-router": "2.8.1", + "react-select": "0.9.1", + "react-switch-button": "1.1.2", + "react-textarea-autosize": "4.3.2", + "redux-thunk": "2.2.0", + "tc-ui": "git+https://github.com/appirio-tech/tc-ui.git#d7e830f7e63a90b09ed96616f0a37516b0c412c5", + "uncontrollable": "4.1.0" + } }, "appirio-tech-webpack-config": { "version": "github:appirio-tech/webpack-config#ddc36a13fe3c37baafe8e4c2b1d7a5b0c7ae1d38", "dev": true, + "requires": { + "angular-mocks": "1.6.4", + "appirio-tech-api-schemas": "5.0.70", + "babel-core": "6.24.1", + "babel-loader": "6.4.1", + "babel-plugin-lodash": "2.3.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-react": "6.24.1", + "babel-preset-stage-2": "6.24.1", + "bourbon": "4.3.4", + "cjsx-loader": "2.1.0", + "coffee-loader": "0.7.3", + "coffee-script": "1.12.6", + "compression-webpack-plugin": "0.2.0", + "css-loader": "0.23.1", + "envify": "3.4.1", + "extract-text-webpack-plugin": "0.9.1", + "file-loader": "0.8.5", + "html-webpack-plugin": "2.28.0", + "jade": "1.11.0", + "jade-html-loader": "0.0.3", + "jade-loader": "0.8.0", + "jade-react-loader": "1.0.2", + "json-loader": "0.5.4", + "node-sass": "3.13.1", + "sass-loader": "3.2.3", + "style-loader": "0.13.2", + "transform-loader": "0.2.4", + "webpack": "1.15.0", + "webpack-dev-server": "1.16.5" + }, "dependencies": { "camel-case": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true + "dev": true, + "requires": { + "no-case": "2.3.1", + "upper-case": "1.1.3" + } }, "clean-css": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.3.tgz", "integrity": "sha1-B8/omA7bINRV3cI6rc8eBMblCc4=", - "dev": true + "dev": true, + "requires": { + "source-map": "0.5.6" + } }, "he": { "version": "1.1.1", @@ -273,19 +427,40 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.2.tgz", "integrity": "sha1-1zvD/0SJQkCIGM5gm/P7DqfvTrc=", - "dev": true + "dev": true, + "requires": { + "camel-case": "3.0.0", + "clean-css": "4.1.3", + "commander": "2.9.0", + "he": "1.1.1", + "ncname": "1.0.0", + "param-case": "2.1.1", + "relateurl": "0.2.7", + "uglify-js": "3.0.15" + } }, "html-webpack-plugin": { "version": "2.28.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.28.0.tgz", "integrity": "sha1-LnhjtX5f1I/iYzA+L/yTTDBk0Ak=", - "dev": true + "dev": true, + "requires": { + "bluebird": "3.5.0", + "html-minifier": "3.5.2", + "loader-utils": "0.2.17", + "lodash": "4.17.4", + "pretty-error": "2.1.0", + "toposort": "1.0.3" + } }, "param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true + "dev": true, + "requires": { + "no-case": "2.3.1" + } }, "source-map": { "version": "0.5.6", @@ -297,7 +472,11 @@ "version": "3.0.15", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.15.tgz", "integrity": "sha1-qssyOoRrI0YCJw3q2KMkQaiAb0I=", - "dev": true + "dev": true, + "requires": { + "commander": "2.9.0", + "source-map": "0.5.6" + } } } }, @@ -311,19 +490,29 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true + "dev": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.0.6" + } }, "argparse": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "dev": true + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true + "dev": true, + "requires": { + "arr-flatten": "1.0.3" + } }, "arr-flatten": { "version": "1.0.3", @@ -347,7 +536,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } }, "array-uniq": { "version": "1.0.3", @@ -382,7 +574,10 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true + "dev": true, + "requires": { + "util": "0.10.3" + } }, "assert-plus": { "version": "0.2.0", @@ -437,18 +632,39 @@ "auth0-js": { "version": "6.8.4", "resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-6.8.4.tgz", - "integrity": "sha1-Qw3Uystk2NFdabHmIRhPmipkCmE=" + "integrity": "sha1-Qw3Uystk2NFdabHmIRhPmipkCmE=", + "requires": { + "Base64": "0.1.4", + "json-fallback": "0.0.1", + "jsonp": "0.0.4", + "qs": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", + "reqwest": "1.1.6", + "trim": "0.0.1", + "winchan": "0.1.4", + "xtend": "2.1.2" + } }, "auto-config-fake-server": { "version": "2.0.604", "resolved": "https://registry.npmjs.org/auto-config-fake-server/-/auto-config-fake-server-2.0.604.tgz", - "integrity": "sha1-FY5RTIR5nRQ5iNw/w7mpkwnNhkY=" + "integrity": "sha1-FY5RTIR5nRQ5iNw/w7mpkwnNhkY=", + "requires": { + "sinon": "2.0.0-pre" + } }, "autoprefixer": { "version": "6.7.7", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000679", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } }, "aws-sign2": { "version": "0.6.0", @@ -465,19 +681,48 @@ "axios": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.13.1.tgz", - "integrity": "sha1-Pmer/kMzvJ0tX+b70TtGlOr8jfg=" + "integrity": "sha1-Pmer/kMzvJ0tX+b70TtGlOr8jfg=", + "requires": { + "follow-redirects": "0.0.7" + } }, "babel-code-frame": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.1" + } }, "babel-core": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz", "integrity": "sha1-jEKFZNzh4fQfszfsNPTDsCK1rYM=", "dev": true, + "requires": { + "babel-code-frame": "6.22.0", + "babel-generator": "6.24.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1", + "babylon": "6.17.2", + "convert-source-map": "1.5.0", + "debug": "2.6.8", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.7", + "slash": "1.0.0", + "source-map": "0.5.6" + }, "dependencies": { "source-map": { "version": "0.5.6", @@ -492,6 +737,16 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz", "integrity": "sha1-5xX0hsWN7SVknYiJRNUqoHxdlJc=", "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.23.0", + "babel-types": "6.24.1", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.6", + "trim-right": "1.0.1" + }, "dependencies": { "source-map": { "version": "0.5.6", @@ -505,97 +760,184 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-helper-builder-binary-assignment-operator-visitor": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.23.0", + "babel-types": "6.24.1" + } }, "babel-helper-builder-react-jsx": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz", "integrity": "sha1-CteRfjPI11HmRtrKTnfMGTd9LLw=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.24.1", + "esutils": "2.0.2" + } }, "babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.23.0", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-helper-define-map": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=", - "dev": true + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.23.0", + "babel-types": "6.24.1", + "lodash": "4.17.4" + } }, "babel-helper-explode-assignable-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-helper-explode-class": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", - "dev": true + "dev": true, + "requires": { + "babel-helper-bindify-decorators": "6.24.1", + "babel-runtime": "6.23.0", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-helper-get-function-arity": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.24.1" + } }, "babel-helper-hoist-variables": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.24.1" + } }, "babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.24.1" + } }, "babel-helper-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.24.1", + "lodash": "4.17.4" + } }, "babel-helper-remap-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-template": "6.24.1" + } }, "babel-loader": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz", "integrity": "sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=", "dev": true, + "requires": { + "find-cache-dir": "0.1.1", + "loader-utils": "0.2.17", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -609,19 +951,28 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-check-es2015-constants": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-lodash": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-lodash/-/babel-plugin-lodash-2.3.0.tgz", "integrity": "sha1-QWbI88pSqpW+nhg50kWD5wqFfsI=", - "dev": true + "dev": true, + "requires": { + "lodash": "4.17.4" + } }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", @@ -687,216 +1038,382 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", - "dev": true + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-generators": "6.13.0", + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-class-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "dev": true + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-plugin-syntax-class-properties": "6.13.0", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1" + } }, "babel-plugin-transform-decorators": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", - "dev": true + "dev": true, + "requires": { + "babel-helper-explode-class": "6.24.1", + "babel-plugin-syntax-decorators": "6.13.0", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-es2015-block-scoping": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-template": "6.24.1", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1", + "lodash": "4.17.4" + } }, "babel-plugin-transform-es2015-classes": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true + "dev": true, + "requires": { + "babel-helper-define-map": "6.24.1", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-plugin-transform-es2015-computed-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-template": "6.24.1" + } }, "babel-plugin-transform-es2015-destructuring": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-es2015-duplicate-keys": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.24.1" + } }, "babel-plugin-transform-es2015-for-of": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-es2015-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.23.0", + "babel-types": "6.24.1" + } }, "babel-plugin-transform-es2015-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1" + } }, "babel-plugin-transform-es2015-modules-commonjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-plugin-transform-es2015-modules-systemjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1" + } }, "babel-plugin-transform-es2015-modules-umd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1" + } }, "babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true + "dev": true, + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-es2015-parameters": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.24.1", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1" + } }, "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.24.1" + } }, "babel-plugin-transform-es2015-spread": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-es2015-sticky-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true + "dev": true, + "requires": { + "babel-helper-regex": "6.24.1", + "babel-runtime": "6.23.0", + "babel-types": "6.24.1" + } }, "babel-plugin-transform-es2015-template-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-es2015-typeof-symbol": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-es2015-unicode-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true + "dev": true, + "requires": { + "babel-helper-regex": "6.24.1", + "babel-runtime": "6.23.0", + "regexpu-core": "2.0.0" + } }, "babel-plugin-transform-exponentiation-operator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-flow-strip-types": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-object-rest-spread": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz", "integrity": "sha1-h11ryb52HFiirj/u5dxIldjH+SE=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-react-display-name": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.23.0.tgz", "integrity": "sha1-Q5iRDDWEQdxM7xh4cmTQQS7Tazc=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-react-jsx": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "dev": true + "dev": true, + "requires": { + "babel-helper-builder-react-jsx": "6.24.1", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-react-jsx-self": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-react-jsx-source": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.23.0" + } }, "babel-plugin-transform-regenerator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", - "dev": true + "dev": true, + "requires": { + "regenerator-transform": "0.9.11" + } }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.24.1" + } }, "babel-polyfill": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", + "requires": { + "babel-runtime": "6.23.0", + "core-js": "2.4.1", + "regenerator-runtime": "0.10.5" + }, "dependencies": { "core-js": { "version": "2.4.1", @@ -909,37 +1426,96 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.24.1", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.24.1" + } }, "babel-preset-flow": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "6.22.0" + } }, "babel-preset-react": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.23.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" + } }, "babel-preset-stage-2": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "6.18.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-decorators": "6.24.1", + "babel-preset-stage-3": "6.24.1" + } }, "babel-preset-stage-3": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-generator-functions": "6.24.1", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-object-rest-spread": "6.23.0" + } }, "babel-register": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", "dev": true, + "requires": { + "babel-core": "6.24.1", + "babel-runtime": "6.23.0", + "core-js": "2.4.1", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.15" + }, "dependencies": { "core-js": { "version": "2.4.1", @@ -953,6 +1529,10 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.10.5" + }, "dependencies": { "core-js": { "version": "2.4.1", @@ -965,19 +1545,43 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz", "integrity": "sha1-BK5RTx+Ts6JTfyoPYKWkX7gwgzM=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-traverse": "6.24.1", + "babel-types": "6.24.1", + "babylon": "6.17.2", + "lodash": "4.17.4" + } }, "babel-traverse": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz", "integrity": "sha1-qzZnP9NW+aCUhlnnszjV/q2zFpU=", - "dev": true + "dev": true, + "requires": { + "babel-code-frame": "6.22.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.23.0", + "babel-types": "6.24.1", + "babylon": "6.17.2", + "debug": "2.6.8", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } }, "babel-types": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz", "integrity": "sha1-oTaHncFbNga9oNkMH8dDBML/CXU=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } }, "babylon": { "version": "6.17.2", @@ -1017,7 +1621,10 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, - "optional": true + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } }, "big.js": { "version": "3.1.3", @@ -1041,7 +1648,10 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.1" + } }, "bluebird": { "version": "3.5.0", @@ -1069,7 +1679,10 @@ "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true + "dev": true, + "requires": { + "hoek": "2.16.3" + } }, "bourbon": { "version": "4.3.4", @@ -1084,37 +1697,61 @@ "brace-expansion": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=" + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } }, "braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } }, "browserify-aes": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.1" + } }, "browserify-zlib": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true + "dev": true, + "requires": { + "pako": "0.2.9" + } }, "browserslist": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true + "dev": true, + "requires": { + "caniuse-db": "1.0.30000679", + "electron-to-chromium": "1.3.13" + } }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true + "dev": true, + "requires": { + "base64-js": "1.2.0", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } }, "buffer-equal": { "version": "0.0.1", @@ -1144,7 +1781,10 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true + "dev": true, + "requires": { + "callsites": "0.2.0" + } }, "callsites": { "version": "0.2.0", @@ -1155,7 +1795,11 @@ "camel-case": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz", - "integrity": "sha1-Gsp8TRlTWaLOmVV5NDPG5VQlEfI=" + "integrity": "sha1-Gsp8TRlTWaLOmVV5NDPG5VQlEfI=", + "requires": { + "sentence-case": "1.1.3", + "upper-case": "1.1.3" + } }, "camelcase": { "version": "1.2.1", @@ -1167,6 +1811,10 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + }, "dependencies": { "camelcase": { "version": "2.1.1", @@ -1180,7 +1828,13 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "dev": true + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000679", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" + } }, "caniuse-db": { "version": "1.0.30000679", @@ -1197,13 +1851,22 @@ "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=" + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } }, "chai": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", - "dev": true + "dev": true, + "requires": { + "assertion-error": "1.0.2", + "deep-eql": "0.1.3", + "type-detect": "1.0.0" + } }, "chain-function": { "version": "1.0.0", @@ -1214,12 +1877,37 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } }, "change-case": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz", - "integrity": "sha1-LE/ePwY7tB0AzWjg1aCdthy+iU8=" + "integrity": "sha1-LE/ePwY7tB0AzWjg1aCdthy+iU8=", + "requires": { + "camel-case": "1.2.2", + "constant-case": "1.1.2", + "dot-case": "1.1.2", + "is-lower-case": "1.1.3", + "is-upper-case": "1.1.2", + "lower-case": "1.1.4", + "lower-case-first": "1.0.2", + "param-case": "1.1.2", + "pascal-case": "1.1.2", + "path-case": "1.1.2", + "sentence-case": "1.1.3", + "snake-case": "1.1.2", + "swap-case": "1.1.2", + "title-case": "1.1.2", + "upper-case": "1.1.3", + "upper-case-first": "1.1.2" + } }, "change-emitter": { "version": "0.1.6", @@ -1242,18 +1930,36 @@ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz", "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=", "dev": true, + "requires": { + "css-select": "1.2.0", + "dom-serializer": "0.1.0", + "entities": "1.1.1", + "htmlparser2": "3.8.3", + "jsdom": "7.2.2", + "lodash": "4.17.4" + }, "dependencies": { "domhandler": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } }, "htmlparser2": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" + }, "dependencies": { "entities": { "version": "1.0.0", @@ -1273,7 +1979,13 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } } } }, @@ -1281,7 +1993,18 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true + "dev": true, + "requires": { + "anymatch": "1.3.0", + "async-each": "1.0.1", + "fsevents": "1.1.1", + "glob-parent": "2.0.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } }, "circular-json": { "version": "0.3.1", @@ -1293,13 +2016,20 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cjsx-loader/-/cjsx-loader-2.1.0.tgz", "integrity": "sha1-14OVnJfX4dN0tE2qvvZcoIs6Ozs=", - "dev": true + "dev": true, + "requires": { + "coffee-react-transform": "3.3.0", + "loader-utils": "0.2.17" + } }, "clap": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/clap/-/clap-1.1.3.tgz", "integrity": "sha1-s7026T3Uy/s5WjwmiWNSRFJlwFs=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3" + } }, "classnames": { "version": "2.2.5", @@ -1310,11 +2040,18 @@ "version": "3.4.26", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.26.tgz", "integrity": "sha1-VTI7NE/zvO5oSi6sgck9+Ppz3us=", + "requires": { + "commander": "2.8.1", + "source-map": "0.4.4" + }, "dependencies": { "commander": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=" + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "requires": { + "graceful-readlink": "1.0.1" + } } } }, @@ -1322,7 +2059,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "dev": true + "dev": true, + "requires": { + "restore-cursor": "1.0.1" + } }, "cli-width": { "version": "2.1.0", @@ -1333,7 +2073,12 @@ "cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=" + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } }, "clone": { "version": "1.0.2", @@ -1357,7 +2102,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.2.tgz", "integrity": "sha1-K6n+w7SqQ9eknX5sNWHpIGG2vOw=", - "dev": true + "dev": true, + "requires": { + "q": "1.5.0" + } }, "code-point-at": { "version": "1.1.0", @@ -1370,12 +2118,20 @@ "resolved": "https://registry.npmjs.org/coffee-loader/-/coffee-loader-0.7.3.tgz", "integrity": "sha1-+tvG79b8fsyIxbMEaiwpIGa8tUo=", "dev": true, + "requires": { + "loader-utils": "1.1.0" + }, "dependencies": { "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } } } }, @@ -1395,13 +2151,21 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "dev": true + "dev": true, + "requires": { + "clone": "1.0.2", + "color-convert": "1.9.0", + "color-string": "0.3.0" + } }, "color-convert": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", - "dev": true + "dev": true, + "requires": { + "color-name": "1.1.2" + } }, "color-name": { "version": "1.1.2", @@ -1413,13 +2177,21 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "dev": true + "dev": true, + "requires": { + "color-name": "1.1.2" + } }, "colormin": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "dev": true + "dev": true, + "requires": { + "color": "0.11.4", + "css-color-names": "0.0.4", + "has": "1.0.1" + } }, "colors": { "version": "1.1.2", @@ -1431,12 +2203,18 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "dev": true + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } }, "commander": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=" + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "requires": { + "graceful-readlink": "1.0.1" + } }, "commondir": { "version": "1.0.1", @@ -1447,25 +2225,50 @@ "commoner": { "version": "0.10.8", "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", - "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=" + "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=", + "requires": { + "commander": "2.9.0", + "detective": "4.5.0", + "glob": "5.0.15", + "graceful-fs": "4.1.11", + "iconv-lite": "0.4.17", + "mkdirp": "0.5.1", + "private": "0.1.7", + "q": "1.5.0", + "recast": "0.11.23" + } }, "compressible": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz", "integrity": "sha1-/tocf3YXkScyspv4zyYlKiC57s0=", - "dev": true + "dev": true, + "requires": { + "mime-db": "1.27.0" + } }, "compression": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", "integrity": "sha1-zOsSHsydCcUtetDDNQ6pPd1AK8M=", "dev": true, + "requires": { + "accepts": "1.3.3", + "bytes": "2.3.0", + "compressible": "2.0.10", + "debug": "2.2.0", + "on-headers": "1.0.1", + "vary": "1.1.1" + }, "dependencies": { "debug": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "ms": { "version": "0.7.1", @@ -1479,7 +2282,10 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-0.2.0.tgz", "integrity": "sha1-zkVTpHitScvVN0yqopLJ8WvrBV8=", - "dev": true + "dev": true, + "requires": { + "async": "0.2.10" + } }, "concat-map": { "version": "0.0.1", @@ -1489,7 +2295,12 @@ "concat-stream": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=" + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "requires": { + "inherits": "2.0.1", + "readable-stream": "2.0.6", + "typedarray": "0.0.6" + } }, "connect-history-api-fallback": { "version": "1.3.0", @@ -1501,7 +2312,10 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true + "dev": true, + "requires": { + "date-now": "0.1.4" + } }, "console-control-strings": { "version": "1.1.0", @@ -1512,13 +2326,20 @@ "constant-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz", - "integrity": "sha1-jsLKW6ND4Aqjjb9OIA/VrJB+/WM=" + "integrity": "sha1-jsLKW6ND4Aqjjb9OIA/VrJB+/WM=", + "requires": { + "snake-case": "1.1.2", + "upper-case": "1.1.3" + } }, "constantinople": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz", "integrity": "sha1-S5RdmTeQe82Y7ldRIsOBdRZUQUE=", "dev": true, + "requires": { + "acorn": "2.7.0" + }, "dependencies": { "acorn": { "version": "2.7.0", @@ -1578,11 +2399,25 @@ "version": "15.5.3", "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.5.3.tgz", "integrity": "sha1-+w98rnkznpoXnhlO9Gbvo5I4IP4=", + "requires": { + "fbjs": "0.8.12", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + }, "dependencies": { "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.12" + } }, "object-assign": { "version": "4.1.1", @@ -1596,12 +2431,21 @@ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-1.0.8.tgz", "integrity": "sha1-K950jvx4D1bd8H6mn8rYdTV3dM4=", "dev": true, + "requires": { + "cross-spawn": "3.0.1", + "lodash.assign": "3.2.0" + }, "dependencies": { "lodash.assign": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", - "dev": true + "dev": true, + "requires": { + "lodash._baseassign": "3.2.0", + "lodash._createassigner": "3.1.1", + "lodash.keys": "3.1.2" + } } } }, @@ -1609,7 +2453,11 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true + "dev": true, + "requires": { + "lru-cache": "4.1.0", + "which": "1.2.14" + } }, "crypt": { "version": "0.0.2", @@ -1620,19 +2468,32 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true + "dev": true, + "requires": { + "boom": "2.10.1" + } }, "crypto-browserify": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", - "dev": true + "dev": true, + "requires": { + "browserify-aes": "0.4.0", + "pbkdf2-compat": "2.0.1", + "ripemd160": "0.2.0", + "sha.js": "2.2.6" + } }, "css": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz", "integrity": "sha1-k4aBHKgrzMnuf7WnMrHioxfIo+c=", - "dev": true + "dev": true, + "requires": { + "css-parse": "1.0.4", + "css-stringify": "1.0.5" + } }, "css-color-names": { "version": "0.0.4", @@ -1645,6 +2506,19 @@ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz", "integrity": "sha1-n6I/K1wJZSNZEK1ezvO4o2OQ/lA=", "dev": true, + "requires": { + "css-selector-tokenizer": "0.5.4", + "cssnano": "3.10.0", + "loader-utils": "0.2.17", + "lodash.camelcase": "3.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0", + "source-list-map": "0.1.8" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -1664,13 +2538,23 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true + "dev": true, + "requires": { + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" + } }, "css-selector-tokenizer": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz", "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=", - "dev": true + "dev": true, + "requires": { + "cssesc": "0.1.0", + "fastparse": "1.1.1" + } }, "css-stringify": { "version": "1.0.5", @@ -1695,6 +2579,40 @@ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", "dev": true, + "requires": { + "autoprefixer": "6.7.7", + "decamelize": "1.2.0", + "defined": "1.0.0", + "has": "1.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-calc": "5.3.1", + "postcss-colormin": "2.2.2", + "postcss-convert-values": "2.6.1", + "postcss-discard-comments": "2.0.4", + "postcss-discard-duplicates": "2.1.0", + "postcss-discard-empty": "2.1.0", + "postcss-discard-overridden": "0.1.1", + "postcss-discard-unused": "2.2.3", + "postcss-filter-plugins": "2.0.2", + "postcss-merge-idents": "2.1.7", + "postcss-merge-longhand": "2.0.2", + "postcss-merge-rules": "2.1.2", + "postcss-minify-font-values": "1.0.5", + "postcss-minify-gradients": "1.0.5", + "postcss-minify-params": "1.2.2", + "postcss-minify-selectors": "2.1.1", + "postcss-normalize-charset": "1.1.1", + "postcss-normalize-url": "3.0.8", + "postcss-ordered-values": "2.2.3", + "postcss-reduce-idents": "2.4.0", + "postcss-reduce-initial": "1.0.1", + "postcss-reduce-transforms": "1.0.4", + "postcss-svgo": "2.1.6", + "postcss-unique-selectors": "2.0.2", + "postcss-value-parser": "3.3.0", + "postcss-zindex": "2.2.0" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -1709,6 +2627,10 @@ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", "dev": true, + "requires": { + "clap": "1.1.3", + "source-map": "0.5.6" + }, "dependencies": { "source-map": { "version": "0.5.6", @@ -1729,25 +2651,37 @@ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", "dev": true, - "optional": true + "optional": true, + "requires": { + "cssom": "0.3.2" + } }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } }, "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true + "dev": true, + "requires": { + "es5-ext": "0.10.23" + } }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -1766,7 +2700,10 @@ "debug": { "version": "2.6.8", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "requires": { + "ms": "2.0.0" + } }, "decamelize": { "version": "1.2.0", @@ -1783,6 +2720,9 @@ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", "dev": true, + "requires": { + "type-detect": "0.1.1" + }, "dependencies": { "type-detect": { "version": "0.1.1", @@ -1819,6 +2759,15 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.1" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -1856,12 +2805,19 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true + "dev": true, + "requires": { + "repeating": "2.0.1" + } }, "detective": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz", - "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=" + "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=", + "requires": { + "acorn": "4.0.13", + "defined": "1.0.0" + } }, "diff": { "version": "1.4.0", @@ -1873,13 +2829,20 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true + "dev": true, + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } }, "dom-converter": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", "dev": true, + "requires": { + "utila": "0.3.3" + }, "dependencies": { "utila": { "version": "0.3.3", @@ -1899,6 +2862,10 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, "dependencies": { "domelementtype": { "version": "1.1.3", @@ -1930,28 +2897,51 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", - "dev": true + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } }, "domutils": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } }, "dot-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz", - "integrity": "sha1-HnOCaQDeKNbeVIC8HeMdCEKwa+w=" + "integrity": "sha1-HnOCaQDeKNbeVIC8HeMdCEKwa+w=", + "requires": { + "sentence-case": "1.1.3" + } }, "draft-js": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.7.0.tgz", "integrity": "sha1-KVBpgNLLltsmlwVPrmGeb1tdQQE=", + "requires": { + "fbjs": "0.8.12", + "immutable": "3.8.1" + }, "dependencies": { "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.12" + } }, "object-assign": { "version": "4.1.1", @@ -1963,22 +2953,35 @@ "draft-js-export-html": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/draft-js-export-html/-/draft-js-export-html-0.5.4.tgz", - "integrity": "sha1-4kkn2j7+bz3xfx12BqncYUHb9y0=" + "integrity": "sha1-4kkn2j7+bz3xfx12BqncYUHb9y0=", + "requires": { + "draft-js-utils": "0.1.7" + } }, "draft-js-export-markdown": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/draft-js-export-markdown/-/draft-js-export-markdown-0.2.2.tgz", - "integrity": "sha1-WwoaEFkdi5YZnctwsEsat963KjM=" + "integrity": "sha1-WwoaEFkdi5YZnctwsEsat963KjM=", + "requires": { + "draft-js-utils": "0.1.7" + } }, "draft-js-import-element": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/draft-js-import-element/-/draft-js-import-element-0.4.3.tgz", - "integrity": "sha1-eFOBouAyOpg2z6hWxELpATvUgqQ=" + "integrity": "sha1-eFOBouAyOpg2z6hWxELpATvUgqQ=", + "requires": { + "draft-js-utils": "0.1.7", + "synthetic-dom": "0.2.1" + } }, "draft-js-import-html": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/draft-js-import-html/-/draft-js-import-html-0.3.2.tgz", - "integrity": "sha1-zCBaYZLKwsZSBXZohwLuMfUkGBA=" + "integrity": "sha1-zCBaYZLKwsZSBXZohwLuMfUkGBA=", + "requires": { + "draft-js-import-element": "0.4.3" + } }, "draft-js-utils": { "version": "0.1.7", @@ -1990,6 +2993,9 @@ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", "dev": true, + "requires": { + "readable-stream": "1.1.14" + }, "dependencies": { "isarray": { "version": "0.0.1", @@ -2001,7 +3007,13 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } } } }, @@ -2010,7 +3022,10 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "0.1.1" + } }, "ee-first": { "version": "1.1.1", @@ -2044,13 +3059,21 @@ "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=" + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.17" + } }, "enhanced-resolve": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.2.0", + "tapable": "0.1.10" + }, "dependencies": { "memory-fs": { "version": "0.2.0", @@ -2075,37 +3098,64 @@ "envify": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz", - "integrity": "sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg=" + "integrity": "sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg=", + "requires": { + "jstransform": "11.0.3", + "through": "2.3.8" + } }, "errno": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", - "dev": true + "dev": true, + "requires": { + "prr": "0.0.0" + } }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } }, "es5-ext": { "version": "0.10.23", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.23.tgz", "integrity": "sha1-dXi1G+l0IHpUh4IbVlOMIk5Oezg=", - "dev": true + "dev": true, + "requires": { + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } }, "es6-iterator": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", - "dev": true + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.23", + "es6-symbol": "3.1.1" + } }, "es6-map": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.23", + "es6-iterator": "2.0.1", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } }, "es6-promise": { "version": "3.3.1", @@ -2117,19 +3167,36 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.23", + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } }, "es6-symbol": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.23" + } }, "es6-weak-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.23", + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } }, "escape-html": { "version": "1.0.3", @@ -2148,6 +3215,12 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=", "dev": true, + "requires": { + "esprima": "1.1.1", + "estraverse": "1.5.1", + "esutils": "1.0.0", + "source-map": "0.1.43" + }, "dependencies": { "esprima": { "version": "1.1.1", @@ -2166,7 +3239,10 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, - "optional": true + "optional": true, + "requires": { + "amdefine": "1.0.1" + } } } }, @@ -2175,6 +3251,12 @@ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.1.0", + "estraverse": "4.2.0" + }, "dependencies": { "estraverse": { "version": "4.2.0", @@ -2189,6 +3271,41 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-2.13.1.tgz", "integrity": "sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE=", "dev": true, + "requires": { + "chalk": "1.1.3", + "concat-stream": "1.5.2", + "debug": "2.6.8", + "doctrine": "1.5.0", + "es6-map": "0.1.5", + "escope": "3.6.0", + "espree": "3.4.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "file-entry-cache": "1.3.1", + "glob": "7.1.2", + "globals": "9.18.0", + "ignore": "3.3.3", + "imurmurhash": "0.1.4", + "inquirer": "0.12.0", + "is-my-json-valid": "2.16.0", + "is-resolvable": "1.0.0", + "js-yaml": "3.7.0", + "json-stable-stringify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "optionator": "0.8.2", + "path-is-absolute": "1.0.1", + "path-is-inside": "1.0.2", + "pluralize": "1.2.1", + "progress": "1.1.8", + "require-uncached": "1.0.3", + "shelljs": "0.6.1", + "strip-json-comments": "1.0.4", + "table": "3.8.3", + "text-table": "0.2.0", + "user-home": "2.0.0" + }, "dependencies": { "estraverse": { "version": "4.2.0", @@ -2200,7 +3317,15 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } } } }, @@ -2215,6 +3340,10 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", "dev": true, + "requires": { + "acorn": "5.0.3", + "acorn-jsx": "3.0.1" + }, "dependencies": { "acorn": { "version": "5.0.3", @@ -2234,6 +3363,10 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=", "dev": true, + "requires": { + "estraverse": "4.1.1", + "object-assign": "4.1.1" + }, "dependencies": { "estraverse": { "version": "4.1.1", @@ -2271,7 +3404,11 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.23" + } }, "eventemitter3": { "version": "2.0.3", @@ -2288,7 +3425,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "dev": true + "dev": true, + "requires": { + "original": "1.0.0" + } }, "exenv": { "version": "1.2.0", @@ -2311,25 +3451,64 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } }, "expand-range": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true + "dev": true, + "requires": { + "fill-range": "2.2.3" + } }, "express": { "version": "4.15.3", "resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", "integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=", "dev": true, + "requires": { + "accepts": "1.3.3", + "array-flatten": "1.1.1", + "content-disposition": "0.5.2", + "content-type": "1.0.2", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.7", + "depd": "1.1.0", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "finalhandler": "1.0.3", + "fresh": "0.5.0", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "path-to-regexp": "0.1.7", + "proxy-addr": "1.1.4", + "qs": "6.4.0", + "range-parser": "1.2.0", + "send": "0.15.3", + "serve-static": "1.12.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.0", + "vary": "1.1.1" + }, "dependencies": { "debug": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } }, "qs": { "version": "6.4.0", @@ -2349,13 +3528,20 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } }, "extract-text-webpack-plugin": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-0.9.1.tgz", "integrity": "sha1-723FCMs17Q3PikAJq76FP3p2IrU=", "dev": true, + "requires": { + "async": "1.5.2", + "loader-utils": "0.2.17" + }, "dependencies": { "async": { "version": "1.5.2", @@ -2370,12 +3556,23 @@ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", "integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=", "dev": true, + "requires": { + "concat-stream": "1.5.0", + "debug": "0.7.4", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" + }, "dependencies": { "concat-stream": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.1", + "readable-stream": "2.0.6", + "typedarray": "0.0.6" + } }, "debug": { "version": "0.7.4", @@ -2387,7 +3584,10 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", - "dev": true + "dev": true, + "requires": { + "minimist": "0.0.8" + } } } }, @@ -2402,6 +3602,12 @@ "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", "integrity": "sha1-wY0k71CRF0pJfzGM0ksCaiXN2rQ=", "dev": true, + "requires": { + "acorn": "1.2.2", + "foreach": "2.0.5", + "isarray": "0.0.1", + "object-keys": "1.0.11" + }, "dependencies": { "acorn": { "version": "1.2.2", @@ -2440,6 +3646,26 @@ "resolved": "https://registry.npmjs.org/favicons/-/favicons-4.8.6.tgz", "integrity": "sha1-orE4AKs/7CcVvI8n+oQdA41HYeI=", "dev": true, + "requires": { + "async": "1.5.2", + "cheerio": "0.19.0", + "clone": "1.0.2", + "colors": "1.1.2", + "harmony-reflect": "1.5.1", + "image-size": "0.4.0", + "jimp": "0.2.28", + "jsontoxml": "0.0.11", + "merge-defaults": "0.2.1", + "mkdirp": "0.5.1", + "node-rest-client": "1.8.0", + "require-directory": "2.1.1", + "svg2png": "3.0.1", + "through2": "2.0.3", + "tinycolor2": "1.4.1", + "to-ico": "1.1.2", + "underscore": "1.8.3", + "vinyl": "1.2.0" + }, "dependencies": { "async": { "version": "1.5.2", @@ -2451,13 +3677,26 @@ "version": "0.19.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz", "integrity": "sha1-dy5wFfLuKZZQltcepBdbdas1SSU=", - "dev": true + "dev": true, + "requires": { + "css-select": "1.0.0", + "dom-serializer": "0.1.0", + "entities": "1.1.1", + "htmlparser2": "3.8.3", + "lodash": "3.10.1" + } }, "css-select": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz", "integrity": "sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA=", - "dev": true + "dev": true, + "requires": { + "boolbase": "1.0.0", + "css-what": "1.0.0", + "domutils": "1.4.3", + "nth-check": "1.0.1" + } }, "css-what": { "version": "1.0.0", @@ -2469,25 +3708,42 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } }, "domutils": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz", "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=", - "dev": true + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } }, "htmlparser2": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" + }, "dependencies": { "domutils": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } }, "entities": { "version": "1.0.0", @@ -2513,13 +3769,23 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } }, "through2": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, + "requires": { + "readable-stream": "2.2.11", + "xtend": "4.0.1" + }, "dependencies": { "isarray": { "version": "1.0.0", @@ -2531,13 +3797,25 @@ "version": "2.2.11", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", - "dev": true + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.0.1", + "string_decoder": "1.0.2", + "util-deprecate": "1.0.2" + } }, "string_decoder": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } } } }, @@ -2553,23 +3831,44 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/favicons-webpack-plugin/-/favicons-webpack-plugin-0.0.7.tgz", "integrity": "sha1-JTpGpPk9E30QlnYod/io7xLihkg=", - "dev": true + "dev": true, + "requires": { + "favicons": "4.8.6", + "loader-utils": "0.2.17", + "lodash": "4.17.4", + "webpack": "1.15.0" + } }, "faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true + "dev": true, + "requires": { + "websocket-driver": "0.6.5" + } }, "fbemitter": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", + "requires": { + "fbjs": "0.8.12" + }, "dependencies": { "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.12" + } }, "object-assign": { "version": "4.1.1", @@ -2582,6 +3881,13 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz", "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=", + "requires": { + "core-js": "1.2.7", + "loose-envify": "1.3.1", + "promise": "7.1.1", + "ua-parser-js": "0.7.12", + "whatwg-fetch": "0.9.0" + }, "dependencies": { "whatwg-fetch": { "version": "0.9.0", @@ -2594,13 +3900,20 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true + "dev": true, + "requires": { + "pend": "1.2.0" + } }, "figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -2615,6 +3928,10 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz", "integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=", "dev": true, + "requires": { + "flat-cache": "1.2.2", + "object-assign": "4.1.1" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -2628,7 +3945,10 @@ "version": "0.8.5", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz", "integrity": "sha1-knXQMf54DyfUf19K8CvUNxPMFRs=", - "dev": true + "dev": true, + "requires": { + "loader-utils": "0.2.17" + } }, "file-type": { "version": "3.9.0", @@ -2656,19 +3976,38 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.6", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } }, "finalhandler": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=", "dev": true, + "requires": { + "debug": "2.6.7", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, "dependencies": { "debug": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } } } }, @@ -2676,24 +4015,42 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true + "dev": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } }, "flat": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat/-/flat-2.0.1.tgz", - "integrity": "sha1-cOKRiKdL4MPIlAnu0fqVd5B64y8=" + "integrity": "sha1-cOKRiKdL4MPIlAnu0fqVd5B64y8=", + "requires": { + "is-buffer": "1.1.5" + } }, "flat-cache": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", - "dev": true + "dev": true, + "requires": { + "circular-json": "0.3.1", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } }, "flatten": { "version": "1.0.2", @@ -2704,13 +4061,20 @@ "follow-redirects": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz", - "integrity": "sha1-NLkLqyqRGqNHVx2pDyK9NuzYqRk=" + "integrity": "sha1-NLkLqyqRGqNHVx2pDyK9NuzYqRk=", + "requires": { + "debug": "2.6.8", + "stream-consume": "0.1.0" + } }, "for-each": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", - "dev": true + "dev": true, + "requires": { + "is-function": "1.0.1" + } }, "for-in": { "version": "1.0.2", @@ -2722,7 +4086,10 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true + "dev": true, + "requires": { + "for-in": "1.0.2" + } }, "foreach": { "version": "2.0.5", @@ -2740,7 +4107,12 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } }, "form-data-to-object": { "version": "0.2.0", @@ -2750,12 +4122,18 @@ "formatio": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", - "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=" + "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", + "requires": { + "samsam": "1.1.2" + } }, "formsy-react": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/formsy-react/-/formsy-react-0.18.1.tgz", - "integrity": "sha1-xS7pW67yiW8VR85t+Nrl/NvZq0A=" + "integrity": "sha1-xS7pW67yiW8VR85t+Nrl/NvZq0A=", + "requires": { + "form-data-to-object": "0.2.0" + } }, "forwarded": { "version": "0.1.0", @@ -2773,7 +4151,12 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1" + } }, "fs.realpath": { "version": "1.0.0", @@ -2787,6 +4170,10 @@ "integrity": "sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8=", "dev": true, "optional": true, + "requires": { + "nan": "2.6.2", + "node-pre-gyp": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz" + }, "dependencies": { "abbrev": { "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", @@ -3736,7 +5123,13 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } }, "function-bind": { "version": "1.1.0", @@ -3749,6 +5142,16 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, + "requires": { + "aproba": "1.1.2", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -3762,7 +5165,10 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", - "dev": true + "dev": true, + "requires": { + "globule": "1.1.0" + } }, "generate-function": { "version": "2.0.0", @@ -3774,7 +5180,10 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true + "dev": true, + "requires": { + "is-property": "1.0.2" + } }, "get-caller-file": { "version": "1.0.2", @@ -3793,6 +5202,10 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", "dev": true, + "requires": { + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -3807,6 +5220,9 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -3819,25 +5235,43 @@ "glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=" + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } }, "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true + "dev": true, + "requires": { + "is-glob": "2.0.1" + } }, "global": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", "dev": true, + "requires": { + "min-document": "2.19.0", + "process": "0.5.2" + }, "dependencies": { "process": { "version": "0.5.2", @@ -3858,12 +5292,28 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, "dependencies": { "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "object-assign": { "version": "4.1.1", @@ -3878,12 +5328,25 @@ "resolved": "https://registry.npmjs.org/globule/-/globule-1.1.0.tgz", "integrity": "sha1-xJNS5NwYPYWJPuglOF65lLtt9F8=", "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.16.6", + "minimatch": "3.0.4" + }, "dependencies": { "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "lodash": { "version": "4.16.6", @@ -3919,7 +5382,11 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true + "dev": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } }, "harmony-reflect": { "version": "1.5.1", @@ -3931,13 +5398,19 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true + "dev": true, + "requires": { + "function-bind": "1.1.0" + } }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } }, "has-flag": { "version": "1.0.0", @@ -3955,13 +5428,23 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", - "dev": true + "dev": true, + "requires": { + "is-stream": "1.1.0", + "pinkie-promise": "2.0.1" + } }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } }, "he": { "version": "1.0.0", @@ -3971,7 +5454,13 @@ "history": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/history/-/history-1.17.0.tgz", - "integrity": "sha1-xUg8qlodH+oAoafY0ZuHQBZxHSk=" + "integrity": "sha1-xUg8qlodH+oAoafY0ZuHQBZxHSk=", + "requires": { + "deep-equal": "1.0.1", + "invariant": "2.2.2", + "query-string": "3.0.3", + "warning": "2.1.0" + } }, "hoek": { "version": "2.16.3", @@ -3988,7 +5477,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "hosted-git-info": { "version": "2.4.2", @@ -4005,12 +5498,28 @@ "html-minifier": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-1.5.0.tgz", - "integrity": "sha1-vrBf2cw0CUWGXBD0Cu30aa9LFTQ=" + "integrity": "sha1-vrBf2cw0CUWGXBD0Cu30aa9LFTQ=", + "requires": { + "change-case": "2.3.1", + "clean-css": "3.4.26", + "commander": "2.9.0", + "concat-stream": "1.5.2", + "he": "1.0.0", + "ncname": "1.0.0", + "relateurl": "0.2.7", + "uglify-js": "2.6.4" + } }, "html-webpack-plugin": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-1.7.0.tgz", "integrity": "sha1-zQxzx5G9DIxFsk4wAb4zSmt0KXs=", + "requires": { + "bluebird": "3.5.0", + "blueimp-tmpl": "2.5.7", + "html-minifier": "1.5.0", + "lodash": "3.10.1" + }, "dependencies": { "lodash": { "version": "3.10.1", @@ -4024,12 +5533,21 @@ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.1.0", + "domutils": "1.1.6", + "readable-stream": "1.0.34" + }, "dependencies": { "domutils": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", - "dev": true + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } }, "isarray": { "version": "0.0.1", @@ -4041,7 +5559,13 @@ "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } } } }, @@ -4050,6 +5574,12 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", "dev": true, + "requires": { + "depd": "1.1.0", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + }, "dependencies": { "inherits": { "version": "2.0.3", @@ -4064,6 +5594,10 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", "dev": true, + "requires": { + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + }, "dependencies": { "eventemitter3": { "version": "1.2.0", @@ -4078,6 +5612,12 @@ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "dev": true, + "requires": { + "http-proxy": "1.16.2", + "is-glob": "3.1.0", + "lodash": "4.17.4", + "micromatch": "2.3.11" + }, "dependencies": { "is-extglob": { "version": "2.1.1", @@ -4089,7 +5629,10 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } } } }, @@ -4097,7 +5640,12 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } }, "https-browserify": { "version": "0.0.1", @@ -4166,7 +5714,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true + "dev": true, + "requires": { + "repeating": "2.0.1" + } }, "indexes-of": { "version": "1.0.1", @@ -4183,7 +5734,11 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } }, "inherits": { "version": "2.0.1", @@ -4194,7 +5749,22 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", - "dev": true + "dev": true, + "requires": { + "ansi-escapes": "1.4.0", + "ansi-regex": "2.1.1", + "chalk": "1.1.3", + "cli-cursor": "1.0.2", + "cli-width": "2.1.0", + "figures": "1.7.0", + "lodash": "4.17.4", + "readline2": "1.0.1", + "run-async": "0.1.0", + "rx-lite": "3.1.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "through": "2.3.8" + } }, "interpret": { "version": "0.6.6", @@ -4205,7 +5775,10 @@ "invariant": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=" + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "requires": { + "loose-envify": "1.3.1" + } }, "invert-kv": { "version": "1.0.0", @@ -4241,7 +5814,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true + "dev": true, + "requires": { + "binary-extensions": "1.8.0" + } }, "is-buffer": { "version": "1.1.5", @@ -4252,7 +5828,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } }, "is-dotfile": { "version": "1.0.3", @@ -4264,7 +5843,10 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } }, "is-extendable": { "version": "0.1.1", @@ -4282,13 +5864,19 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, "is-function": { "version": "1.0.1", @@ -4300,18 +5888,30 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } }, "is-lower-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=" + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "requires": { + "lower-case": "1.1.4" + } }, "is-my-json-valid": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", "dev": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + }, "dependencies": { "xtend": { "version": "4.0.1", @@ -4325,7 +5925,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true + "dev": true, + "requires": { + "kind-of": "3.2.2" + } }, "is-path-cwd": { "version": "1.0.0", @@ -4337,13 +5940,19 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "dev": true + "dev": true, + "requires": { + "is-path-inside": "1.0.0" + } }, "is-path-inside": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", - "dev": true + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } }, "is-plain-obj": { "version": "1.1.0", @@ -4378,7 +5987,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", - "dev": true + "dev": true, + "requires": { + "tryit": "1.0.3" + } }, "is-retina": { "version": "1.0.3", @@ -4394,7 +6006,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "dev": true + "dev": true, + "requires": { + "html-comment-regex": "1.1.1" + } }, "is-typedarray": { "version": "1.0.0", @@ -4405,7 +6020,10 @@ "is-upper-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=" + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "requires": { + "upper-case": "1.1.3" + } }, "is-utf8": { "version": "0.2.1", @@ -4428,12 +6046,19 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true + "dev": true, + "requires": { + "isarray": "1.0.0" + } }, "isomorphic-fetch": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=" + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "1.7.1", + "whatwg-fetch": "2.0.3" + } }, "isstream": { "version": "0.1.2", @@ -4446,6 +6071,18 @@ "resolved": "https://registry.npmjs.org/jade/-/jade-1.11.0.tgz", "integrity": "sha1-nIDlOMEtP7lcjZu5VZ+gzAQEBf0=", "dev": true, + "requires": { + "character-parser": "1.2.1", + "clean-css": "3.4.26", + "commander": "2.6.0", + "constantinople": "3.0.2", + "jstransformer": "0.0.2", + "mkdirp": "0.5.1", + "transformers": "2.1.0", + "uglify-js": "2.6.4", + "void-elements": "2.0.1", + "with": "4.0.3" + }, "dependencies": { "commander": { "version": "2.6.0", @@ -4459,32 +6096,63 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/jade-html-loader/-/jade-html-loader-0.0.3.tgz", "integrity": "sha1-ggSLSG55YiZ5OPWM0er9nMAAPsw=", - "dev": true + "dev": true, + "requires": { + "loader-utils": "0.2.17" + } }, "jade-loader": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/jade-loader/-/jade-loader-0.8.0.tgz", "integrity": "sha1-0bCZcam/kKKymLCvWxrQMA0QnC4=", - "dev": true + "dev": true, + "requires": { + "loader-utils": "0.2.17" + } }, "jade-react-loader": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/jade-react-loader/-/jade-react-loader-1.0.2.tgz", "integrity": "sha1-MxgiARamZZzJxsMO7qqHLSMKioQ=", - "dev": true + "dev": true, + "requires": { + "loader-utils": "0.2.17", + "react-jade": "2.5.0" + } }, "jimp": { "version": "0.2.28", "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.2.28.tgz", "integrity": "sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI=", - "dev": true + "dev": true, + "requires": { + "bignumber.js": "2.4.0", + "bmp-js": "0.0.3", + "es6-promise": "3.3.1", + "exif-parser": "0.1.9", + "file-type": "3.9.0", + "jpeg-js": "0.2.0", + "load-bmfont": "1.3.0", + "mime": "1.3.4", + "mkdirp": "0.5.1", + "pixelmatch": "4.0.2", + "pngjs": "3.2.0", + "read-chunk": "1.0.1", + "request": "2.81.0", + "stream-to-buffer": "0.1.0", + "tinycolor2": "1.4.1", + "url-regex": "3.2.0" + } }, "jodid25519": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "dev": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "0.1.1" + } }, "jpeg-js": { "version": "0.2.0", @@ -4514,6 +6182,10 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + }, "dependencies": { "esprima": { "version": "2.7.3", @@ -4536,6 +6208,23 @@ "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=", "dev": true, "optional": true, + "requires": { + "abab": "1.0.3", + "acorn": "2.7.0", + "acorn-globals": "1.0.9", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "escodegen": "1.8.1", + "nwmatcher": "1.4.0", + "parse5": "1.5.1", + "request": "2.81.0", + "sax": "1.2.2", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.2", + "webidl-conversions": "2.0.1", + "whatwg-url-compat": "0.6.5", + "xml-name-validator": "2.0.1" + }, "dependencies": { "acorn": { "version": "2.7.0", @@ -4549,7 +6238,14 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, - "optional": true + "optional": true, + "requires": { + "esprima": "2.7.3", + "estraverse": "1.9.3", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.2.0" + } }, "esprima": { "version": "2.7.3", @@ -4570,7 +6266,10 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", "dev": true, - "optional": true + "optional": true, + "requires": { + "amdefine": "1.0.1" + } } } }, @@ -4601,7 +6300,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true + "dev": true, + "requires": { + "jsonify": "0.0.0" + } }, "json-stringify-safe": { "version": "5.0.1", @@ -4625,7 +6327,10 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } }, "jsonify": { "version": "0.0.0", @@ -4636,7 +6341,10 @@ "jsonp": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.0.4.tgz", - "integrity": "sha1-lGZaS3caq+y4qshBNbmVlHVpGL0=" + "integrity": "sha1-lGZaS3caq+y4qshBNbmVlHVpGL0=", + "requires": { + "debug": "2.6.8" + } }, "jsonpointer": { "version": "4.0.1", @@ -4655,6 +6363,12 @@ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -4667,13 +6381,24 @@ "jstransform": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz", - "integrity": "sha1-CaeJk+CuTU70SH9hVakfYZDLQiM=" + "integrity": "sha1-CaeJk+CuTU70SH9hVakfYZDLQiM=", + "requires": { + "base62": "1.2.0", + "commoner": "0.10.8", + "esprima-fb": "15001.1.0-dev-harmony-fb", + "object-assign": "2.1.1", + "source-map": "0.4.4" + } }, "jstransformer": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz", "integrity": "sha1-eq4pqQPRls+glz2IXT5HlH7Ndqs=", "dev": true, + "requires": { + "is-promise": "2.1.0", + "promise": "6.1.0" + }, "dependencies": { "asap": { "version": "1.0.0", @@ -4685,14 +6410,20 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz", "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=", - "dev": true + "dev": true, + "requires": { + "asap": "1.0.0" + } } } }, "jwt-decode": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-1.5.1.tgz", - "integrity": "sha1-vajYcxubc57otKMaDQJcqUrpLTs=" + "integrity": "sha1-vajYcxubc57otKMaDQJcqUrpLTs=", + "requires": { + "Base64": "0.1.4" + } }, "kew": { "version": "0.7.0", @@ -4703,13 +6434,19 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.5" + } }, "klaw": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } }, "lazy-cache": { "version": "1.0.4", @@ -4720,19 +6457,35 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } }, "load-bmfont": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.3.0.tgz", "integrity": "sha1-u358cQ3mvK/LE8s7jIHgwBMey8k=", "dev": true, + "requires": { + "buffer-equal": "0.0.1", + "mime": "1.3.4", + "parse-bmfont-ascii": "1.0.6", + "parse-bmfont-binary": "1.0.6", + "parse-bmfont-xml": "1.1.3", + "xhr": "2.4.0", + "xtend": "4.0.1" + }, "dependencies": { "xtend": { "version": "4.0.1", @@ -4746,13 +6499,26 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } }, "loader-utils": { "version": "0.2.17", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -4776,7 +6542,11 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true + "dev": true, + "requires": { + "lodash._basecopy": "3.0.1", + "lodash.keys": "3.1.2" + } }, "lodash._basecopy": { "version": "3.0.1", @@ -4794,13 +6564,22 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", - "dev": true + "dev": true, + "requires": { + "lodash._bindcallback": "3.0.1", + "lodash._isiterateecall": "3.0.9", + "lodash.restparam": "3.6.1" + } }, "lodash._createcompounder": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz", "integrity": "sha1-XdLLVTctbnDg4jkvsjBNZjEJEHU=", - "dev": true + "dev": true, + "requires": { + "lodash.deburr": "3.2.0", + "lodash.words": "3.2.0" + } }, "lodash._getnative": { "version": "3.9.1", @@ -4829,7 +6608,10 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", "integrity": "sha1-kyyLh/ikN3iXxnGXUzKC+Xrqwpg=", - "dev": true + "dev": true, + "requires": { + "lodash._createcompounder": "3.0.0" + } }, "lodash.clonedeep": { "version": "4.5.0", @@ -4841,7 +6623,10 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", "integrity": "sha1-baj1QzSjZqfPTEx2742Aqhs2XtU=", - "dev": true + "dev": true, + "requires": { + "lodash._root": "3.0.1" + } }, "lodash.isarguments": { "version": "3.1.0", @@ -4859,7 +6644,12 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true + "dev": true, + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } }, "lodash.memoize": { "version": "4.1.2", @@ -4883,7 +6673,10 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz", "integrity": "sha1-TiqGSbwIdFsXxpWxo86P7llmI7M=", - "dev": true + "dev": true, + "requires": { + "lodash._root": "3.0.1" + } }, "lolex": { "version": "1.3.2", @@ -4898,13 +6691,20 @@ "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=" + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.1" + } }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } }, "lower-case": { "version": "1.1.4", @@ -4914,13 +6714,20 @@ "lower-case-first": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=" + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "requires": { + "lower-case": "1.1.4" + } }, "lru-cache": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.0.tgz", "integrity": "sha512-aHGs865JXz6bkB4AHL+3AhyvTFKL3iZamKVWjIUKnXOXyasJvqPK8WAjOnAQKQZVpeXDVz19u1DD0r/12bWAdQ==", - "dev": true + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } }, "macaddress": { "version": "0.2.8", @@ -4948,7 +6755,12 @@ "md5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=" + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "1.1.5" + } }, "media-typer": { "version": "0.3.0", @@ -4960,13 +6772,29 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", - "dev": true + "dev": true, + "requires": { + "errno": "0.1.4", + "readable-stream": "2.0.6" + } }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.3.8", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, "dependencies": { "minimist": { "version": "1.2.0", @@ -4987,6 +6815,9 @@ "resolved": "https://registry.npmjs.org/merge-defaults/-/merge-defaults-0.2.1.tgz", "integrity": "sha1-3UIkjrlrtqUVIXJDIccv+Vg93oA=", "dev": true, + "requires": { + "lodash": "2.4.2" + }, "dependencies": { "lodash": { "version": "2.4.2", @@ -5012,7 +6843,22 @@ "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.3" + } }, "mime": { "version": "1.3.4", @@ -5030,18 +6876,27 @@ "version": "2.1.15", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "dev": true + "dev": true, + "requires": { + "mime-db": "1.27.0" + } }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true + "dev": true, + "requires": { + "dom-walk": "0.1.1" + } }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.7" + } }, "minimist": { "version": "0.0.8", @@ -5051,13 +6906,28 @@ "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } }, "mocha": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", "dev": true, + "requires": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.11", + "growl": "1.9.2", + "jade": "0.26.3", + "mkdirp": "0.5.1", + "supports-color": "1.2.0", + "to-iso-string": "0.0.2" + }, "dependencies": { "commander": { "version": "2.3.0", @@ -5069,7 +6939,10 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "escape-string-regexp": { "version": "1.0.2", @@ -5081,13 +6954,21 @@ "version": "3.2.11", "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.1", + "minimatch": "0.3.0" + } }, "jade": { "version": "0.26.3", "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", "dev": true, + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, "dependencies": { "commander": { "version": "0.6.1", @@ -5113,7 +6994,11 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "dev": true + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } }, "ms": { "version": "0.7.1", @@ -5160,7 +7045,10 @@ "ncname": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", - "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=" + "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", + "requires": { + "xml-char-classes": "1.0.0" + } }, "negotiator": { "version": "0.6.1", @@ -5176,13 +7064,37 @@ "ngreact": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/ngreact/-/ngreact-0.2.0.tgz", - "integrity": "sha1-PaQ6SIFYPFTMUDXim7SNnhFnVYc=" + "integrity": "sha1-PaQ6SIFYPFTMUDXim7SNnhFnVYc=", + "requires": { + "angular": "1.6.4", + "react": "15.6.1", + "react-dom": "15.6.1" + } + }, + "no-case": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", + "integrity": "sha1-euuhxzpSGEJlVUt9wDuvcg34AIE=", + "dev": true, + "requires": { + "lower-case": "1.1.4" + } }, "nock": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/nock/-/nock-8.2.1.tgz", "integrity": "sha1-ZMxl4b3TiT9Yy6fhq/3Dj0DwNko=", "dev": true, + "requires": { + "chai": "3.5.0", + "debug": "2.6.8", + "deep-equal": "1.0.1", + "json-stringify-safe": "5.0.1", + "lodash": "4.9.0", + "mkdirp": "0.5.1", + "propagate": "0.4.0", + "qs": "6.4.0" + }, "dependencies": { "lodash": { "version": "4.9.0", @@ -5201,24 +7113,54 @@ "node-bourbon": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/node-bourbon/-/node-bourbon-4.2.8.tgz", - "integrity": "sha1-5ETx8JQ0q3ZQ6jGMKOLhA9P5Qs0=" + "integrity": "sha1-5ETx8JQ0q3ZQ6jGMKOLhA9P5Qs0=", + "requires": { + "bourbon": "4.3.4" + } }, "node-fetch": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz", - "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ==" + "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } }, "node-gyp": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", "dev": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.0", + "osenv": "0.1.4", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.2.14" + }, "dependencies": { "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } } } }, @@ -5226,24 +7168,60 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", - "dev": true + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.3.0", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "0.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.0.6", + "stream-browserify": "2.0.1", + "stream-http": "2.7.1", + "string_decoder": "0.10.31", + "timers-browserify": "2.0.2", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + } }, "node-neat": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/node-neat/-/node-neat-1.7.2.tgz", - "integrity": "sha1-OEcpELgV4mG4sbmbpRmZRGWhXCE=" + "integrity": "sha1-OEcpELgV4mG4sbmbpRmZRGWhXCE=", + "requires": { + "bourbon-neat": "1.7.2", + "node-bourbon": "4.2.8" + } }, "node-rest-client": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/node-rest-client/-/node-rest-client-1.8.0.tgz", "integrity": "sha1-jTxWa4F+JzlMtyc3g6Qcrv4+WVU=", "dev": true, + "requires": { + "debug": "2.2.0", + "xml2js": "0.4.17" + }, "dependencies": { "debug": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "ms": { "version": "0.7.1", @@ -5258,12 +7236,38 @@ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-3.13.1.tgz", "integrity": "sha1-ckD7v/I5YwS0IjUn7TAgWJwAT8I=", "dev": true, + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.2", + "get-stdin": "4.0.1", + "glob": "7.1.2", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.6.2", + "node-gyp": "3.6.2", + "npmlog": "4.1.0", + "request": "2.81.0", + "sass-graph": "2.2.4" + }, "dependencies": { "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } } } }, @@ -5271,19 +7275,31 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true + "dev": true, + "requires": { + "abbrev": "1.1.0" + } }, "normalize-package-data": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", - "dev": true + "dev": true, + "requires": { + "hosted-git-info": "2.4.2", + "is-builtin-module": "1.0.0", + "semver": "5.3.0", + "validate-npm-package-license": "3.0.1" + } }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true + "dev": true, + "requires": { + "remove-trailing-separator": "1.0.2" + } }, "normalize-range": { "version": "0.1.2", @@ -5296,6 +7312,12 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, + "requires": { + "object-assign": "4.1.1", + "prepend-http": "1.0.4", + "query-string": "4.3.4", + "sort-keys": "1.1.2" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -5307,7 +7329,11 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true + "dev": true, + "requires": { + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } } } }, @@ -5315,6 +7341,9 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-1.4.1.tgz", "integrity": "sha1-qjh8JGXxNhHK86rkK6+Y9wXoos4=", + "requires": { + "lodash": "3.10.1" + }, "dependencies": { "lodash": { "version": "3.10.1", @@ -5327,13 +7356,22 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", - "dev": true + "dev": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } }, "nth-check": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", - "dev": true + "dev": true, + "requires": { + "boolbase": "1.0.0" + } }, "num2fraction": { "version": "1.2.2", @@ -5380,13 +7418,20 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true + "dev": true, + "requires": { + "ee-first": "1.1.1" + } }, "on-headers": { "version": "1.0.1", @@ -5397,7 +7442,10 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } }, "onetime": { "version": "1.1.0", @@ -5415,13 +7463,24 @@ "version": "0.3.7", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", - "dev": true + "dev": true, + "requires": { + "wordwrap": "0.0.2" + } }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + }, "dependencies": { "wordwrap": { "version": "1.0.0", @@ -5436,12 +7495,19 @@ "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", "dev": true, + "requires": { + "url-parse": "1.0.5" + }, "dependencies": { "url-parse": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", - "dev": true + "dev": true, + "requires": { + "querystringify": "0.0.4", + "requires-port": "1.0.0" + } } } }, @@ -5461,7 +7527,10 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true + "dev": true, + "requires": { + "lcid": "1.0.0" + } }, "os-tmpdir": { "version": "1.0.2", @@ -5473,7 +7542,11 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "dev": true + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "pako": { "version": "0.2.9", @@ -5484,7 +7557,10 @@ "param-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz", - "integrity": "sha1-3LCRpDwlm5Io8cNB57akTqC/l0M=" + "integrity": "sha1-3LCRpDwlm5Io8cNB57akTqC/l0M=", + "requires": { + "sentence-case": "1.1.3" + } }, "parse-bmfont-ascii": { "version": "1.0.6", @@ -5502,31 +7578,51 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.3.tgz", "integrity": "sha1-1rZqNxr9OcUAfZ8O6yYqTyzOe3w=", - "dev": true + "dev": true, + "requires": { + "xml-parse-from-string": "1.0.1", + "xml2js": "0.4.17" + } }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } }, "parse-headers": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=", - "dev": true + "dev": true, + "requires": { + "for-each": "0.3.2", + "trim": "0.0.1" + } }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true + "dev": true, + "requires": { + "error-ex": "1.3.1" + } }, "parse-png": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-1.1.2.tgz", "integrity": "sha1-9cKtfHmTSQmGAgooTBmu5FlxH/I=", - "dev": true + "dev": true, + "requires": { + "pngjs": "3.2.0" + } }, "parse5": { "version": "1.5.1", @@ -5544,7 +7640,11 @@ "pascal-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz", - "integrity": "sha1-Pl1kogBDgwp8STRMLXS0G+DJyZs=" + "integrity": "sha1-Pl1kogBDgwp8STRMLXS0G+DJyZs=", + "requires": { + "camel-case": "1.2.2", + "upper-case-first": "1.1.2" + } }, "path-browserify": { "version": "0.0.0", @@ -5555,13 +7655,19 @@ "path-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz", - "integrity": "sha1-UM5roNO+090LXCqcRVNpdDRAlRQ=" + "integrity": "sha1-UM5roNO+090LXCqcRVNpdDRAlRQ=", + "requires": { + "sentence-case": "1.1.3" + } }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } }, "path-is-absolute": { "version": "1.0.1", @@ -5590,7 +7696,12 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } }, "pbkdf2-compat": { "version": "2.0.1", @@ -5614,6 +7725,17 @@ "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz", "integrity": "sha1-1T0xH8+30dCN2yQBRVjxGIxRbaA=", "dev": true, + "requires": { + "es6-promise": "4.0.5", + "extract-zip": "1.5.0", + "fs-extra": "1.0.0", + "hasha": "2.2.0", + "kew": "0.7.0", + "progress": "1.1.8", + "request": "2.79.0", + "request-progress": "2.0.1", + "which": "1.2.14" + }, "dependencies": { "caseless": { "version": "0.11.0", @@ -5631,7 +7753,13 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.9.0", + "is-my-json-valid": "2.16.0", + "pinkie-promise": "2.0.1" + } }, "qs": { "version": "6.3.2", @@ -5643,7 +7771,29 @@ "version": "2.79.0", "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "dev": true + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.4.3", + "uuid": "3.0.1" + } }, "tunnel-agent": { "version": "0.4.3", @@ -5669,19 +7819,28 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true + "dev": true, + "requires": { + "pinkie": "2.0.4" + } }, "pixelmatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", - "dev": true + "dev": true, + "requires": { + "pngjs": "3.2.0" + } }, "pkg-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true + "dev": true, + "requires": { + "find-up": "1.1.2" + } }, "pluralize": { "version": "1.2.1", @@ -5706,6 +7865,12 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.1.9", + "source-map": "0.5.6", + "supports-color": "3.2.3" + }, "dependencies": { "source-map": { "version": "0.5.6", @@ -5717,7 +7882,10 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, @@ -5725,73 +7893,122 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-message-helpers": "2.0.0", + "reduce-css-calc": "1.3.0" + } }, "postcss-colormin": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true + "dev": true, + "requires": { + "colormin": "1.1.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } }, "postcss-convert-values": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } }, "postcss-discard-comments": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17" + } }, "postcss-discard-duplicates": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17" + } }, "postcss-discard-empty": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17" + } }, "postcss-discard-overridden": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17" + } }, "postcss-discard-unused": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17", + "uniqs": "2.0.0" + } }, "postcss-filter-plugins": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17", + "uniqid": "4.1.1" + } }, "postcss-merge-idents": { "version": "2.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } }, "postcss-merge-longhand": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17" + } }, "postcss-merge-rules": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-api": "1.6.1", + "postcss": "5.2.17", + "postcss-selector-parser": "2.2.3", + "vendors": "1.0.1" + } }, "postcss-message-helpers": { "version": "2.0.0", @@ -5804,6 +8021,11 @@ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", "dev": true, + "requires": { + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -5817,31 +8039,55 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } }, "postcss-minify-params": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dev": true + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0", + "uniqs": "2.0.0" + } }, "postcss-minify-selectors": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "has": "1.0.1", + "postcss": "5.2.17", + "postcss-selector-parser": "2.2.3" + } }, "postcss-modules-extract-imports": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", "dev": true, + "requires": { + "postcss": "6.0.1" + }, "dependencies": { "postcss": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3", + "source-map": "0.5.6", + "supports-color": "3.2.3" + } }, "source-map": { "version": "0.5.6", @@ -5853,7 +8099,10 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, @@ -5862,24 +8111,43 @@ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "dev": true, + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.1" + }, "dependencies": { "css-selector-tokenizer": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "dev": true + "dev": true, + "requires": { + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" + } }, "postcss": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3", + "source-map": "0.5.6", + "supports-color": "3.2.3" + } }, "regexpu-core": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true + "dev": true, + "requires": { + "regenerate": "1.3.2", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } }, "source-map": { "version": "0.5.6", @@ -5891,7 +8159,10 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, @@ -5900,24 +8171,43 @@ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "dev": true, + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.1" + }, "dependencies": { "css-selector-tokenizer": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "dev": true + "dev": true, + "requires": { + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" + } }, "postcss": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3", + "source-map": "0.5.6", + "supports-color": "3.2.3" + } }, "regexpu-core": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true + "dev": true, + "requires": { + "regenerate": "1.3.2", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } }, "source-map": { "version": "0.5.6", @@ -5929,7 +8219,10 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, @@ -5938,12 +8231,21 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", "dev": true, + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.1" + }, "dependencies": { "postcss": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3", + "source-map": "0.5.6", + "supports-color": "3.2.3" + } }, "source-map": { "version": "0.5.6", @@ -5955,7 +8257,10 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, @@ -5963,55 +8268,96 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17" + } }, "postcss-normalize-url": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dev": true + "dev": true, + "requires": { + "is-absolute-url": "2.1.0", + "normalize-url": "1.9.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } }, "postcss-ordered-values": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } }, "postcss-reduce-idents": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } }, "postcss-reduce-initial": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true + "dev": true, + "requires": { + "postcss": "5.2.17" + } }, "postcss-reduce-transforms": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dev": true + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } }, "postcss-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true + "dev": true, + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } }, "postcss-svgo": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dev": true + "dev": true, + "requires": { + "is-svg": "2.1.0", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0", + "svgo": "0.7.2" + } }, "postcss-unique-selectors": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dev": true + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.17", + "uniqs": "2.0.0" + } }, "postcss-value-parser": { "version": "3.3.0", @@ -6023,7 +8369,12 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dev": true + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.17", + "uniqs": "2.0.0" + } }, "prelude-ls": { "version": "1.1.2", @@ -6047,7 +8398,11 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.0.tgz", "integrity": "sha1-h/Tp1waiTIfWy+6fq+wAH8+Mddg=", - "dev": true + "dev": true, + "requires": { + "renderkid": "2.0.1", + "utila": "0.4.0" + } }, "private": { "version": "0.1.7", @@ -6074,17 +8429,33 @@ "promise": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", - "integrity": "sha1-SJZUxpJha4qlWwck+oCbt9tJxb8=" + "integrity": "sha1-SJZUxpJha4qlWwck+oCbt9tJxb8=", + "requires": { + "asap": "2.0.5" + } }, "prop-types": { "version": "15.5.10", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz", "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=", + "requires": { + "fbjs": "0.8.12", + "loose-envify": "1.3.1" + }, "dependencies": { "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.12" + } }, "object-assign": { "version": "4.1.1", @@ -6103,7 +8474,11 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz", "integrity": "sha1-J+VF9pYKRKYn2bREZ+NcG2tM4vM=", - "dev": true + "dev": true, + "requires": { + "forwarded": "0.1.0", + "ipaddr.js": "1.3.0" + } }, "prr": { "version": "0.0.0", @@ -6134,7 +8509,10 @@ "query-string": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz", - "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=" + "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=", + "requires": { + "strict-uri-encode": "1.1.0" + } }, "querystring": { "version": "0.2.0", @@ -6158,18 +8536,29 @@ "version": "0.0.0", "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-0.0.0.tgz", "integrity": "sha1-zeKelMQJsW4Z3HCYuJtmWPlyHTs=", - "dev": true + "dev": true, + "requires": { + "minimist": "0.0.8", + "through2": "0.4.2" + } }, "raf": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/raf/-/raf-3.3.2.tgz", - "integrity": "sha1-DBO+C1tJtG921maSSNUnzysC/ic=" + "integrity": "sha1-DBO+C1tJtG921maSSNUnzysC/ic=", + "requires": { + "performance-now": "2.1.0" + } }, "randomatic": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", - "dev": true + "dev": true, + "requires": { + "is-number": "2.1.0", + "kind-of": "3.2.2" + } }, "range-parser": { "version": "1.2.0", @@ -6181,16 +8570,37 @@ "version": "15.6.1", "resolved": "https://registry.npmjs.org/react/-/react-15.6.1.tgz", "integrity": "sha1-uqhDTsZ4C96ZfNw4C3nNM7ljk98=", + "requires": { + "create-react-class": "15.6.0", + "fbjs": "0.8.12", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.5.10" + }, "dependencies": { "create-react-class": { "version": "15.6.0", "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz", - "integrity": "sha1-q0SEl8JlZuHilBPogyB9V8/nvtQ=" + "integrity": "sha1-q0SEl8JlZuHilBPogyB9V8/nvtQ=", + "requires": { + "fbjs": "0.8.12", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } }, "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.12" + } }, "object-assign": { "version": "4.1.1", @@ -6202,17 +8612,33 @@ "react-addons-css-transition-group": { "version": "15.6.0", "resolved": "https://registry.npmjs.org/react-addons-css-transition-group/-/react-addons-css-transition-group-15.6.0.tgz", - "integrity": "sha1-aYh89uSHTSXNZuIqaZ4p8NZIq6A=" + "integrity": "sha1-aYh89uSHTSXNZuIqaZ4p8NZIq6A=", + "requires": { + "react-transition-group": "1.2.0" + } }, "react-addons-pure-render-mixin": { "version": "15.6.0", "resolved": "https://registry.npmjs.org/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-15.6.0.tgz", "integrity": "sha1-hLoChjDN+JI50W8btNmP6GVlGBM=", + "requires": { + "fbjs": "0.8.12", + "object-assign": "4.1.1" + }, "dependencies": { "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.12" + } }, "object-assign": { "version": "4.1.1", @@ -6225,11 +8651,24 @@ "version": "15.5.2", "resolved": "https://registry.npmjs.org/react-addons-shallow-compare/-/react-addons-shallow-compare-15.5.2.tgz", "integrity": "sha1-fLDuesyNfJP8wgLfC/R7qRanva0=", + "requires": { + "fbjs": "0.8.12", + "object-assign": "4.1.1" + }, "dependencies": { "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.12" + } }, "object-assign": { "version": "4.1.1", @@ -6242,11 +8681,24 @@ "version": "15.5.2", "resolved": "https://registry.npmjs.org/react-addons-update/-/react-addons-update-15.5.2.tgz", "integrity": "sha1-CtpQSUOHsXI4mZ7pZi+fP8OPk10=", + "requires": { + "fbjs": "0.8.12", + "object-assign": "4.1.1" + }, "dependencies": { "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.12" + } }, "object-assign": { "version": "4.1.1", @@ -6258,17 +8710,35 @@ "react-avatar": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/react-avatar/-/react-avatar-2.3.0.tgz", - "integrity": "sha1-09IvSZ3NJij1vp0ofwOHfMsLjwY=" + "integrity": "sha1-09IvSZ3NJij1vp0ofwOHfMsLjwY=", + "requires": { + "babel-runtime": "6.23.0", + "is-retina": "1.0.3", + "md5": "2.2.1", + "react": "15.6.1", + "react-addons-shallow-compare": "15.5.2" + } }, "react-color": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.13.1.tgz", - "integrity": "sha512-HpWtDtq1xzPzDGoMkyGksLfggXefT7CRRa05eOcKQ+bsylO2T+bJYssDhx9aYWyk4fAsjxLq32NLkDq3TxkXrA==" + "integrity": "sha512-HpWtDtq1xzPzDGoMkyGksLfggXefT7CRRa05eOcKQ+bsylO2T+bJYssDhx9aYWyk4fAsjxLq32NLkDq3TxkXrA==", + "requires": { + "lodash": "4.17.4", + "material-colors": "1.2.5", + "prop-types": "15.5.10", + "reactcss": "1.2.2", + "tinycolor2": "1.4.1" + } }, "react-datetime": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.7.1.tgz", "integrity": "sha1-PcS1LY162zD55sDbx27gLYbSw8c=", + "requires": { + "object-assign": "3.0.0", + "react-onclickoutside": "4.9.0" + }, "dependencies": { "object-assign": { "version": "3.0.0", @@ -6281,11 +8751,26 @@ "version": "15.6.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz", "integrity": "sha1-LLDtQZEDjlPCCes6eaI+Kkz5lHA=", + "requires": { + "fbjs": "0.8.12", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.5.10" + }, "dependencies": { "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.12" + } }, "object-assign": { "version": "4.1.1", @@ -6302,12 +8787,19 @@ "react-dotdotdot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/react-dotdotdot/-/react-dotdotdot-1.1.0.tgz", - "integrity": "sha1-tnRrG/BJxrKAajJAMvckyW+hfvE=" + "integrity": "sha1-tnRrG/BJxrKAajJAMvckyW+hfvE=", + "requires": { + "prop-types": "15.5.10" + } }, "react-dropzone": { "version": "3.13.2", "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-3.13.2.tgz", - "integrity": "sha1-MYdFwDAHymuUjN1EMavACbFqZYg=" + "integrity": "sha1-MYdFwDAHymuUjN1EMavACbFqZYg=", + "requires": { + "attr-accept": "1.1.0", + "prop-types": "15.5.10" + } }, "react-hot-api": { "version": "0.4.7", @@ -6319,7 +8811,11 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-1.3.1.tgz", "integrity": "sha1-yVZHrni3Pfzv9uxx/8sEGC/22vk=", - "dev": true + "dev": true, + "requires": { + "react-hot-api": "0.4.7", + "source-map": "0.4.4" + } }, "react-input-autosize": { "version": "0.6.13", @@ -6331,6 +8827,17 @@ "resolved": "https://registry.npmjs.org/react-jade/-/react-jade-2.5.0.tgz", "integrity": "sha1-w02dLdPuoB9S/UnMKIpcGmh8lIw=", "dev": true, + "requires": { + "acorn": "1.2.2", + "constantinople": "3.0.2", + "ent": "2.2.0", + "jade": "1.9.2", + "js-stringify": "1.0.2", + "resolve": "1.3.3", + "static-module": "1.3.2", + "uglify-js": "2.6.4", + "with": "5.1.1" + }, "dependencies": { "acorn": { "version": "1.2.2", @@ -6349,12 +8856,25 @@ "resolved": "https://registry.npmjs.org/jade/-/jade-1.9.2.tgz", "integrity": "sha1-C4n5xg1OrSc46Ca6eyzKyaVwKr4=", "dev": true, + "requires": { + "character-parser": "1.2.1", + "commander": "2.6.0", + "constantinople": "3.0.2", + "mkdirp": "0.5.1", + "transformers": "2.1.0", + "void-elements": "2.0.1", + "with": "4.0.3" + }, "dependencies": { "with": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz", "integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=", - "dev": true + "dev": true, + "requires": { + "acorn": "1.2.2", + "acorn-globals": "1.0.9" + } } } }, @@ -6363,6 +8883,10 @@ "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", "dev": true, + "requires": { + "acorn": "3.3.0", + "acorn-globals": "3.1.0" + }, "dependencies": { "acorn": { "version": "3.3.0", @@ -6375,6 +8899,9 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", "dev": true, + "requires": { + "acorn": "4.0.13" + }, "dependencies": { "acorn": { "version": "4.0.13", @@ -6392,6 +8919,12 @@ "version": "0.1.16", "resolved": "https://registry.npmjs.org/react-layout-pane/-/react-layout-pane-0.1.16.tgz", "integrity": "sha1-wW0Eodx8M97e3gP1Q4yc+gwXVBw=", + "requires": { + "object-assign": "4.1.1", + "react": "0.14.9", + "react-dom": "0.14.9", + "react-vendor-prefix": "0.0.1" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -6401,7 +8934,11 @@ "react": { "version": "0.14.9", "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", - "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=" + "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=", + "requires": { + "envify": "3.4.1", + "fbjs": "0.6.1" + } }, "react-dom": { "version": "0.14.9", @@ -6413,17 +8950,31 @@ "react-lazy-cache": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/react-lazy-cache/-/react-lazy-cache-3.0.1.tgz", - "integrity": "sha1-DcZNON8XZ+93Z4xclBkAZMsRsM0=" + "integrity": "sha1-DcZNON8XZ+93Z4xclBkAZMsRsM0=", + "requires": { + "deep-equal": "1.0.1" + } }, "react-modal": { "version": "1.9.7", "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-1.9.7.tgz", - "integrity": "sha512-oZNqI0ZnPD7NnfObrCMz2hxHTAw5oEuhZJ+gnyFNIQB2rR8h1YbLQTfhms1mtSJigb0J23OOWElHjXYYaKO+wg==" + "integrity": "sha512-oZNqI0ZnPD7NnfObrCMz2hxHTAw5oEuhZJ+gnyFNIQB2rR8h1YbLQTfhms1mtSJigb0J23OOWElHjXYYaKO+wg==", + "requires": { + "create-react-class": "15.5.3", + "element-class": "0.2.2", + "exenv": "1.2.0", + "lodash.assign": "4.2.0", + "prop-types": "15.5.10", + "react-dom-factories": "1.0.0" + } }, "react-onclickoutside": { "version": "4.9.0", "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-4.9.0.tgz", "integrity": "sha1-KQjDE24kQQK+peVDeoOKUo1dKZU=", + "requires": { + "object-assign": "4.1.1" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -6435,41 +8986,75 @@ "react-redux": { "version": "4.4.8", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.8.tgz", - "integrity": "sha1-57wd0QDotk6WrIIS2xEyObni4I8=" + "integrity": "sha1-57wd0QDotk6WrIIS2xEyObni4I8=", + "requires": { + "create-react-class": "15.5.3", + "hoist-non-react-statics": "1.2.0", + "invariant": "2.2.2", + "lodash": "4.17.4", + "loose-envify": "1.3.1", + "prop-types": "15.5.10" + } }, "react-router": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.8.1.tgz", "integrity": "sha1-c+lJH2zrMW0Pd5gpCBhj43juTtc=", + "requires": { + "history": "2.1.2", + "hoist-non-react-statics": "1.2.0", + "invariant": "2.2.2", + "loose-envify": "1.3.1", + "warning": "3.0.0" + }, "dependencies": { "history": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/history/-/history-2.1.2.tgz", "integrity": "sha1-SqLeiXoOSGfkU5hDvm7Nsphr/ew=", + "requires": { + "deep-equal": "1.0.1", + "invariant": "2.2.2", + "query-string": "3.0.3", + "warning": "2.1.0" + }, "dependencies": { "warning": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", - "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=" + "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=", + "requires": { + "loose-envify": "1.3.1" + } } } }, "warning": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=" + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "1.3.1" + } } } }, "react-s-alert": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/react-s-alert/-/react-s-alert-1.3.0.tgz", - "integrity": "sha1-2BIkpHTxXonDXA6mwqc/Iyp2cSg=" + "integrity": "sha1-2BIkpHTxXonDXA6mwqc/Iyp2cSg=", + "requires": { + "babel-runtime": "6.23.0" + } }, "react-scroll": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.5.4.tgz", "integrity": "sha512-dK6560l7Js0JoVV6hdoTQmMnpE2Nkv5gJZgZlBuu2tGTnhgqR62OQ8GE2zNG0NyKB5YREK1hpeVqHDixad+pYw==", + "requires": { + "object-assign": "4.1.1", + "prop-types": "15.5.10" + }, "dependencies": { "object-assign": { "version": "4.1.1", @@ -6481,12 +9066,22 @@ "react-select": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/react-select/-/react-select-0.9.1.tgz", - "integrity": "sha1-4yKi0KBjlqSCBrBVPfXsR9Fgg7o=" + "integrity": "sha1-4yKi0KBjlqSCBrBVPfXsR9Fgg7o=", + "requires": { + "classnames": "2.2.5", + "react-input-autosize": "0.6.13" + } }, "react-stickynode": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/react-stickynode/-/react-stickynode-1.3.1.tgz", - "integrity": "sha1-3i83lYy3vlTxaK51T7csrvhmCgQ=" + "integrity": "sha1-3i83lYy3vlTxaK51T7csrvhmCgQ=", + "requires": { + "classnames": "2.2.5", + "prop-types": "15.5.10", + "react-addons-shallow-compare": "15.5.2", + "subscribe-ui-event": "1.0.14" + } }, "react-switch-button": { "version": "1.1.2", @@ -6501,17 +9096,30 @@ "react-textarea-autosize": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-4.3.2.tgz", - "integrity": "sha1-lipSxoys6uQIwYrOzsKQSbgeQvo=" + "integrity": "sha1-lipSxoys6uQIwYrOzsKQSbgeQvo=", + "requires": { + "prop-types": "15.5.10" + } }, "react-transition-group": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.0.tgz", "integrity": "sha1-tR/JIbDDg1p+98Vxx5/ILHPpIE8=", + "requires": { + "chain-function": "1.0.0", + "dom-helpers": "3.2.1", + "loose-envify": "1.3.1", + "prop-types": "15.5.10", + "warning": "3.0.0" + }, "dependencies": { "warning": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=" + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "1.3.1" + } } } }, @@ -6523,7 +9131,10 @@ "reactcss": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.2.tgz", - "integrity": "sha1-QbDvQ+AdVIgDV8NLEawVMSCTUO8=" + "integrity": "sha1-QbDvQ+AdVIgDV8NLEawVMSCTUO8=", + "requires": { + "lodash": "4.17.4" + } }, "read-chunk": { "version": "1.0.1", @@ -6535,35 +9146,69 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.3.8", + "path-type": "1.1.0" + } }, "read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } }, "readable-stream": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=" + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + } }, "readdirp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.0.6", + "set-immediate-shim": "1.0.1" + } }, "readline2": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", - "dev": true + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "mute-stream": "0.0.5" + } }, "recast": { "version": "0.11.23", "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "requires": { + "ast-types": "0.9.6", + "esprima": "3.1.3", + "private": "0.1.7", + "source-map": "0.5.6" + }, "dependencies": { "esprima": { "version": "3.1.3", @@ -6581,11 +9226,26 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.20.2.tgz", "integrity": "sha1-ET1qx+KcpmTP/+wWtoHd3fFSULw=", + "requires": { + "change-emitter": "0.1.6", + "fbjs": "0.8.12", + "hoist-non-react-statics": "1.2.0", + "symbol-observable": "0.2.4" + }, "dependencies": { "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.12" + } }, "object-assign": { "version": "4.1.1", @@ -6603,34 +9263,61 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } }, "reduce-css-calc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "dev": true + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" + } }, "reduce-function-call": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "dev": true + "dev": true, + "requires": { + "balanced-match": "0.4.2" + } }, "redux": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.1.tgz", - "integrity": "sha512-iEVTlORM5mv6xb3ZAOyrVehVUD+W87jdFAX6SYVgZh3/SQAWFSxTRJOqPWQdvo4VN4lJkNDvqKlBXBabsJTSkA==" + "integrity": "sha512-iEVTlORM5mv6xb3ZAOyrVehVUD+W87jdFAX6SYVgZh3/SQAWFSxTRJOqPWQdvo4VN4lJkNDvqKlBXBabsJTSkA==", + "requires": { + "lodash": "4.17.4", + "lodash-es": "4.17.4", + "loose-envify": "1.3.1", + "symbol-observable": "1.0.4" + } }, "redux-form": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/redux-form/-/redux-form-4.2.2.tgz", - "integrity": "sha1-uK43pAcJBvRdvTCwcinxoQvyXLA=" + "integrity": "sha1-uK43pAcJBvRdvTCwcinxoQvyXLA=", + "requires": { + "deep-equal": "1.0.1", + "hoist-non-react-statics": "1.2.0", + "is-promise": "2.1.0", + "react-lazy-cache": "3.0.1" + } }, "redux-logger": { "version": "2.10.2", "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-2.10.2.tgz", - "integrity": "sha1-PFpfCm8yV3wd6t9mVfJX+CxsOTc=" + "integrity": "sha1-PFpfCm8yV3wd6t9mVfJX+CxsOTc=", + "requires": { + "deep-diff": "0.3.4" + } }, "redux-mock-store": { "version": "1.2.3", @@ -6646,7 +9333,10 @@ "redux-router": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redux-router/-/redux-router-1.0.0.tgz", - "integrity": "sha1-PBZ240Qb7FD+jZJFfAF8tjaZM08=" + "integrity": "sha1-PBZ240Qb7FD+jZJFfAF8tjaZM08=", + "requires": { + "deep-equal": "1.0.1" + } }, "redux-segment": { "version": "1.6.2", @@ -6673,19 +9363,33 @@ "version": "0.9.11", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.24.1", + "private": "0.1.7" + } }, "regex-cache": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "dev": true + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3", + "is-primitive": "2.0.0" + } }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true + "dev": true, + "requires": { + "regenerate": "1.3.2", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } }, "regjsgen": { "version": "0.2.0", @@ -6698,6 +9402,9 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, + "requires": { + "jsesc": "0.5.0" + }, "dependencies": { "jsesc": { "version": "0.5.0", @@ -6723,6 +9430,13 @@ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", "dev": true, + "requires": { + "css-select": "1.2.0", + "dom-converter": "0.1.4", + "htmlparser2": "3.3.0", + "strip-ansi": "3.0.1", + "utila": "0.3.3" + }, "dependencies": { "utila": { "version": "0.3.3", @@ -6747,7 +9461,10 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true + "dev": true, + "requires": { + "is-finite": "1.0.2" + } }, "replace-ext": { "version": "0.0.1", @@ -6760,6 +9477,30 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + }, "dependencies": { "performance-now": { "version": "0.2.0", @@ -6779,7 +9520,10 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", - "dev": true + "dev": true, + "requires": { + "throttleit": "1.0.0" + } }, "require-directory": { "version": "2.1.1", @@ -6797,7 +9541,11 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true + "dev": true, + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + } }, "requires-port": { "version": "1.0.0", @@ -6815,6 +9563,14 @@ "resolved": "https://registry.npmjs.org/resize-img/-/resize-img-1.1.2.tgz", "integrity": "sha1-+tZQ+vPvLFPqYxErwnLZXp2SVQ4=", "dev": true, + "requires": { + "bmp-js": "0.0.1", + "file-type": "3.9.0", + "get-stream": "2.3.1", + "jimp": "0.2.28", + "jpeg-js": "0.1.2", + "parse-png": "1.1.2" + }, "dependencies": { "bmp-js": { "version": "0.0.1", @@ -6834,7 +9590,10 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", - "dev": true + "dev": true, + "requires": { + "path-parse": "1.0.5" + } }, "resolve-from": { "version": "1.0.1", @@ -6846,24 +9605,42 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true + "dev": true, + "requires": { + "exit-hook": "1.1.1", + "onetime": "1.1.0" + } }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=" + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "0.1.4" + } }, "rimraf": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "dev": true, + "requires": { + "glob": "7.1.2" + }, "dependencies": { "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } } } }, @@ -6877,7 +9654,10 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", - "dev": true + "dev": true, + "requires": { + "once": "1.4.0" + } }, "rx-lite": { "version": "3.1.2", @@ -6901,6 +9681,12 @@ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" + }, "dependencies": { "camelcase": { "version": "3.0.0", @@ -6912,19 +9698,47 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "yargs": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + } } } }, @@ -6933,6 +9747,11 @@ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-3.2.3.tgz", "integrity": "sha1-dC6B/YFwqHcal54YYiUBZ0qI41U=", "dev": true, + "requires": { + "async": "1.5.2", + "loader-utils": "0.2.17", + "object-assign": "4.1.1" + }, "dependencies": { "async": { "version": "1.5.2", @@ -6958,7 +9777,11 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true + "dev": true, + "requires": { + "js-base64": "2.1.9", + "source-map": "0.4.4" + } }, "semver": { "version": "5.3.0", @@ -6971,31 +9794,67 @@ "resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=", "dev": true, + "requires": { + "debug": "2.6.7", + "depd": "1.1.0", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "fresh": "0.5.0", + "http-errors": "1.6.1", + "mime": "1.3.4", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, "dependencies": { "debug": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } } } }, "sentence-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz", - "integrity": "sha1-gDSq/CFFdy06vhUJqkLJ4QQtwTk=" + "integrity": "sha1-gDSq/CFFdy06vhUJqkLJ4QQtwTk=", + "requires": { + "lower-case": "1.1.4" + } }, "serve-index": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.0.tgz", "integrity": "sha1-0rKA/FYNYW7oG0i/D6gqvtJIXOc=", - "dev": true + "dev": true, + "requires": { + "accepts": "1.3.3", + "batch": "0.6.1", + "debug": "2.6.8", + "escape-html": "1.0.3", + "http-errors": "1.6.1", + "mime-types": "2.1.15", + "parseurl": "1.3.1" + } }, "serve-static": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", "integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=", - "dev": true + "dev": true, + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.1", + "send": "0.15.3" + } }, "set-blocking": { "version": "2.0.0", @@ -7053,7 +9912,14 @@ "sinon": { "version": "2.0.0-pre", "resolved": "https://registry.npmjs.org/sinon/-/sinon-2.0.0-pre.tgz", - "integrity": "sha1-GCk7APsvFVyZ6OW0bjH36t4ygV0=" + "integrity": "sha1-GCk7APsvFVyZ6OW0bjH36t4ygV0=", + "requires": { + "formatio": "1.1.1", + "lolex": "1.3.2", + "samsam": "1.1.2", + "text-encoding": "0.5.2", + "util": "0.10.3" + } }, "slash": { "version": "1.0.0", @@ -7070,19 +9936,29 @@ "snake-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz", - "integrity": "sha1-DC8l4wUVjZoY09l3BmGH/vilpmo=" + "integrity": "sha1-DC8l4wUVjZoY09l3BmGH/vilpmo=", + "requires": { + "sentence-case": "1.1.3" + } }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true + "dev": true, + "requires": { + "hoek": "2.16.3" + } }, "sockjs": { "version": "0.3.18", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", "dev": true, + "requires": { + "faye-websocket": "0.10.0", + "uuid": "2.0.3" + }, "dependencies": { "uuid": { "version": "2.0.3", @@ -7097,12 +9973,23 @@ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", "dev": true, + "requires": { + "debug": "2.6.8", + "eventsource": "0.1.6", + "faye-websocket": "0.11.1", + "inherits": "2.0.1", + "json3": "3.3.2", + "url-parse": "1.1.9" + }, "dependencies": { "faye-websocket": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true + "dev": true, + "requires": { + "websocket-driver": "0.6.5" + } } } }, @@ -7110,7 +9997,10 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true + "dev": true, + "requires": { + "is-plain-obj": "1.1.0" + } }, "source-list-map": { "version": "0.1.8", @@ -7121,13 +10011,19 @@ "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=" + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": "1.0.1" + } }, "source-map-support": { "version": "0.4.15", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", "dev": true, + "requires": { + "source-map": "0.5.6" + }, "dependencies": { "source-map": { "version": "0.5.6", @@ -7141,7 +10037,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "dev": true + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } }, "spdx-expression-parse": { "version": "1.0.4", @@ -7166,6 +10065,17 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -7180,12 +10090,20 @@ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.4.tgz", "integrity": "sha1-t9NNg4k3uWn5ZBygfUj47eJj6ns=", "dev": true, + "requires": { + "escodegen": "0.0.28" + }, "dependencies": { "escodegen": { "version": "0.0.28", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz", "integrity": "sha1-Dk/xcV8yh3XWyrUaxEpAbNer/9M=", - "dev": true + "dev": true, + "requires": { + "esprima": "1.0.4", + "estraverse": "1.3.2", + "source-map": "0.4.4" + } }, "esprima": { "version": "1.0.4", @@ -7206,18 +10124,45 @@ "resolved": "https://registry.npmjs.org/static-module/-/static-module-1.3.2.tgz", "integrity": "sha1-Mp+58iOlZiZr2nGEO32TLHZxdPM=", "dev": true, + "requires": { + "concat-stream": "1.6.0", + "duplexer2": "0.0.2", + "escodegen": "1.3.3", + "falafel": "1.2.0", + "has": "1.0.1", + "object-inspect": "0.4.0", + "quote-stream": "0.0.0", + "readable-stream": "1.0.34", + "shallow-copy": "0.0.1", + "static-eval": "0.2.4", + "through2": "0.4.2" + }, "dependencies": { "concat-stream": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.2.11", + "typedarray": "0.0.6" + }, "dependencies": { "readable-stream": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", - "dev": true + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.0.1", + "string_decoder": "1.0.2", + "util-deprecate": "1.0.2" + } } } }, @@ -7232,6 +10177,12 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + }, "dependencies": { "isarray": { "version": "0.0.1", @@ -7251,7 +10202,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } } } }, @@ -7265,7 +10219,11 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.1", + "readable-stream": "2.0.6" + } }, "stream-cache": { "version": "0.0.2", @@ -7283,18 +10241,37 @@ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.1.tgz", "integrity": "sha1-VGpRdBrVprB+njGwsQRBqRffUoo=", "dev": true, + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.1", + "readable-stream": "2.2.11", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + }, "dependencies": { "readable-stream": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", - "dev": true + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.0.1", + "string_decoder": "1.0.2", + "util-deprecate": "1.0.2" + } }, "string_decoder": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } }, "xtend": { "version": "4.0.1", @@ -7314,7 +10291,10 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz", "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=", - "dev": true + "dev": true, + "requires": { + "stream-to": "0.2.2" + } }, "strict-uri-encode": { "version": "1.1.0", @@ -7330,7 +10310,12 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } }, "stringstream": { "version": "0.0.5", @@ -7342,19 +10327,28 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } }, "strip-json-comments": { "version": "1.0.4", @@ -7367,19 +10361,32 @@ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz", "integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=", "dev": true, + "requires": { + "loader-utils": "1.1.0" + }, "dependencies": { "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } } } }, "subscribe-ui-event": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/subscribe-ui-event/-/subscribe-ui-event-1.0.14.tgz", - "integrity": "sha1-xQYQS8Ncert2LrNHtZVEKiVnJn8=" + "integrity": "sha1-xQYQS8Ncert2LrNHtZVEKiVnJn8=", + "requires": { + "eventemitter3": "2.0.3", + "lodash": "4.17.4", + "raf": "3.3.2" + } }, "supports-color": { "version": "2.0.0", @@ -7392,6 +10399,11 @@ "resolved": "https://registry.npmjs.org/svg2png/-/svg2png-3.0.1.tgz", "integrity": "sha1-omRNaLAjGsAK9DGqFjcU/xcQZEc=", "dev": true, + "requires": { + "phantomjs-prebuilt": "2.1.14", + "pn": "1.0.0", + "yargs": "3.32.0" + }, "dependencies": { "camelcase": { "version": "2.1.1", @@ -7403,7 +10415,12 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } }, "window-size": { "version": "0.1.4", @@ -7415,7 +10432,16 @@ "version": "3.32.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", - "dev": true + "dev": true, + "requires": { + "camelcase": "2.1.1", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "os-locale": "1.4.0", + "string-width": "1.0.2", + "window-size": "0.1.4", + "y18n": "3.2.1" + } } } }, @@ -7423,12 +10449,25 @@ "version": "0.7.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "dev": true + "dev": true, + "requires": { + "coa": "1.0.2", + "colors": "1.1.2", + "csso": "2.3.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "sax": "1.2.2", + "whet.extend": "0.9.9" + } }, "swap-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=" + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "requires": { + "lower-case": "1.1.4", + "upper-case": "1.1.3" + } }, "symbol-observable": { "version": "1.0.4", @@ -7452,6 +10491,14 @@ "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", "dev": true, + "requires": { + "ajv": "4.11.8", + "ajv-keywords": "1.5.1", + "chalk": "1.1.3", + "lodash": "4.17.4", + "slice-ansi": "0.0.4", + "string-width": "2.0.0" + }, "dependencies": { "is-fullwidth-code-point": { "version": "2.0.0", @@ -7463,7 +10510,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", - "dev": true + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "3.0.1" + } } } }, @@ -7477,18 +10528,57 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.1" + } }, "tc-accounts": { - "version": "git+https://github.com/appirio-tech/accounts-app.git#90945856275749e6e124b4e4bb6964513547b415" + "version": "git+https://github.com/appirio-tech/accounts-app.git#90945856275749e6e124b4e4bb6964513547b415", + "requires": { + "angucomplete-alt": "2.5.0", + "angular": "1.6.4", + "angular-cookies": "1.6.4", + "angular-messages": "1.6.4", + "angular-ui-router": "0.2.18", + "appirio-tech-ng-auth": "4.2.6", + "appirio-tech-ng-iso-constants": "1.0.6", + "appirio-tech-ng-ui-components": "2.2.4", + "auth0-angular": "4.2.7", + "auth0-js": "6.8.4", + "babel-polyfill": "6.23.0", + "isomorphic-fetch": "2.2.1", + "lodash": "4.17.4", + "ng-onload": "0.2.1" + } }, "tc-ui": { "version": "git+https://github.com/appirio-tech/tc-ui.git#d7e830f7e63a90b09ed96616f0a37516b0c412c5", + "requires": { + "classnames": "2.2.5", + "lodash": "4.17.4", + "moment": "2.18.1", + "node-neat": "1.7.2", + "react": "0.14.9", + "react-datetime": "2.7.1", + "react-dom": "0.14.9", + "react-dropzone": "3.13.2", + "react-redux": "4.4.8", + "react-router": "2.8.1", + "react-select": "0.9.1", + "redux": "3.7.1" + }, "dependencies": { "react": { "version": "0.14.9", "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", - "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=" + "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=", + "requires": { + "envify": "3.4.1", + "fbjs": "0.6.1" + } }, "react-dom": { "version": "0.14.9", @@ -7524,6 +10614,10 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "2.1.2" + }, "dependencies": { "isarray": { "version": "0.0.1", @@ -7535,7 +10629,13 @@ "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.1", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } } } }, @@ -7543,7 +10643,10 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", - "dev": true + "dev": true, + "requires": { + "setimmediate": "1.0.5" + } }, "tinycolor2": { "version": "1.4.1", @@ -7553,7 +10656,11 @@ "title-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz", - "integrity": "sha1-+uSmrlRr+iLQg6DuqRCkDRLtT1o=" + "integrity": "sha1-+uSmrlRr+iLQg6DuqRCkDRLtT1o=", + "requires": { + "sentence-case": "1.1.3", + "upper-case": "1.1.3" + } }, "to-arraybuffer": { "version": "1.0.1", @@ -7572,6 +10679,12 @@ "resolved": "https://registry.npmjs.org/to-ico/-/to-ico-1.1.2.tgz", "integrity": "sha1-yzhIXxNvS+yJ4l+Jeh1gjAlik+k=", "dev": true, + "requires": { + "arrify": "1.0.1", + "image-size": "0.5.4", + "parse-png": "1.1.2", + "resize-img": "1.1.2" + }, "dependencies": { "image-size": { "version": "0.5.4", @@ -7597,7 +10710,10 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "dev": true + "dev": true, + "requires": { + "punycode": "1.4.1" + } }, "tr46": { "version": "0.0.3", @@ -7611,12 +10727,20 @@ "resolved": "https://registry.npmjs.org/transform-loader/-/transform-loader-0.2.4.tgz", "integrity": "sha1-5ch4d7qW1R0/IlNoWHtG4ibRzsk=", "dev": true, + "requires": { + "loader-utils": "1.1.0" + }, "dependencies": { "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } } } }, @@ -7625,6 +10749,11 @@ "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz", "integrity": "sha1-XSPLNVYd2F3Gf7hIIwm0fVPM6ac=", "dev": true, + "requires": { + "css": "1.0.8", + "promise": "2.0.0", + "uglify-js": "2.2.5" + }, "dependencies": { "is-promise": { "version": "1.0.1", @@ -7636,19 +10765,29 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz", "integrity": "sha1-RmSKqdYFr10ucMMCS/WUNtoCuA4=", - "dev": true + "dev": true, + "requires": { + "is-promise": "1.0.1" + } }, "source-map": { "version": "0.1.43", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true + "dev": true, + "requires": { + "amdefine": "1.0.1" + } }, "uglify-js": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz", "integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=", - "dev": true + "dev": true, + "requires": { + "optimist": "0.3.7", + "source-map": "0.1.43" + } } } }, @@ -7685,7 +10824,10 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } }, "tweetnacl": { "version": "0.14.5", @@ -7698,7 +10840,10 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } }, "type-detect": { "version": "1.0.0", @@ -7710,7 +10855,11 @@ "version": "1.6.15", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", - "dev": true + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.15" + } }, "typedarray": { "version": "0.0.6", @@ -7726,6 +10875,12 @@ "version": "2.6.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", + "requires": { + "async": "0.2.10", + "source-map": "0.5.6", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, "dependencies": { "source-map": { "version": "0.5.6", @@ -7742,7 +10897,10 @@ "uncontrollable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz", - "integrity": "sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak=" + "integrity": "sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak=", + "requires": { + "invariant": "2.2.2" + } }, "underscore": { "version": "1.8.3", @@ -7760,7 +10918,10 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "dev": true + "dev": true, + "requires": { + "macaddress": "0.2.8" + } }, "uniqs": { "version": "2.0.0", @@ -7782,13 +10943,20 @@ "upper-case-first": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=" + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "requires": { + "upper-case": "1.1.3" + } }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, "dependencies": { "punycode": { "version": "1.3.2", @@ -7803,6 +10971,10 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", "dev": true, + "requires": { + "querystringify": "1.0.0", + "requires-port": "1.0.0" + }, "dependencies": { "querystringify": { "version": "1.0.0", @@ -7816,18 +10988,27 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", - "dev": true + "dev": true, + "requires": { + "ip-regex": "1.0.3" + } }, "user-home": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", - "dev": true + "dev": true, + "requires": { + "os-homedir": "1.0.2" + } }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=" + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } }, "util-deprecate": { "version": "1.0.2", @@ -7856,7 +11037,11 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "dev": true + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } }, "vary": { "version": "1.1.1", @@ -7874,19 +11059,30 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "dev": true + "dev": true, + "requires": { + "extsprintf": "1.0.2" + } }, "vinyl": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true + "dev": true, + "requires": { + "clone": "1.0.2", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true + "dev": true, + "requires": { + "indexof": "0.0.1" + } }, "void-elements": { "version": "2.0.1", @@ -7897,19 +11093,32 @@ "warning": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", - "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=" + "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=", + "requires": { + "loose-envify": "1.3.1" + } }, "watch-run": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/watch-run/-/watch-run-1.2.5.tgz", "integrity": "sha1-ldNaqn9Zdcj9yP/Tzzv/9YY8oEw=", - "dev": true + "dev": true, + "requires": { + "commander": "2.9.0", + "debug": "2.6.8", + "gaze": "1.1.2" + } }, "watchpack": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", "dev": true, + "requires": { + "async": "0.9.2", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + }, "dependencies": { "async": { "version": "0.9.2", @@ -7931,6 +11140,23 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", "dev": true, + "requires": { + "acorn": "3.3.0", + "async": "1.5.2", + "clone": "1.0.2", + "enhanced-resolve": "0.9.1", + "interpret": "0.6.6", + "loader-utils": "0.2.17", + "memory-fs": "0.3.0", + "mkdirp": "0.5.1", + "node-libs-browser": "0.7.0", + "optimist": "0.6.1", + "supports-color": "3.2.3", + "tapable": "0.1.10", + "uglify-js": "2.7.5", + "watchpack": "0.2.9", + "webpack-core": "0.6.9" + }, "dependencies": { "acorn": { "version": "3.3.0", @@ -7948,7 +11174,11 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.2" + } }, "source-map": { "version": "0.5.6", @@ -7960,13 +11190,22 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true + "dev": true, + "requires": { + "has-flag": "1.0.0" + } }, "uglify-js": { "version": "2.7.5", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", "dev": true, + "requires": { + "async": "0.2.10", + "source-map": "0.5.6", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, "dependencies": { "async": { "version": "0.2.10", @@ -7982,19 +11221,33 @@ "version": "0.6.9", "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", - "dev": true + "dev": true, + "requires": { + "source-list-map": "0.1.8", + "source-map": "0.4.4" + } }, "webpack-dev-middleware": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.10.2.tgz", "integrity": "sha1-LiUs4d+wINvaHMs33ybzCrAU29E=", "dev": true, + "requires": { + "memory-fs": "0.4.1", + "mime": "1.3.4", + "path-is-absolute": "1.0.1", + "range-parser": "1.2.0" + }, "dependencies": { "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true + "dev": true, + "requires": { + "errno": "0.1.4", + "readable-stream": "2.0.6" + } } } }, @@ -8003,18 +11256,40 @@ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-1.16.5.tgz", "integrity": "sha1-DL1fLSrI1OWTqs1clwLnu9XlmJI=", "dev": true, + "requires": { + "compression": "1.6.2", + "connect-history-api-fallback": "1.3.0", + "express": "4.15.3", + "http-proxy-middleware": "0.17.4", + "open": "0.0.5", + "optimist": "0.6.1", + "serve-index": "1.9.0", + "sockjs": "0.3.18", + "sockjs-client": "1.1.4", + "stream-cache": "0.0.2", + "strip-ansi": "3.0.1", + "supports-color": "3.2.3", + "webpack-dev-middleware": "1.10.2" + }, "dependencies": { "optimist": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.2" + } }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, @@ -8022,7 +11297,10 @@ "version": "0.6.5", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true + "dev": true, + "requires": { + "websocket-extensions": "0.1.1" + } }, "websocket-extensions": { "version": "0.1.1", @@ -8040,7 +11318,10 @@ "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz", "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", "dev": true, - "optional": true + "optional": true, + "requires": { + "tr46": "0.0.3" + } }, "whet.extend": { "version": "0.9.9", @@ -8052,7 +11333,10 @@ "version": "1.2.14", "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "dev": true + "dev": true, + "requires": { + "isexe": "2.0.0" + } }, "which-module": { "version": "1.0.0", @@ -8064,7 +11348,10 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "dev": true + "dev": true, + "requires": { + "string-width": "1.0.2" + } }, "winchan": { "version": "0.1.4", @@ -8081,6 +11368,10 @@ "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz", "integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=", "dev": true, + "requires": { + "acorn": "1.2.2", + "acorn-globals": "1.0.9" + }, "dependencies": { "acorn": { "version": "1.2.2", @@ -8099,7 +11390,11 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + } }, "wrappy": { "version": "1.0.2", @@ -8110,13 +11405,22 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } }, "xhr": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=", "dev": true, + "requires": { + "global": "4.3.2", + "is-function": "1.0.1", + "parse-headers": "2.0.1", + "xtend": "4.0.1" + }, "dependencies": { "xtend": { "version": "4.0.1", @@ -8148,18 +11452,28 @@ "version": "0.4.17", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", - "dev": true + "dev": true, + "requires": { + "sax": "1.2.2", + "xmlbuilder": "4.2.1" + } }, "xmlbuilder": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", - "dev": true + "dev": true, + "requires": { + "lodash": "4.17.4" + } }, "xtend": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=" + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "requires": { + "object-keys": "0.4.0" + } }, "y18n": { "version": "3.2.1", @@ -8176,13 +11490,22 @@ "yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=" + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } }, "yargs-parser": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, + "requires": { + "camelcase": "3.0.0" + }, "dependencies": { "camelcase": { "version": "3.0.0", @@ -8196,7 +11519,10 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", - "dev": true + "dev": true, + "requires": { + "fd-slicer": "1.0.1" + } }, "zepto": { "version": "0.0.4", From 8b698a8b21e4adcbd3da7f416641f3fe7fb4710c Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 26 Jul 2017 13:51:15 +0530 Subject: [PATCH 52/89] =?UTF-8?q?Github=20issue#960,=20Update=20copy=20for?= =?UTF-8?q?=20new=20connect=20register=20flow=20in=20logged=20out=20projec?= =?UTF-8?q?t=20creation=20flow=20=E2=80=94=20Updated=20copy=20on=20connect?= =?UTF-8?q?=20home=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Home/Home.jsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/Home/Home.jsx b/src/components/Home/Home.jsx index d33e4700c..096b8882d 100644 --- a/src/components/Home/Home.jsx +++ b/src/components/Home/Home.jsx @@ -18,7 +18,7 @@ class Home extends React.Component { } render() { - const learnMoreUrl = 'https://www.' + DOMAIN +'/what-can-you-do/' + const learnMoreUrl = 'https://www.' + DOMAIN +'/about-topcoder/connect/' return (
    @@ -26,12 +26,12 @@ class Home extends React.Component {
    -

    Welcome to Topcoder Connect

    +

    Topcoder Connect: the easiest way to go from idea to app

    Companies and agencies, from the world’s largest to the Valley’s newest, use crowdsourcing to deliver high-quality assets, faster.

    -

    Join Connect today to see what we can do for your next project through the power of crowdsourcing, delivered by Topcoder.

    +

    Connect guides you through the entire crowdsourcing process, from entering requirements to receiving final deliverables, and it facilitates collaboration between your project team and Topcoder community members working on your project.

    From c811ff41d57d1d849911a8ddf2dbf6c29a1f70d0 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 26 Jul 2017 14:39:26 +0530 Subject: [PATCH 53/89] =?UTF-8?q?Github=20issue#960,=20Update=20copy=20for?= =?UTF-8?q?=20new=20connect=20register=20flow=20in=20logged=20out=20projec?= =?UTF-8?q?t=20creation=20flow=20=E2=80=94=20Updated=20copy=20and=20style?= =?UTF-8?q?=20for=20select=20product=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/projectWizard/index.js | 4 ++-- src/projects/create/components/SelectProduct.scss | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index 394aec2bb..2e805f767 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -26,7 +26,7 @@ const products = { }, Infographic: { brief: 'Infographic', - details: 'Present your data in a clean and a fun way', + details: 'Present your data in an easy-to-understand and interesting way.', icon: 'product-infographic', id: 'infographic' }, @@ -46,7 +46,7 @@ const products = { subtypes: { 'Front-end Prototype': { brief: '3-20 screens', - details: 'Translate designs to an HTML/CSS/JavaScript prototype', + details: 'Translate designs to a web (HTML/CSS/JavaScript) or mobile prototype.', icon: 'product-front-end-prototype', id: 'visual_prototype' }, diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss index 5826fef0f..dd53f3afd 100644 --- a/src/projects/create/components/SelectProduct.scss +++ b/src/projects/create/components/SelectProduct.scss @@ -24,7 +24,7 @@ } .footer { margin-bottom: 15px; - margin-top: 100px; + margin-top: 50px; } .ProductCard { From e88bc0d51e9ab884f2fdd9f1d34f1295994dea6e Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 26 Jul 2017 17:01:23 +0530 Subject: [PATCH 54/89] =?UTF-8?q?Github=20issue#960,=20Update=20copy=20for?= =?UTF-8?q?=20new=20connect=20register=20flow=20in=20logged=20out=20projec?= =?UTF-8?q?t=20creation=20flow=20=E2=80=94=20Updated=20copy=20for=20descri?= =?UTF-8?q?ption=20for=20project=20details=20form=20in=20project=20creatio?= =?UTF-8?q?n=20flow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/projectQuestions/app_dev.v1.0.js | 2 +- src/config/projectQuestions/avd.v1.0.js | 2 +- src/config/projectQuestions/topcoder.v1.js | 2 +- src/config/projectQuestions/visual_design.v1.0.js | 2 +- src/config/projectQuestions/wireframes.v1.0.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js index e91057493..6284c5ae0 100644 --- a/src/config/projectQuestions/app_dev.v1.0.js +++ b/src/config/projectQuestions/app_dev.v1.0.js @@ -234,7 +234,7 @@ export const basicSections = [ id: 'appDefinition', title: '', required: true, - description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + description: 'Please answer a few basic questions about your project and, as an option, add links to supporting documents in the “Notes” section. If you have any files to upload, you’ll be able to do so later.', subSections: [ { id: 'projectName', diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js index 25accc186..6fe3a29c4 100644 --- a/src/config/projectQuestions/avd.v1.0.js +++ b/src/config/projectQuestions/avd.v1.0.js @@ -233,7 +233,7 @@ export const basicSections = [ id: 'appDefinition', title: '', required: true, - description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + description: 'Please answer a few basic questions about your project and, as an option, add links to supporting documents in the “Notes” section. If you have any files to upload, you’ll be able to do so later.', subSections: [ { id: 'projectName', diff --git a/src/config/projectQuestions/topcoder.v1.js b/src/config/projectQuestions/topcoder.v1.js index 7d87db987..b29951d33 100644 --- a/src/config/projectQuestions/topcoder.v1.js +++ b/src/config/projectQuestions/topcoder.v1.js @@ -208,7 +208,7 @@ export const basicSections = [ id: 'appDefinition', title: '', required: true, - description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + description: 'Please answer a few basic questions about your project and, as an option, add links to supporting documents in the “Notes” section. If you have any files to upload, you’ll be able to do so later.', subSections: [ { id: 'projectName', diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index 92ec024c9..e521483d8 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -251,7 +251,7 @@ export const basicSections = [ title: '', required: true, pricePerPage: 1000, - description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + description: 'Please answer a few basic questions about your project and, as an option, add links to supporting documents in the “Notes” section. If you have any files to upload, you’ll be able to do so later.', subSections: [ { id: 'projectName', diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js index 0d06f84d6..94194da71 100644 --- a/src/config/projectQuestions/wireframes.v1.0.js +++ b/src/config/projectQuestions/wireframes.v1.0.js @@ -234,7 +234,7 @@ export const basicSections = [ title: '', productName: 'Wireframes', required: true, - description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + description: 'Please answer a few basic questions about your project and, as an option, add links to supporting documents in the “Notes” section. If you have any files to upload, you’ll be able to do so later.', subSections: [ { id: 'projectName', From c529d813deb100f5afd93815ecfcafdce2293ca5 Mon Sep 17 00:00:00 2001 From: Matthew Twomey Date: Mon, 17 Jul 2017 00:16:39 -0500 Subject: [PATCH 55/89] Add filepicker keys to env --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index e141c7c9c..ace42bb06 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,6 +59,13 @@ env: - secure: C3NYP6gj6w6cWGBQYrgT1tioSfaYpRzBf5PWVW2RG2pfzcWduB9x1GYWGhYWe3nSGKt9eao1JVTKph3HQW2oVS8U5GjwuT8opfC4k+xzrydiX9xplTC74gcigGTg3MIRuKPB8IhCNxvtKCllCTuVoVfVjScVB22zgwM6b3OArbSXFpBQEHjL3tcwTcjXy82s0u4wl4gIDvwbnZkUO01sCA+Yk7dYQfE+R0sSrozdexjkR/6ska++s+LzdNgGLUtDvKdf8VtF5z/htaqBWCIYNIrQEz6yClEEb7fW+4f7fK5KcGgCsocLPaUZPZc0mypsFiFxLLFdu+yBDNItXcEfKBuUhTSZV0z/l/dBrGLrY+rbjrr3YsQvnmco9JbUyMh6Or4JYuf2ofvw31SXuf9lrmUHaul7Yu+ibdfuoYJ9xTgZs1AKaGbyhhF+hxOM4YMkVB7byWacqiVE2G9RKqD02HxOL0UYnRZUisyt7oSXDBMEXvhzr2zfD43NgngSHhxpy6vzFCsGsXBEoYZD4DFrV6dym60kGmXd/24d6t8cXiRq+6xsWH7aU61fu8AppKAZJeMv/qHxxtM9lXJ1LaHKsiav/leTVcy1OXLPNNDOK20I99FEqVSNKvJ79uagR6xbcDnI4LRlw+uDKaY6AMSLIw9M5tWdAc6LNR9Wcyzop6E= # $MASTER_AWS_SECRET - secure: QTbD+n84Eg1QRZs7yjLl2yRdKmesr/yTTvSSX77xiKJB3kcI6UivJDoaWkIKq2WaxxA6ewf7UGdvGiM/q6PSpHmP9khNdxj3qXCn3OpUKZ+wVCz6JZ6JWWBBIBnKhTgFLz8O9jpxMRsXB0ZbF0k2JE6n/2qD96+rF0UmjfsJs7havOuHPNI4LwrRYSP8KzdbGRbcAUWesASTyq8nktv+kF93NomNaaRyyHBWCQMpEGS67B536IfFjypR919SIv+Qu4sqDATelQlSZWZm1jzupz3cAo8GNB6v1vYGNRMnM56R0rgDpOIqN6b6Y6hmHodSBMYp52sxFvcTuDDLuLvyGRQ/ErINmdcaXqgMh5Gl3tDwHezT5s32B+rOsSIkZF8fnrNB74dMpuKp7g2XCVfPeqlnEttY/uGbuQBe3be0g3kGtK9MFRw75X6oQxESaO2NvkCqPNZl1TacDv1s46bz3Y+en4gTmJ1UXKwmWf7fOekYozNBnOtcWQZqJ0g3d1DU1Pul4QSFuszL6y0uH5ohWDjk0mOERuFIQXKCrTVsMzUogeGp3Z7rDAynwFYGbJWgeoclbH2fQpbCLFSZxfvbYzzkpYbWD3eMLcpuKjSjTew8KEiYk2uYEjW9Kaj1wWkAkIGDAawbMGw5XVS/3a/scAcVMkyYb9VVy1wDAHudiRI= + # FILE_PICKER_API_KEY_DEV + - secure: "OWi5naEt+D7huLCmloRXrODtbgOsUc28f6rTzjt2SimSdmejQnbHA99nhSMP6TorW32b5O8xtI8EUn7KQBw7Zao3RZXACoH/NEk6gi6UtqGAB+jUl8E//TzZsthqFr7DU9/dH0+36y/bRzBPVWBwJQJs1AJBeXWd6LluVnfny6SxQE2L6yxqTOj9nRFlwvr0BXT286+rE0VF8EgG2XNzI4oQ5ETJ+AZKnAlO6jaqjClhu6uAHv+6h3h+zJMJWyMaGbVYk4+HRqvvTAi8YePTI6svPtLTS1tpMhvUUPJt4xFemz3E2evXgEImY+U9wo4GpsWwB3HOjbYNlaRWfxVCwk77wg2Q6PfcSfFDE1xA9HxdKrImsQtd0xSSIxQfyfNtlppQkTHKxBVKJbCsJ+DIU4xh9nHL9sD7sDGhIZsfD5YOUxsOS1wVuRZ+oW1XemtawvjL2jw1D8/LC/V3mqTS1+RQp4VVqLYc5DkweNo3ROtLzbO1/tOULVhN/Z5wxTpgwyQjt6dTeBkcZDfBDK4wbV7D1IdHm9vbuK2LYVepz+AiIvTEz4sN4OH5Hz25tt1ZgCivnsl9wv3atO8yU/MpQwvwOAk/XpI99uMPVQVyvDn1pXvcx/bAMd49GNguUYOSdqVaxvJX+xYGKVYzXRxGtMk+yw1cx79Ye1FDhIoUzcw=" + # FILE_PICKER_API_KEY_QA + - secure: "Q4DXtW7ihXrEl4QNRU4RiG+JQCwNnxyIKdU/hc7/xqwOmuftvi9f0/HykkiAjR1v65/cLuCUeG2huZQEwdhHIF0eUHG6H6AjY6+IQ1sSZrn4rd+I6HrMYaK/M7XerEV0Kae0jw9izyRXahsPyKrFVx/ZGOQzBZVdDZLBUqxgluvYdZV+mXRQW2Tsl7UGNfjI0qe9XEtBHGSEWchmcfCXkg/cRmA5ZiuRManux+q1oQ4MwwGPL0ESzxFxvof/CvEWpGBVix2Gq+hpGTk/qpG1dLTQlwiFvazGlPkeCxuivJoKwNdoLeoBdPHfdcwaDdtNkxCVxNiOCQ36flUEzNAmulMI4Bas7MiMIhs+bXtC754pIsyxXidFFeDcQ+K6Pr8yRfI+xYE+Lo5N8vT77IzmROqP/LGjTGHec3yFu47pJlQ6Qo6YYqovbunEzcncSkC8nrKS3I2gXw2CO+vRAkgpugefX3XtouV0ajaIL3qYG+iAZiIlZ6VDqseC/2oSkr0n9bQp46yqTIP6JIwJmfJVkmYjgpnOzpEIHDjjsGDAE47d1Zym67U0d2Vqb0YOs+AGC6fZuCk3QTPJjP8xa+7EFuKG3p4+kxDoTkqT+AAn33CZy2fNGq0dWHXP/C61vuzeJnKFNcghEgasrdXTAtg5MS2xgbIavxigvza+GNOPIjA=" + # FILE_PICKER_API_KEY_PROD + - secure: "ZJku1/gzumKXUdRx8RCIT1W+M9oMyjltIomhf1lqZi7mssfnFE5c0+8gexh4s3JsFH3/PBdwHnveMLcq03HUgnZBtZPUn6TIhjU9dvgBimgKVVBmG6yHo1tzTxRPI8hZZAULCRGw+tAo4T9Z9XIhCEIdL0mv5VMiNyUyTAtRpV7GD8XSnrFGtx6qsk6z42VXF7nIGH7eMoVLOsrnpalAFKJxsPBlMnCvYQQjPf+IbEMP4VtWoutNLJOxauAvLE9afLMb+dNesQthv9P9RVaS0AeBhqA1z9XTaz5df2HbL0RWrC4e4kbwQLCc47frPKFWizyJRLVKyCs/Vry06KGt9gnBC30dIaYIbyeZSghMec71A8zI9xmWWe6+Qvpcy7HjQApsu2VLf5GBnshkdnlsZR4N4QM3mXtzD8yyyVmj8u8m00zjCWM1dOnKFA7/MIAvv2KpKlDX3l9DSY8j8PVU0ZTArGoClqaSISNr3uvcI5EAhCQLQh+BiF8G9qR2ACn6+RY8PKR95X03dY4W7iaoOcncSEXIplKJ087I/wkJwH8XgKdE70JdF1daM9jMx8w62U1pI/iykdYKWEA8/kWyv6dwiD6Uz6suSreqvF1jJhH1aYdJOI6Vmp32qH+JjzsQQ9I7w6NustxMogZZumswJazC843sRwk8Yuq1Ht7f1KM=" + # enable once travis supports branch specific builds # notifications: # slack: From a50beb3b4a50c02afa6311fdb78a32117132dca3 Mon Sep 17 00:00:00 2001 From: Matthew Twomey Date: Mon, 17 Jul 2017 00:16:39 -0500 Subject: [PATCH 56/89] Add filepicker keys to env --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index 5235b55e0..b9decf2f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,6 +59,13 @@ env: - secure: C3NYP6gj6w6cWGBQYrgT1tioSfaYpRzBf5PWVW2RG2pfzcWduB9x1GYWGhYWe3nSGKt9eao1JVTKph3HQW2oVS8U5GjwuT8opfC4k+xzrydiX9xplTC74gcigGTg3MIRuKPB8IhCNxvtKCllCTuVoVfVjScVB22zgwM6b3OArbSXFpBQEHjL3tcwTcjXy82s0u4wl4gIDvwbnZkUO01sCA+Yk7dYQfE+R0sSrozdexjkR/6ska++s+LzdNgGLUtDvKdf8VtF5z/htaqBWCIYNIrQEz6yClEEb7fW+4f7fK5KcGgCsocLPaUZPZc0mypsFiFxLLFdu+yBDNItXcEfKBuUhTSZV0z/l/dBrGLrY+rbjrr3YsQvnmco9JbUyMh6Or4JYuf2ofvw31SXuf9lrmUHaul7Yu+ibdfuoYJ9xTgZs1AKaGbyhhF+hxOM4YMkVB7byWacqiVE2G9RKqD02HxOL0UYnRZUisyt7oSXDBMEXvhzr2zfD43NgngSHhxpy6vzFCsGsXBEoYZD4DFrV6dym60kGmXd/24d6t8cXiRq+6xsWH7aU61fu8AppKAZJeMv/qHxxtM9lXJ1LaHKsiav/leTVcy1OXLPNNDOK20I99FEqVSNKvJ79uagR6xbcDnI4LRlw+uDKaY6AMSLIw9M5tWdAc6LNR9Wcyzop6E= # $MASTER_AWS_SECRET - secure: QTbD+n84Eg1QRZs7yjLl2yRdKmesr/yTTvSSX77xiKJB3kcI6UivJDoaWkIKq2WaxxA6ewf7UGdvGiM/q6PSpHmP9khNdxj3qXCn3OpUKZ+wVCz6JZ6JWWBBIBnKhTgFLz8O9jpxMRsXB0ZbF0k2JE6n/2qD96+rF0UmjfsJs7havOuHPNI4LwrRYSP8KzdbGRbcAUWesASTyq8nktv+kF93NomNaaRyyHBWCQMpEGS67B536IfFjypR919SIv+Qu4sqDATelQlSZWZm1jzupz3cAo8GNB6v1vYGNRMnM56R0rgDpOIqN6b6Y6hmHodSBMYp52sxFvcTuDDLuLvyGRQ/ErINmdcaXqgMh5Gl3tDwHezT5s32B+rOsSIkZF8fnrNB74dMpuKp7g2XCVfPeqlnEttY/uGbuQBe3be0g3kGtK9MFRw75X6oQxESaO2NvkCqPNZl1TacDv1s46bz3Y+en4gTmJ1UXKwmWf7fOekYozNBnOtcWQZqJ0g3d1DU1Pul4QSFuszL6y0uH5ohWDjk0mOERuFIQXKCrTVsMzUogeGp3Z7rDAynwFYGbJWgeoclbH2fQpbCLFSZxfvbYzzkpYbWD3eMLcpuKjSjTew8KEiYk2uYEjW9Kaj1wWkAkIGDAawbMGw5XVS/3a/scAcVMkyYb9VVy1wDAHudiRI= + # FILE_PICKER_API_KEY_DEV + - secure: "OWi5naEt+D7huLCmloRXrODtbgOsUc28f6rTzjt2SimSdmejQnbHA99nhSMP6TorW32b5O8xtI8EUn7KQBw7Zao3RZXACoH/NEk6gi6UtqGAB+jUl8E//TzZsthqFr7DU9/dH0+36y/bRzBPVWBwJQJs1AJBeXWd6LluVnfny6SxQE2L6yxqTOj9nRFlwvr0BXT286+rE0VF8EgG2XNzI4oQ5ETJ+AZKnAlO6jaqjClhu6uAHv+6h3h+zJMJWyMaGbVYk4+HRqvvTAi8YePTI6svPtLTS1tpMhvUUPJt4xFemz3E2evXgEImY+U9wo4GpsWwB3HOjbYNlaRWfxVCwk77wg2Q6PfcSfFDE1xA9HxdKrImsQtd0xSSIxQfyfNtlppQkTHKxBVKJbCsJ+DIU4xh9nHL9sD7sDGhIZsfD5YOUxsOS1wVuRZ+oW1XemtawvjL2jw1D8/LC/V3mqTS1+RQp4VVqLYc5DkweNo3ROtLzbO1/tOULVhN/Z5wxTpgwyQjt6dTeBkcZDfBDK4wbV7D1IdHm9vbuK2LYVepz+AiIvTEz4sN4OH5Hz25tt1ZgCivnsl9wv3atO8yU/MpQwvwOAk/XpI99uMPVQVyvDn1pXvcx/bAMd49GNguUYOSdqVaxvJX+xYGKVYzXRxGtMk+yw1cx79Ye1FDhIoUzcw=" + # FILE_PICKER_API_KEY_QA + - secure: "Q4DXtW7ihXrEl4QNRU4RiG+JQCwNnxyIKdU/hc7/xqwOmuftvi9f0/HykkiAjR1v65/cLuCUeG2huZQEwdhHIF0eUHG6H6AjY6+IQ1sSZrn4rd+I6HrMYaK/M7XerEV0Kae0jw9izyRXahsPyKrFVx/ZGOQzBZVdDZLBUqxgluvYdZV+mXRQW2Tsl7UGNfjI0qe9XEtBHGSEWchmcfCXkg/cRmA5ZiuRManux+q1oQ4MwwGPL0ESzxFxvof/CvEWpGBVix2Gq+hpGTk/qpG1dLTQlwiFvazGlPkeCxuivJoKwNdoLeoBdPHfdcwaDdtNkxCVxNiOCQ36flUEzNAmulMI4Bas7MiMIhs+bXtC754pIsyxXidFFeDcQ+K6Pr8yRfI+xYE+Lo5N8vT77IzmROqP/LGjTGHec3yFu47pJlQ6Qo6YYqovbunEzcncSkC8nrKS3I2gXw2CO+vRAkgpugefX3XtouV0ajaIL3qYG+iAZiIlZ6VDqseC/2oSkr0n9bQp46yqTIP6JIwJmfJVkmYjgpnOzpEIHDjjsGDAE47d1Zym67U0d2Vqb0YOs+AGC6fZuCk3QTPJjP8xa+7EFuKG3p4+kxDoTkqT+AAn33CZy2fNGq0dWHXP/C61vuzeJnKFNcghEgasrdXTAtg5MS2xgbIavxigvza+GNOPIjA=" + # FILE_PICKER_API_KEY_PROD + - secure: "ZJku1/gzumKXUdRx8RCIT1W+M9oMyjltIomhf1lqZi7mssfnFE5c0+8gexh4s3JsFH3/PBdwHnveMLcq03HUgnZBtZPUn6TIhjU9dvgBimgKVVBmG6yHo1tzTxRPI8hZZAULCRGw+tAo4T9Z9XIhCEIdL0mv5VMiNyUyTAtRpV7GD8XSnrFGtx6qsk6z42VXF7nIGH7eMoVLOsrnpalAFKJxsPBlMnCvYQQjPf+IbEMP4VtWoutNLJOxauAvLE9afLMb+dNesQthv9P9RVaS0AeBhqA1z9XTaz5df2HbL0RWrC4e4kbwQLCc47frPKFWizyJRLVKyCs/Vry06KGt9gnBC30dIaYIbyeZSghMec71A8zI9xmWWe6+Qvpcy7HjQApsu2VLf5GBnshkdnlsZR4N4QM3mXtzD8yyyVmj8u8m00zjCWM1dOnKFA7/MIAvv2KpKlDX3l9DSY8j8PVU0ZTArGoClqaSISNr3uvcI5EAhCQLQh+BiF8G9qR2ACn6+RY8PKR95X03dY4W7iaoOcncSEXIplKJ087I/wkJwH8XgKdE70JdF1daM9jMx8w62U1pI/iykdYKWEA8/kWyv6dwiD6Uz6suSreqvF1jJhH1aYdJOI6Vmp32qH+JjzsQQ9I7w6NustxMogZZumswJazC843sRwk8Yuq1Ht7f1KM=" + # enable once travis supports branch specific builds # notifications: # slack: From 04a330c397b57d55ad9437d29affcb645ac902ec Mon Sep 17 00:00:00 2001 From: Matthew Twomey Date: Wed, 26 Jul 2017 20:42:08 -0500 Subject: [PATCH 57/89] Make it default to DEV env so deploy from other branches works --- webpack.config.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/webpack.config.js b/webpack.config.js index 453c6676e..20f0c2698 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -3,6 +3,8 @@ const FaviconsWebpackPlugin = require('favicons-webpack-plugin') const branch = process.env.TRAVIS_BRANCH +process.env.ENV = 'DEV' // Default to DEV + if (branch === 'master') process.env.ENV = 'PROD' if (branch === 'dev') process.env.ENV = 'DEV' if (branch === 'qa') process.env.ENV = 'QA' From ff9923b6557da1388fc362ea0d5373808d6ad4c3 Mon Sep 17 00:00:00 2001 From: Matthew Twomey Date: Wed, 26 Jul 2017 20:56:58 -0500 Subject: [PATCH 58/89] Update travis env key for filepicker dev environment. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b9decf2f6..4add429c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -60,7 +60,7 @@ env: # $MASTER_AWS_SECRET - secure: QTbD+n84Eg1QRZs7yjLl2yRdKmesr/yTTvSSX77xiKJB3kcI6UivJDoaWkIKq2WaxxA6ewf7UGdvGiM/q6PSpHmP9khNdxj3qXCn3OpUKZ+wVCz6JZ6JWWBBIBnKhTgFLz8O9jpxMRsXB0ZbF0k2JE6n/2qD96+rF0UmjfsJs7havOuHPNI4LwrRYSP8KzdbGRbcAUWesASTyq8nktv+kF93NomNaaRyyHBWCQMpEGS67B536IfFjypR919SIv+Qu4sqDATelQlSZWZm1jzupz3cAo8GNB6v1vYGNRMnM56R0rgDpOIqN6b6Y6hmHodSBMYp52sxFvcTuDDLuLvyGRQ/ErINmdcaXqgMh5Gl3tDwHezT5s32B+rOsSIkZF8fnrNB74dMpuKp7g2XCVfPeqlnEttY/uGbuQBe3be0g3kGtK9MFRw75X6oQxESaO2NvkCqPNZl1TacDv1s46bz3Y+en4gTmJ1UXKwmWf7fOekYozNBnOtcWQZqJ0g3d1DU1Pul4QSFuszL6y0uH5ohWDjk0mOERuFIQXKCrTVsMzUogeGp3Z7rDAynwFYGbJWgeoclbH2fQpbCLFSZxfvbYzzkpYbWD3eMLcpuKjSjTew8KEiYk2uYEjW9Kaj1wWkAkIGDAawbMGw5XVS/3a/scAcVMkyYb9VVy1wDAHudiRI= # FILE_PICKER_API_KEY_DEV - - secure: "OWi5naEt+D7huLCmloRXrODtbgOsUc28f6rTzjt2SimSdmejQnbHA99nhSMP6TorW32b5O8xtI8EUn7KQBw7Zao3RZXACoH/NEk6gi6UtqGAB+jUl8E//TzZsthqFr7DU9/dH0+36y/bRzBPVWBwJQJs1AJBeXWd6LluVnfny6SxQE2L6yxqTOj9nRFlwvr0BXT286+rE0VF8EgG2XNzI4oQ5ETJ+AZKnAlO6jaqjClhu6uAHv+6h3h+zJMJWyMaGbVYk4+HRqvvTAi8YePTI6svPtLTS1tpMhvUUPJt4xFemz3E2evXgEImY+U9wo4GpsWwB3HOjbYNlaRWfxVCwk77wg2Q6PfcSfFDE1xA9HxdKrImsQtd0xSSIxQfyfNtlppQkTHKxBVKJbCsJ+DIU4xh9nHL9sD7sDGhIZsfD5YOUxsOS1wVuRZ+oW1XemtawvjL2jw1D8/LC/V3mqTS1+RQp4VVqLYc5DkweNo3ROtLzbO1/tOULVhN/Z5wxTpgwyQjt6dTeBkcZDfBDK4wbV7D1IdHm9vbuK2LYVepz+AiIvTEz4sN4OH5Hz25tt1ZgCivnsl9wv3atO8yU/MpQwvwOAk/XpI99uMPVQVyvDn1pXvcx/bAMd49GNguUYOSdqVaxvJX+xYGKVYzXRxGtMk+yw1cx79Ye1FDhIoUzcw=" + - secure: "JQQ33fk1uo/RfFLMwplWZbknMG5F9ej6rv6hvROvwOK/zSaauEOuJMPMdAK0N7zeEQtnVJdfg5YuIt9VLkARmS1EaC0xM7ciFKdDew1H0uTvhXJZduogSlIXW6BhmXtaOXTY3WOFPXvjhfCHGSychRzTYTwI05nmD3A1ihECbkk/kLp6wNVMstMCRuyvqnr8lTM6dMQ7F8gyZQha9pe3WV4KyvFUtlnMIXCYn/KLTzmbeS353ebYqq/8SgWA+7pCpNyh2mYaUXfv56ffj/qwy7K1rzUWAE8/heSWUWKA3fHT4g75Mo01RXu8St842gY9dmfcM4WuV1wIl6F1DFdPmZUxC0L9IlTVmIk1iGZxlqNAv2nWxGEg22OTZe0JNZokLdgZHoOSreKUCWPskptVH262kEN5MS8f1HPNioZsR56b+BS3LM8fG0ZOMNIhNdDyJXBIkYueCCmVLI3dhBmxuuq4E2rmlEJxnSgKC/Y5vvtZO9/JKBDBM9QWi+4yvjIByTRnfy+I152WEAZJtc162b0yz2MR38XG8N9VZdXOAr2A7UVq46RTe0nKVMAJc/YNGZs3RIIKXTzeAHwfSHXGqtFkSx60JxNHM7cEhVgVEqOhp0lAqHH1K9W6SnOR/psmYH6uD9s40SnHph3jZ8SJmO03EomT3dGIh93/eY4tKio=" # FILE_PICKER_API_KEY_QA - secure: "Q4DXtW7ihXrEl4QNRU4RiG+JQCwNnxyIKdU/hc7/xqwOmuftvi9f0/HykkiAjR1v65/cLuCUeG2huZQEwdhHIF0eUHG6H6AjY6+IQ1sSZrn4rd+I6HrMYaK/M7XerEV0Kae0jw9izyRXahsPyKrFVx/ZGOQzBZVdDZLBUqxgluvYdZV+mXRQW2Tsl7UGNfjI0qe9XEtBHGSEWchmcfCXkg/cRmA5ZiuRManux+q1oQ4MwwGPL0ESzxFxvof/CvEWpGBVix2Gq+hpGTk/qpG1dLTQlwiFvazGlPkeCxuivJoKwNdoLeoBdPHfdcwaDdtNkxCVxNiOCQ36flUEzNAmulMI4Bas7MiMIhs+bXtC754pIsyxXidFFeDcQ+K6Pr8yRfI+xYE+Lo5N8vT77IzmROqP/LGjTGHec3yFu47pJlQ6Qo6YYqovbunEzcncSkC8nrKS3I2gXw2CO+vRAkgpugefX3XtouV0ajaIL3qYG+iAZiIlZ6VDqseC/2oSkr0n9bQp46yqTIP6JIwJmfJVkmYjgpnOzpEIHDjjsGDAE47d1Zym67U0d2Vqb0YOs+AGC6fZuCk3QTPJjP8xa+7EFuKG3p4+kxDoTkqT+AAn33CZy2fNGq0dWHXP/C61vuzeJnKFNcghEgasrdXTAtg5MS2xgbIavxigvza+GNOPIjA=" # FILE_PICKER_API_KEY_PROD From ce97df42b233b3091d59fd711640b7e4bfe8ae7a Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Thu, 27 Jul 2017 10:05:04 +0530 Subject: [PATCH 59/89] =?UTF-8?q?Github=20issue#960,=20Update=20copy=20for?= =?UTF-8?q?=20new=20connect=20register=20flow=20in=20logged=20out=20projec?= =?UTF-8?q?t=20creation=20flow=20=E2=80=94=20Updated=20copy=20for=20Specif?= =?UTF-8?q?ication=20tab=E2=80=99s=20form=20as=20per=20discussion=20in=20d?= =?UTF-8?q?oc=E2=80=99s=20comments?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/projectQuestions/app_dev.v1.0.js | 2 +- src/config/projectQuestions/avd.v1.0.js | 2 +- src/config/projectQuestions/topcoder.v1.js | 2 +- src/config/projectQuestions/visual_design.v1.0.js | 2 +- src/config/projectQuestions/wireframes.v1.0.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js index 6284c5ae0..96d3d3c61 100644 --- a/src/config/projectQuestions/app_dev.v1.0.js +++ b/src/config/projectQuestions/app_dev.v1.0.js @@ -25,7 +25,7 @@ const sections = [ return 'Definition' }, required: true, - description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.', subSections: [ { id: 'projectName', diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js index 6fe3a29c4..a5c4699bd 100644 --- a/src/config/projectQuestions/avd.v1.0.js +++ b/src/config/projectQuestions/avd.v1.0.js @@ -27,7 +27,7 @@ const sections = [ return 'Definition' }, required: true, - description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.', subSections: [ { id: 'projectName', diff --git a/src/config/projectQuestions/topcoder.v1.js b/src/config/projectQuestions/topcoder.v1.js index b29951d33..bf26fad23 100644 --- a/src/config/projectQuestions/topcoder.v1.js +++ b/src/config/projectQuestions/topcoder.v1.js @@ -17,7 +17,7 @@ const sections = [ id: 'appDefinition', title: 'App Definition', required: true, - description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.', subSections: [ { id: 'projectName', diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index e521483d8..ba3844059 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -28,7 +28,7 @@ const sections = [ }, required: true, pricePerPage: 1000, - description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.', subSections: [ { id: 'projectName', diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js index 94194da71..b539313db 100644 --- a/src/config/projectQuestions/wireframes.v1.0.js +++ b/src/config/projectQuestions/wireframes.v1.0.js @@ -28,7 +28,7 @@ const sections = [ }, productName: 'Wireframes', required: true, - description: 'Answer just a few questions about your application. You can also provide the needed information in a supporting-document - upload it below or add a link in the notes section.', + description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.', subSections: [ { id: 'projectName', From 1c173c32dd68f6457a1abd3c4781bcc0c74c9c93 Mon Sep 17 00:00:00 2001 From: Matthew Twomey Date: Wed, 26 Jul 2017 20:56:58 -0500 Subject: [PATCH 60/89] Update travis env key for filepicker dev environment. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ace42bb06..a2bfc635f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -60,7 +60,7 @@ env: # $MASTER_AWS_SECRET - secure: QTbD+n84Eg1QRZs7yjLl2yRdKmesr/yTTvSSX77xiKJB3kcI6UivJDoaWkIKq2WaxxA6ewf7UGdvGiM/q6PSpHmP9khNdxj3qXCn3OpUKZ+wVCz6JZ6JWWBBIBnKhTgFLz8O9jpxMRsXB0ZbF0k2JE6n/2qD96+rF0UmjfsJs7havOuHPNI4LwrRYSP8KzdbGRbcAUWesASTyq8nktv+kF93NomNaaRyyHBWCQMpEGS67B536IfFjypR919SIv+Qu4sqDATelQlSZWZm1jzupz3cAo8GNB6v1vYGNRMnM56R0rgDpOIqN6b6Y6hmHodSBMYp52sxFvcTuDDLuLvyGRQ/ErINmdcaXqgMh5Gl3tDwHezT5s32B+rOsSIkZF8fnrNB74dMpuKp7g2XCVfPeqlnEttY/uGbuQBe3be0g3kGtK9MFRw75X6oQxESaO2NvkCqPNZl1TacDv1s46bz3Y+en4gTmJ1UXKwmWf7fOekYozNBnOtcWQZqJ0g3d1DU1Pul4QSFuszL6y0uH5ohWDjk0mOERuFIQXKCrTVsMzUogeGp3Z7rDAynwFYGbJWgeoclbH2fQpbCLFSZxfvbYzzkpYbWD3eMLcpuKjSjTew8KEiYk2uYEjW9Kaj1wWkAkIGDAawbMGw5XVS/3a/scAcVMkyYb9VVy1wDAHudiRI= # FILE_PICKER_API_KEY_DEV - - secure: "OWi5naEt+D7huLCmloRXrODtbgOsUc28f6rTzjt2SimSdmejQnbHA99nhSMP6TorW32b5O8xtI8EUn7KQBw7Zao3RZXACoH/NEk6gi6UtqGAB+jUl8E//TzZsthqFr7DU9/dH0+36y/bRzBPVWBwJQJs1AJBeXWd6LluVnfny6SxQE2L6yxqTOj9nRFlwvr0BXT286+rE0VF8EgG2XNzI4oQ5ETJ+AZKnAlO6jaqjClhu6uAHv+6h3h+zJMJWyMaGbVYk4+HRqvvTAi8YePTI6svPtLTS1tpMhvUUPJt4xFemz3E2evXgEImY+U9wo4GpsWwB3HOjbYNlaRWfxVCwk77wg2Q6PfcSfFDE1xA9HxdKrImsQtd0xSSIxQfyfNtlppQkTHKxBVKJbCsJ+DIU4xh9nHL9sD7sDGhIZsfD5YOUxsOS1wVuRZ+oW1XemtawvjL2jw1D8/LC/V3mqTS1+RQp4VVqLYc5DkweNo3ROtLzbO1/tOULVhN/Z5wxTpgwyQjt6dTeBkcZDfBDK4wbV7D1IdHm9vbuK2LYVepz+AiIvTEz4sN4OH5Hz25tt1ZgCivnsl9wv3atO8yU/MpQwvwOAk/XpI99uMPVQVyvDn1pXvcx/bAMd49GNguUYOSdqVaxvJX+xYGKVYzXRxGtMk+yw1cx79Ye1FDhIoUzcw=" + - secure: "JQQ33fk1uo/RfFLMwplWZbknMG5F9ej6rv6hvROvwOK/zSaauEOuJMPMdAK0N7zeEQtnVJdfg5YuIt9VLkARmS1EaC0xM7ciFKdDew1H0uTvhXJZduogSlIXW6BhmXtaOXTY3WOFPXvjhfCHGSychRzTYTwI05nmD3A1ihECbkk/kLp6wNVMstMCRuyvqnr8lTM6dMQ7F8gyZQha9pe3WV4KyvFUtlnMIXCYn/KLTzmbeS353ebYqq/8SgWA+7pCpNyh2mYaUXfv56ffj/qwy7K1rzUWAE8/heSWUWKA3fHT4g75Mo01RXu8St842gY9dmfcM4WuV1wIl6F1DFdPmZUxC0L9IlTVmIk1iGZxlqNAv2nWxGEg22OTZe0JNZokLdgZHoOSreKUCWPskptVH262kEN5MS8f1HPNioZsR56b+BS3LM8fG0ZOMNIhNdDyJXBIkYueCCmVLI3dhBmxuuq4E2rmlEJxnSgKC/Y5vvtZO9/JKBDBM9QWi+4yvjIByTRnfy+I152WEAZJtc162b0yz2MR38XG8N9VZdXOAr2A7UVq46RTe0nKVMAJc/YNGZs3RIIKXTzeAHwfSHXGqtFkSx60JxNHM7cEhVgVEqOhp0lAqHH1K9W6SnOR/psmYH6uD9s40SnHph3jZ8SJmO03EomT3dGIh93/eY4tKio=" # FILE_PICKER_API_KEY_QA - secure: "Q4DXtW7ihXrEl4QNRU4RiG+JQCwNnxyIKdU/hc7/xqwOmuftvi9f0/HykkiAjR1v65/cLuCUeG2huZQEwdhHIF0eUHG6H6AjY6+IQ1sSZrn4rd+I6HrMYaK/M7XerEV0Kae0jw9izyRXahsPyKrFVx/ZGOQzBZVdDZLBUqxgluvYdZV+mXRQW2Tsl7UGNfjI0qe9XEtBHGSEWchmcfCXkg/cRmA5ZiuRManux+q1oQ4MwwGPL0ESzxFxvof/CvEWpGBVix2Gq+hpGTk/qpG1dLTQlwiFvazGlPkeCxuivJoKwNdoLeoBdPHfdcwaDdtNkxCVxNiOCQ36flUEzNAmulMI4Bas7MiMIhs+bXtC754pIsyxXidFFeDcQ+K6Pr8yRfI+xYE+Lo5N8vT77IzmROqP/LGjTGHec3yFu47pJlQ6Qo6YYqovbunEzcncSkC8nrKS3I2gXw2CO+vRAkgpugefX3XtouV0ajaIL3qYG+iAZiIlZ6VDqseC/2oSkr0n9bQp46yqTIP6JIwJmfJVkmYjgpnOzpEIHDjjsGDAE47d1Zym67U0d2Vqb0YOs+AGC6fZuCk3QTPJjP8xa+7EFuKG3p4+kxDoTkqT+AAn33CZy2fNGq0dWHXP/C61vuzeJnKFNcghEgasrdXTAtg5MS2xgbIavxigvza+GNOPIjA=" # FILE_PICKER_API_KEY_PROD From ac5a0fae6b43462c6d742bd9f18c5fba3efb8b1e Mon Sep 17 00:00:00 2001 From: Matthew Twomey Date: Thu, 27 Jul 2017 17:23:58 -0500 Subject: [PATCH 61/89] Update README.md Add TC Deployment Notes --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 371b5ba3a..ecdaf129e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,19 @@ +# TC Deployment Notes +_[TC Deployment Notes should always be kept up to date **on the default branch**. Update these notes when changes to this information occur]_ + +**General Deployment:** This software is deployed to AWS S3 by Travis.ci. It's ultimately delivered through AWS Cloudfront, which is fed from the S3 bucket. There are no EC2 systems involved in the delivery (althought Connect is fed from various micro-services). + +**Branches:** + +* Any commits to ```dev``` will will trigger a build and deploy to the _dev_ AWS environment +* Any commits to ```feature/deep-links``` will will trigger a build and deploy to the _dev_ AWS environment +* Any commits to ```master``` will trigger a build and deploy to the _prod_ AWS environment + +**Additional Notes:** + +* The _.travis.yml_ file controls the build - see this file if you need to confirm if your commit will deploy anything +* Travis-ci builds can be easily cancelled - please do so if you accidentally trigger an undesired build + # Customer-App This repository houses new Customer pages, using React, Redux, and Webpack. From 9f67506f69424fb32dc312cc2402439df9be59df Mon Sep 17 00:00:00 2001 From: Matthew Twomey Date: Thu, 27 Jul 2017 17:44:18 -0500 Subject: [PATCH 62/89] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ecdaf129e..1b0ff81ce 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ _[TC Deployment Notes should always be kept up to date **on the default branch** * Any commits to ```feature/deep-links``` will will trigger a build and deploy to the _dev_ AWS environment * Any commits to ```master``` will trigger a build and deploy to the _prod_ AWS environment +**Development Flow:** This repo uses typical Gitflow (```feature/[feature name]```, ```hotfix/[fix name]```, ...etc). Generally changes to prod should be merged from dev to master. Hotfixes should be merged to master and dev at the same time. + **Additional Notes:** * The _.travis.yml_ file controls the build - see this file if you need to confirm if your commit will deploy anything From c30b531d565f0a5f9692f44eb9887bcbdaad5831 Mon Sep 17 00:00:00 2001 From: Zhouxing Shi Date: Sun, 30 Jul 2017 12:39:42 +0800 Subject: [PATCH 63/89] Fix issue #1033 --- src/config/projectQuestions/app_dev.v1.0.js | 1 + src/config/projectQuestions/avd.v1.0.js | 1 + src/config/projectQuestions/topcoder.v1.js | 2 ++ src/config/projectQuestions/visual_design.v1.0.js | 1 + src/config/projectQuestions/wireframes.v1.0.js | 1 + 5 files changed, 6 insertions(+) diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js index e91057493..fe3c85eac 100644 --- a/src/config/projectQuestions/app_dev.v1.0.js +++ b/src/config/projectQuestions/app_dev.v1.0.js @@ -30,6 +30,7 @@ const sections = [ { id: 'projectName', required: true, + validationError: 'Please provide a name to your project', fieldName: 'name', description: '', title: 'Project Name', diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js index 25accc186..a97204d4c 100644 --- a/src/config/projectQuestions/avd.v1.0.js +++ b/src/config/projectQuestions/avd.v1.0.js @@ -32,6 +32,7 @@ const sections = [ { id: 'projectName', required: true, + validationError: 'Please provide a name to your project', fieldName: 'name', description: '', title: 'Project Name', diff --git a/src/config/projectQuestions/topcoder.v1.js b/src/config/projectQuestions/topcoder.v1.js index 7d87db987..e8618d0a0 100644 --- a/src/config/projectQuestions/topcoder.v1.js +++ b/src/config/projectQuestions/topcoder.v1.js @@ -22,6 +22,7 @@ const sections = [ { id: 'projectName', required: true, + validationError: 'Please provide a name to your project', fieldName: 'name', description: '', title: 'Project Name', @@ -213,6 +214,7 @@ export const basicSections = [ { id: 'projectName', required: true, + validationError: 'Please provide a name to your project', fieldName: 'name', description: '', title: 'Project Name', diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js index 92ec024c9..703a983dc 100644 --- a/src/config/projectQuestions/visual_design.v1.0.js +++ b/src/config/projectQuestions/visual_design.v1.0.js @@ -33,6 +33,7 @@ const sections = [ { id: 'projectName', required: true, + validationError: 'Please provide a name to your project', fieldName: 'name', description: '', title: 'Project Name', diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js index 0d06f84d6..a3c2999b7 100644 --- a/src/config/projectQuestions/wireframes.v1.0.js +++ b/src/config/projectQuestions/wireframes.v1.0.js @@ -33,6 +33,7 @@ const sections = [ { id: 'projectName', required: true, + validationError: 'Please provide a name to your project', fieldName: 'name', description: '', title: 'Project Name', From 90d5ed39cbfa1c6f0407bdd4935a1b99cf5e489f Mon Sep 17 00:00:00 2001 From: Zhouxing Shi Date: Sun, 30 Jul 2017 14:23:06 +0800 Subject: [PATCH 64/89] Fix issue #1022 --- src/config/projectQuestions/topcoder.v1.js | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/config/projectQuestions/topcoder.v1.js b/src/config/projectQuestions/topcoder.v1.js index 7d87db987..fe5000000 100644 --- a/src/config/projectQuestions/topcoder.v1.js +++ b/src/config/projectQuestions/topcoder.v1.js @@ -218,23 +218,28 @@ export const basicSections = [ title: 'Project Name', type: 'project-name' }, - { - id: 'projectInfo', - required: true, - fieldName: 'description', - description: 'Description', - title: 'Project Info', - type: 'notes' - }, { id: 'questions', required: true, + hideTitle: true, title: 'Questions', description: '', type: 'questions', questions: [ { icon: 'question', + required: true, + validationError: 'Please provide description', + id: 'projectInfo', + fieldName: 'description', + description: 'Brief Description', + title: 'Description', + type: 'textbox' + }, + { + icon: 'question', + required: true, + validationError: 'Please let us know the goal of your application', title: 'What is the goal of your application? How will people use it?', description: 'Describe your objectives for creating this application', type: 'textbox', @@ -242,6 +247,8 @@ export const basicSections = [ }, { icon: 'question', + required: true, + validationError: 'Please let us know users of your application', title: 'Who are the users of your application? ', description: 'Describe the roles and needs of your target users', type: 'textbox', From 833b328f3a95f335d0f5642483a0a3b9027e8523 Mon Sep 17 00:00:00 2001 From: Zhouxing Shi Date: Sun, 30 Jul 2017 14:42:58 +0800 Subject: [PATCH 65/89] Fix issue #1002 --- src/projects/create/components/ProjectOutline.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/projects/create/components/ProjectOutline.js b/src/projects/create/components/ProjectOutline.js index fe6f088da..c6f68dba4 100644 --- a/src/projects/create/components/ProjectOutline.js +++ b/src/projects/create/components/ProjectOutline.js @@ -12,6 +12,12 @@ function ProjectOutline({ project }) { const subConfig = config[projectType] const productName = _.findKey(subConfig.subtypes, {id : product}) const projectSize = 'To be estimated' + const projectEstimate = (productName === 'Other Design') ? (null) : (
  • + +
  • ) return (
    Project Outline
    @@ -32,12 +38,7 @@ function ProjectOutline({ project }) {
    { project.description }

  • -
  • - -
  • + {projectEstimate}
    ) From 457d247b793f081999919d97a72ff3faa4c36a92 Mon Sep 17 00:00:00 2001 From: Zhouxing Shi Date: Sun, 30 Jul 2017 15:23:00 +0800 Subject: [PATCH 66/89] Fix issue #992 --- src/projects/create/components/ProjectWizard.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/projects/create/components/ProjectWizard.jsx b/src/projects/create/components/ProjectWizard.jsx index 4768a87a9..7f08533e4 100644 --- a/src/projects/create/components/ProjectWizard.jsx +++ b/src/projects/create/components/ProjectWizard.jsx @@ -136,6 +136,7 @@ class ProjectWizard extends Component { } updateProducts(projectType, product) { + window.scrollTo(0, 0) const { onStepChange } = this.props const products = _.get(this.state.project, 'details.products') let updateQuery = { details: { products : { $set : [product] }}} From 842693e7f60d57126db13323ad9b5ac27147333f Mon Sep 17 00:00:00 2001 From: Zhouxing Shi Date: Sun, 30 Jul 2017 15:52:06 +0800 Subject: [PATCH 67/89] Fix issue #1001 --- src/projects/create/components/IncompleteProjectConfirmation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/create/components/IncompleteProjectConfirmation.js b/src/projects/create/components/IncompleteProjectConfirmation.js index 8e0fcc5b9..c4cb62e57 100644 --- a/src/projects/create/components/IncompleteProjectConfirmation.js +++ b/src/projects/create/components/IncompleteProjectConfirmation.js @@ -5,7 +5,7 @@ function IncompleteProjectConfirmation({ loadIncompleteProject, removeIncomplete return (
    -
    +

    Welcome back!

    You started a project with us recently.

    Do you want to continue where you left off or create a new project?

    From 3a05c842f6783d7caa28168bfe0e4da46a115afd Mon Sep 17 00:00:00 2001 From: Zhouxing Shi Date: Sun, 30 Jul 2017 16:18:12 +0800 Subject: [PATCH 68/89] Fix issue #1016 --- src/projects/create/components/ProjectBasicDetailsForm.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/create/components/ProjectBasicDetailsForm.js b/src/projects/create/components/ProjectBasicDetailsForm.js index 41895148f..f0eb1a021 100644 --- a/src/projects/create/components/ProjectBasicDetailsForm.js +++ b/src/projects/create/components/ProjectBasicDetailsForm.js @@ -85,7 +85,7 @@ class ProjectBasicDetailsForm extends Component {
    From d8ce24b8d924f6efd10372e226b3122426897532 Mon Sep 17 00:00:00 2001 From: Zhouxing Shi Date: Sun, 30 Jul 2017 17:34:31 +0800 Subject: [PATCH 69/89] Fix issue #981 --- src/projects/detail/components/SpecQuestions.jsx | 1 + src/projects/detail/components/SpecSection.jsx | 1 + 2 files changed, 2 insertions(+) diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx index 17cb09483..15a45b01a 100644 --- a/src/projects/detail/components/SpecQuestions.jsx +++ b/src/projects/detail/components/SpecQuestions.jsx @@ -36,6 +36,7 @@ const SpecQuestions = ({questions, project, dirtyProject, resetFeatures, showFea label: q.label, value: _.get(project, q.fieldName, ''), required: q.required, + validations: q.required ? "isRequired" : "", validationError: q.validationError } if (q.fieldName === 'details.appDefinition.numberScreens') { diff --git a/src/projects/detail/components/SpecSection.jsx b/src/projects/detail/components/SpecSection.jsx index 62c0c2abb..4f4835562 100644 --- a/src/projects/detail/components/SpecSection.jsx +++ b/src/projects/detail/components/SpecSection.jsx @@ -109,6 +109,7 @@ const SpecSection = props => { wrapperClass="project-name" maxLength={ PROJECT_NAME_MAX_LENGTH } required={props.required} + validations={props.required ? "isRequired" : ""} validationError={props.validationError} theme="paper-form-dotted" /> From 9674f2ce84032494cfecf2d8f06cbaadfac79c0c Mon Sep 17 00:00:00 2001 From: Zhouxing Shi Date: Sun, 30 Jul 2017 17:45:04 +0800 Subject: [PATCH 70/89] Fix issue #981 --- src/projects/detail/components/SpecQuestions.jsx | 2 +- src/projects/detail/components/SpecSection.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx index 15a45b01a..da2326942 100644 --- a/src/projects/detail/components/SpecQuestions.jsx +++ b/src/projects/detail/components/SpecQuestions.jsx @@ -36,7 +36,7 @@ const SpecQuestions = ({questions, project, dirtyProject, resetFeatures, showFea label: q.label, value: _.get(project, q.fieldName, ''), required: q.required, - validations: q.required ? "isRequired" : "", + validations: q.required ? "isRequired" : null, validationError: q.validationError } if (q.fieldName === 'details.appDefinition.numberScreens') { diff --git a/src/projects/detail/components/SpecSection.jsx b/src/projects/detail/components/SpecSection.jsx index 4f4835562..3ea0bf76f 100644 --- a/src/projects/detail/components/SpecSection.jsx +++ b/src/projects/detail/components/SpecSection.jsx @@ -109,7 +109,7 @@ const SpecSection = props => { wrapperClass="project-name" maxLength={ PROJECT_NAME_MAX_LENGTH } required={props.required} - validations={props.required ? "isRequired" : ""} + validations={props.required ? "isRequired" : null} validationError={props.validationError} theme="paper-form-dotted" /> From 5a4ef6a11ca4e6664d15283ec57202366758d851 Mon Sep 17 00:00:00 2001 From: Zhouxing Shi Date: Sun, 30 Jul 2017 17:55:12 +0800 Subject: [PATCH 71/89] Fix issue #1021 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 76ad3ad5a..0b28fa190 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "filepicker-js": "^2.4.17", "filesize": "^3.3.0", "flat": "^2.0.1", - "formsy-react": "^0.18.1", + "formsy-react": "^0.19.5", "history": "^1.17.0", "isomorphic-fetch": "^2.2.1", "lodash": "^4.16.4", From 1fc71b72487fca251cc0a35353b835dc4f2303a0 Mon Sep 17 00:00:00 2001 From: Samir Gondzetovic Date: Tue, 1 Aug 2017 01:33:05 +0100 Subject: [PATCH 72/89] Add tc logo to select project screen --- src/projects/create/components/SelectProduct.js | 6 ++++++ src/projects/create/components/SelectProduct.scss | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/projects/create/components/SelectProduct.js b/src/projects/create/components/SelectProduct.js index 1e967e007..cacb8150a 100644 --- a/src/projects/create/components/SelectProduct.js +++ b/src/projects/create/components/SelectProduct.js @@ -1,9 +1,12 @@ import React, { PropTypes as PT } from 'react' +import { Icons } from 'appirio-tech-react-components' import config from '../../../config/projectWizard' import ProductCard from './ProductCard' import SVGIconImage from '../../../components/SVGIconImage' import './SelectProduct.scss' +const { ConnectLogo } = Icons + function SelectProduct(props) { const cards = [] for (const key in config) { @@ -27,6 +30,9 @@ function SelectProduct(props) { } return (
    +
    + +

    Select your project type

    {cards}
    diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss index 5826fef0f..73710b7bc 100644 --- a/src/projects/create/components/SelectProduct.scss +++ b/src/projects/create/components/SelectProduct.scss @@ -22,6 +22,12 @@ line-height: 40px; } + + .header{ + display:block; + float:left; + } + .footer { margin-bottom: 15px; margin-top: 100px; From 89807e96051a08d4f4d103fe356cf1d5e5c39eef Mon Sep 17 00:00:00 2001 From: Samir Gondzetovic Date: Tue, 1 Aug 2017 01:53:34 +0100 Subject: [PATCH 73/89] Remove project estimate for specific project types --- src/projects/create/components/ProjectOutline.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/projects/create/components/ProjectOutline.js b/src/projects/create/components/ProjectOutline.js index c6f68dba4..39ec50819 100644 --- a/src/projects/create/components/ProjectOutline.js +++ b/src/projects/create/components/ProjectOutline.js @@ -12,7 +12,8 @@ function ProjectOutline({ project }) { const subConfig = config[projectType] const productName = _.findKey(subConfig.subtypes, {id : product}) const projectSize = 'To be estimated' - const projectEstimate = (productName === 'Other Design') ? (null) : (
  • + const projectsWithEstimate = ["Wireframes","Visual Design","Front-end Prototype"] + const projectEstimate = (projectsWithEstimate.indexOf(productName)<0) ? (null) : (
  • Date: Tue, 1 Aug 2017 02:17:14 +0100 Subject: [PATCH 74/89] Update project outline --- src/projects/create/components/ProjectOutline.js | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/projects/create/components/ProjectOutline.js b/src/projects/create/components/ProjectOutline.js index 39ec50819..b9cb17bee 100644 --- a/src/projects/create/components/ProjectOutline.js +++ b/src/projects/create/components/ProjectOutline.js @@ -11,7 +11,6 @@ function ProjectOutline({ project }) { const projectType = _.findKey(config, {id : projectTypeId}) const subConfig = config[projectType] const productName = _.findKey(subConfig.subtypes, {id : product}) - const projectSize = 'To be estimated' const projectsWithEstimate = ["Wireframes","Visual Design","Front-end Prototype"] const projectEstimate = (projectsWithEstimate.indexOf(productName)<0) ? (null) : (
  • { project.name }
  • { productName }
      -
    • - Type: - { projectType } -
    • -
    • - Size: - { projectSize } -
    • -
    • - Work: - { productName } -
    • +
      { project.description }

    • {projectEstimate} From 988389fa941732ee9676db510a050201a2283eeb Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Wed, 2 Aug 2017 21:43:40 +0300 Subject: [PATCH 75/89] fix #974, #975, #979, #984, #988, #990, #998 --- src/components/Home/Home.scss | 2 +- src/projects/create/components/ProductCard.scss | 3 ++- src/projects/create/components/ProjectOutline.scss | 3 +++ src/projects/create/components/SelectProduct.scss | 2 ++ .../detail/components/VisualDesignProjectEstimateSection.scss | 1 + 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/components/Home/Home.scss b/src/components/Home/Home.scss index 60d7e0769..a45b5956e 100644 --- a/src/components/Home/Home.scss +++ b/src/components/Home/Home.scss @@ -73,7 +73,7 @@ width: $base-unit*50; text-align: center; margin: 0 auto; - line-height:$base-unit*7; + line-height: 38px; @include roboto-medium; font-size: $tc-label-lg; display: block; diff --git a/src/projects/create/components/ProductCard.scss b/src/projects/create/components/ProductCard.scss index 7d4abf210..13e3ee98d 100644 --- a/src/projects/create/components/ProductCard.scss +++ b/src/projects/create/components/ProductCard.scss @@ -12,10 +12,11 @@ vertical-align: top; width: 230px; .sub-type-details { - margin: 0 20px; + padding: 0 20px; font-size: 13px; color: $tc-gray-50; line-height: 20px; + width: 100%; } .header { @include tc-body; diff --git a/src/projects/create/components/ProjectOutline.scss b/src/projects/create/components/ProjectOutline.scss index c164cf82d..b0b07cc86 100644 --- a/src/projects/create/components/ProjectOutline.scss +++ b/src/projects/create/components/ProjectOutline.scss @@ -21,6 +21,8 @@ @include roboto-bold; margin-bottom: $base-unit * 2; align-self: center; + width: 100%; + word-break: break-all; } .project-product { @@ -34,6 +36,7 @@ line-height: 5*$base-unit; margin-top: $base-unit * 4; margin-bottom: $base-unit * 4; + word-break: break-all; } .project-meta-data { diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss index 73710b7bc..30ed92990 100644 --- a/src/projects/create/components/SelectProduct.scss +++ b/src/projects/create/components/SelectProduct.scss @@ -40,6 +40,8 @@ .tc-btn { position: absolute; bottom: 30px; + left: 50%; + transform: translateX(-50%); opacity: 0 } &:hover { diff --git a/src/projects/detail/components/VisualDesignProjectEstimateSection.scss b/src/projects/detail/components/VisualDesignProjectEstimateSection.scss index f5502ae82..277a8d1fa 100644 --- a/src/projects/detail/components/VisualDesignProjectEstimateSection.scss +++ b/src/projects/detail/components/VisualDesignProjectEstimateSection.scss @@ -2,6 +2,7 @@ .visual-design-project-estimate-section { display: flex; + width: 100%; flex-wrap: wrap; flex-direction: row; From 03e3e78e9c554443b1917c8ede3a83634f98e847 Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Wed, 2 Aug 2017 22:06:55 +0300 Subject: [PATCH 76/89] fix #1005 --- src/components/TopBar/ProjectToolBar.scss | 4 +++- src/projects/detail/containers/Specification.scss | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/TopBar/ProjectToolBar.scss b/src/components/TopBar/ProjectToolBar.scss index 8f6223051..7762b383a 100644 --- a/src/components/TopBar/ProjectToolBar.scss +++ b/src/components/TopBar/ProjectToolBar.scss @@ -31,6 +31,7 @@ position: relative; overflow: hidden; text-overflow: ellipsis; + width: 500px; display: flex; span { display:block; @@ -102,7 +103,8 @@ border-right: 1px solid $tc-gray-80; flex: 1; ul{ - width: 484px; + /*width: 484px;*/ + width: auto; height: 20px; display: flex; justify-content: flex-end; diff --git a/src/projects/detail/containers/Specification.scss b/src/projects/detail/containers/Specification.scss index 209eebf6c..a239dc6ca 100644 --- a/src/projects/detail/containers/Specification.scss +++ b/src/projects/detail/containers/Specification.scss @@ -808,6 +808,10 @@ $title-color: $tc-gray-80; .dashed-bottom-border, .editable-project-name { flex: 1; + + .project-name { + word-break: break-all; + } } .read-only-refcode { From 6007dcce505a4681a5db0ca99656887578ccc76d Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Wed, 2 Aug 2017 22:26:24 +0300 Subject: [PATCH 77/89] fix #1029 --- src/projects/create/components/FillProjectDetails.scss | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/projects/create/components/FillProjectDetails.scss b/src/projects/create/components/FillProjectDetails.scss index 851e9050b..54f5ffd51 100644 --- a/src/projects/create/components/FillProjectDetails.scss +++ b/src/projects/create/components/FillProjectDetails.scss @@ -76,10 +76,11 @@ .right-area-footer { @include roboto; - padding: 0 40px 0 20px; + padding: 10px 40px 0 0; font-size: 13px; - line-height: 30px; + line-height: 20px; color: $tc-gray-50; + font-style: italic; span { float: right; From e8689819d1433f3b58d0e4b8f0f248154c5e640b Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Wed, 2 Aug 2017 22:52:59 +0300 Subject: [PATCH 78/89] fix #989 #1020 --- src/projects/create/components/FillProjectDetails.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/projects/create/components/FillProjectDetails.scss b/src/projects/create/components/FillProjectDetails.scss index 54f5ffd51..ebf37ac4b 100644 --- a/src/projects/create/components/FillProjectDetails.scss +++ b/src/projects/create/components/FillProjectDetails.scss @@ -19,6 +19,7 @@ .header { display: flex; + justify-content: space-between; h1 { @include tc-heading; From 02fa2961bc3f69f968738f86dd97fa3c33f85682 Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Wed, 2 Aug 2017 22:59:39 +0300 Subject: [PATCH 79/89] fix #1050 --- src/components/Home/Home.scss | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/Home/Home.scss b/src/components/Home/Home.scss index a45b5956e..1edee51ee 100644 --- a/src/components/Home/Home.scss +++ b/src/components/Home/Home.scss @@ -45,12 +45,12 @@ a.tc-link { text-align: center; - color: #1a85ff; - font-family: Roboto; - font-size: 13px; - margin: 0 auto; - display: inline-block; - margin-top: 10px; + color: #1a85ff; + @include roboto; + font-size: 13px; + margin: 0 auto; + display: inline-block; + margin-top: 10px; } } h1{ From e2e473f972c544dc75bed2518b10e3089a137792 Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Wed, 2 Aug 2017 23:09:26 +0300 Subject: [PATCH 80/89] fix #1062 --- src/projects/create/components/SelectProduct.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss index 30ed92990..ede3a4ad2 100644 --- a/src/projects/create/components/SelectProduct.scss +++ b/src/projects/create/components/SelectProduct.scss @@ -6,7 +6,7 @@ text-align: center; max-width: 1000px; margin: 0 auto; - a, a:hover { + a, a:visited, a:hover, a:active{ color: $tc-dark-blue; cursor: pointer; } From 5712f1e492b0a9745602eb044ebbb887f42e802b Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Wed, 2 Aug 2017 23:14:37 +0300 Subject: [PATCH 81/89] fix #1063 --- src/projects/detail/containers/Specification.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/projects/detail/containers/Specification.scss b/src/projects/detail/containers/Specification.scss index a239dc6ca..479c254fc 100644 --- a/src/projects/detail/containers/Specification.scss +++ b/src/projects/detail/containers/Specification.scss @@ -371,6 +371,7 @@ $title-color: $tc-gray-80; text-indent: 0; margin-bottom: 20px; resize: vertical; + overflow: auto; } } From 364f4e4a1194523ff37879410c4d235c4d47dcf4 Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Fri, 4 Aug 2017 01:16:56 +0300 Subject: [PATCH 82/89] fix #1003 --- src/components/TopBar/ProjectsToolBar.scss | 6 ++++ .../IncompleteProjectConfirmation.js | 11 ++++++- .../IncompleteProjectConfirmation.scss | 8 +++++ src/projects/images/logo-cn-web.svg | 33 +++++-------------- 4 files changed, 32 insertions(+), 26 deletions(-) mode change 100644 => 100755 src/projects/images/logo-cn-web.svg diff --git a/src/components/TopBar/ProjectsToolBar.scss b/src/components/TopBar/ProjectsToolBar.scss index c1da17498..85a8f1567 100644 --- a/src/components/TopBar/ProjectsToolBar.scss +++ b/src/components/TopBar/ProjectsToolBar.scss @@ -157,6 +157,12 @@ $tc-body-large : 20px; /*background-color: $tc-gray-neutral-dark;*/ overflow-y: scroll; + .IncompleteProjectConfirmation { + position: static; + padding-top: 0; + height: auto; + } + section.content { padding: 1px 0; } diff --git a/src/projects/create/components/IncompleteProjectConfirmation.js b/src/projects/create/components/IncompleteProjectConfirmation.js index c4cb62e57..40032bcd0 100644 --- a/src/projects/create/components/IncompleteProjectConfirmation.js +++ b/src/projects/create/components/IncompleteProjectConfirmation.js @@ -5,7 +5,16 @@ function IncompleteProjectConfirmation({ loadIncompleteProject, removeIncomplete return (
      -
      +
      + + + + + CONNECT + + + +

      Welcome back!

      You started a project with us recently.

      Do you want to continue where you left off or create a new project?

      diff --git a/src/projects/create/components/IncompleteProjectConfirmation.scss b/src/projects/create/components/IncompleteProjectConfirmation.scss index 1472f8c9d..3119936ef 100644 --- a/src/projects/create/components/IncompleteProjectConfirmation.scss +++ b/src/projects/create/components/IncompleteProjectConfirmation.scss @@ -2,6 +2,14 @@ .IncompleteProjectConfirmation { width: 100%; + position: absolute; + z-index: -1; + top: -85px; + padding-top: 50px; + left: 0; + height: 100vh; + bottom: 0; + background: #fafafb; display: flex; flex-direction: column; align-items: center; diff --git a/src/projects/images/logo-cn-web.svg b/src/projects/images/logo-cn-web.svg old mode 100644 new mode 100755 index 281cbf9cd..cb47cb663 --- a/src/projects/images/logo-cn-web.svg +++ b/src/projects/images/logo-cn-web.svg @@ -1,25 +1,8 @@ - - - - logo-cn-web - Created with Sketch. - - - - - - - - - - - - - - connect - - - - - - \ No newline at end of file + + + + + CONNECT + + + From 76a8db68c0d4a93f1cd43066080b5959413434ff Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Fri, 4 Aug 2017 01:17:21 +0300 Subject: [PATCH 83/89] fix #1003 --- src/projects/images/logo-cn-web-old.svg | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/projects/images/logo-cn-web-old.svg diff --git a/src/projects/images/logo-cn-web-old.svg b/src/projects/images/logo-cn-web-old.svg new file mode 100644 index 000000000..281cbf9cd --- /dev/null +++ b/src/projects/images/logo-cn-web-old.svg @@ -0,0 +1,25 @@ + + + + logo-cn-web + Created with Sketch. + + + + + + + + + + + + + + connect + + + + + + \ No newline at end of file From f34e165a801ed9acf5306fb63f0748ce3f1f87f7 Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Fri, 4 Aug 2017 01:22:57 +0300 Subject: [PATCH 84/89] fix #1003 --- .../create/components/IncompleteProjectConfirmation.scss | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/projects/create/components/IncompleteProjectConfirmation.scss b/src/projects/create/components/IncompleteProjectConfirmation.scss index 3119936ef..811865024 100644 --- a/src/projects/create/components/IncompleteProjectConfirmation.scss +++ b/src/projects/create/components/IncompleteProjectConfirmation.scss @@ -3,7 +3,6 @@ .IncompleteProjectConfirmation { width: 100%; position: absolute; - z-index: -1; top: -85px; padding-top: 50px; left: 0; @@ -48,4 +47,7 @@ margin-top: 4 * $base_unit; } } +} +.Footer { + position: relative; } \ No newline at end of file From eb944556a94a0e45bf63586dd9f0539ba4a44e15 Mon Sep 17 00:00:00 2001 From: Dimitrina Sirakova Date: Tue, 8 Aug 2017 01:22:03 +0300 Subject: [PATCH 85/89] fix #1092 --- src/components/Wizard/Wizard.scss | 2 +- .../create/components/FillProjectDetails.js | 50 ++++++++++--------- .../create/components/FillProjectDetails.scss | 8 +++ .../create/components/ProjectOutline.scss | 4 ++ .../create/components/SelectProduct.js | 14 +++--- .../create/components/SelectProduct.scss | 6 +++ .../VisualDesignProjectEstimateSection.scss | 5 +- 7 files changed, 58 insertions(+), 31 deletions(-) diff --git a/src/components/Wizard/Wizard.scss b/src/components/Wizard/Wizard.scss index eba80aa2f..5a0d963bb 100644 --- a/src/components/Wizard/Wizard.scss +++ b/src/components/Wizard/Wizard.scss @@ -9,7 +9,7 @@ margin: 24px auto; min-width: 120px; padding: 20px; - position: relative; + /*position: relative;*/ text-align: left; width: 100%; } diff --git a/src/projects/create/components/FillProjectDetails.js b/src/projects/create/components/FillProjectDetails.js index 9302439b8..2d64e26b9 100644 --- a/src/projects/create/components/FillProjectDetails.js +++ b/src/projects/create/components/FillProjectDetails.js @@ -49,33 +49,37 @@ class FillProjectDetails extends Component { specification = typeToSpecification[product] let sections = require(`../../../config/projectQuestions/${specification}`).basicSections return ( -
      -
      +
      +
      { (!userRoles || !userRoles.length) && } -

      Let's setup your { productName } project

      { (!userRoles || !userRoles.length) && }
      -
      -
      -
      - -
      -
      - - -
      In 24 hours our project managers will contact you for more information and a detailed quote that accurately reflects your project needs.
      -
      -
      +
      +
      +

      Let's setup your { productName } project

      -
      +
      +
      +
      + +
      +
      + + +
      In 24 hours our project managers will contact you for more information and a detailed quote that accurately reflects your project needs.
      +
      +
      +
      +
      +
      ) } diff --git a/src/projects/create/components/FillProjectDetails.scss b/src/projects/create/components/FillProjectDetails.scss index ebf37ac4b..dd7c32d60 100644 --- a/src/projects/create/components/FillProjectDetails.scss +++ b/src/projects/create/components/FillProjectDetails.scss @@ -14,6 +14,14 @@ -ms-flex: $number; flex: $number; } +.headerFillProjectDetails { + margin-top: -28px; + display: flex; + justify-content: space-between; + .tc-btn-default img { + margin-right: 10px; + } +} .FillProjectDetails { diff --git a/src/projects/create/components/ProjectOutline.scss b/src/projects/create/components/ProjectOutline.scss index b0b07cc86..172aed47b 100644 --- a/src/projects/create/components/ProjectOutline.scss +++ b/src/projects/create/components/ProjectOutline.scss @@ -43,6 +43,10 @@ margin-top: $base-unit * 4; .project-meta-data-row { display: flex; + .visual-design-project-estimate-section { + margin-left: 0; + margin-right: 0; + } .project-meta-data-label { flex: 1; color: $tc-gray-50; diff --git a/src/projects/create/components/SelectProduct.js b/src/projects/create/components/SelectProduct.js index cacb8150a..e8bdd1c39 100644 --- a/src/projects/create/components/SelectProduct.js +++ b/src/projects/create/components/SelectProduct.js @@ -29,14 +29,16 @@ function SelectProduct(props) { } } return ( -
      -
      +
      +
      -

      Select your project type

      -
      {cards}
      -
      - Looking for something else? Get in touch with us. +
      +

      Select your project type

      +
      {cards}
      +
      + Looking for something else? Get in touch with us. +
      ) diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss index b57ba5392..59eeb165e 100644 --- a/src/projects/create/components/SelectProduct.scss +++ b/src/projects/create/components/SelectProduct.scss @@ -1,5 +1,11 @@ @import 'tc-includes'; +.headerSelectProduct { + position: absolute; + top: 25px; + left: 20px; +} + .SelectProduct { @include tc-body; color: $tc-gray-50; diff --git a/src/projects/detail/components/VisualDesignProjectEstimateSection.scss b/src/projects/detail/components/VisualDesignProjectEstimateSection.scss index 277a8d1fa..c07ecf4c0 100644 --- a/src/projects/detail/components/VisualDesignProjectEstimateSection.scss +++ b/src/projects/detail/components/VisualDesignProjectEstimateSection.scss @@ -2,12 +2,15 @@ .visual-design-project-estimate-section { display: flex; - width: 100%; + width: calc(100% - 40px); + margin-left: 20px; + margin-right: 20px; flex-wrap: wrap; flex-direction: row; h4.titles { width: 100%; + margin: 0; margin-bottom: $base-unit * 2; font-size: 12px; color: $tc-gray-50; From 29ea65239c111ef7ddefd6f255e8f0b3cf9e6039 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 8 Aug 2017 09:10:48 +0530 Subject: [PATCH 86/89] =?UTF-8?q?Github=20issue#1096,=20Copy=20updates=20o?= =?UTF-8?q?n=20various=20Connect=20pages=20=E2=80=94=20Implemented=20reque?= =?UTF-8?q?sted=20changes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Home/Home.scss | 3 ++- src/config/projectWizard/index.js | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/Home/Home.scss b/src/components/Home/Home.scss index 1edee51ee..3f5149bce 100644 --- a/src/components/Home/Home.scss +++ b/src/components/Home/Home.scss @@ -37,7 +37,7 @@ min-width: $base-unit*86; } .content-container{ - padding: $base-unit*9 0 0 $base-unit*17; + padding: $base-unit*8 0 0 $base-unit*17; .button-bar{ display: flex; flex-direction: column; @@ -59,6 +59,7 @@ color: $tc-black; letter-spacing: 0; padding: 0 0 $base-unit*6; + text-align: center; } p{ @include roboto; diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index 2e805f767..b79e94133 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -26,7 +26,7 @@ const products = { }, Infographic: { brief: 'Infographic', - details: 'Present your data in an easy-to-understand and interesting way.', + details: 'Present your data in an easy-to-understand and interesting way', icon: 'product-infographic', id: 'infographic' }, @@ -46,7 +46,7 @@ const products = { subtypes: { 'Front-end Prototype': { brief: '3-20 screens', - details: 'Translate designs to a web (HTML/CSS/JavaScript) or mobile prototype.', + details: 'Translate designs to a web (HTML/CSS/JavaScript) or mobile prototype', icon: 'product-front-end-prototype', id: 'visual_prototype' }, From 16e8daf7ff87656e69e20f496ccc93bed63e0dc7 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 8 Aug 2017 09:47:18 +0530 Subject: [PATCH 87/89] Disabled Infographic for time being. Updated style to have partial row look better. --- src/config/projectWizard/index.js | 3 ++- src/projects/create/components/SelectProduct.scss | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index b79e94133..8e1341b27 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -28,7 +28,8 @@ const products = { brief: 'Infographic', details: 'Present your data in an easy-to-understand and interesting way', icon: 'product-infographic', - id: 'infographic' + id: 'infographic', + disabled: true }, 'Other Design': { brief: 'other designs', diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss index 59eeb165e..4d984cc66 100644 --- a/src/projects/create/components/SelectProduct.scss +++ b/src/projects/create/components/SelectProduct.scss @@ -73,7 +73,7 @@ .cards { display: flex; - justify-content: space-between; + // justify-content: space-between; flex-flow: row wrap; } } From 8ee6cf369beda876e3836b1ddeb6706ad7627c28 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 8 Aug 2017 09:58:06 +0530 Subject: [PATCH 88/89] Minor style fix --- src/components/Home/Home.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Home/Home.scss b/src/components/Home/Home.scss index 3f5149bce..f48b1f5e9 100644 --- a/src/components/Home/Home.scss +++ b/src/components/Home/Home.scss @@ -37,7 +37,7 @@ min-width: $base-unit*86; } .content-container{ - padding: $base-unit*8 0 0 $base-unit*17; + padding: $base-unit*7 0 0 $base-unit*17; .button-bar{ display: flex; flex-direction: column; From e77252c924fec575759e4e9f17060c918c92c097 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 8 Aug 2017 16:16:30 +0530 Subject: [PATCH 89/89] Updating dependencies --- npm-shrinkwrap.json | 16 ++-------------- package-lock.json | 5 ++--- package.json | 2 +- 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index ccef5dc4d..61d4570df 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -7149,7 +7149,7 @@ "dev": true }, "tc-accounts": { - "version": "git+https://github.com/appirio-tech/accounts-app.git#9fb47278438cebed63ef648b4c74ff0188e39326", + "version": "git+https://github.com/appirio-tech/accounts-app.git#0.0.11", "dependencies": { "abbrev": { "version": "1.1.0", @@ -7312,25 +7312,13 @@ "integrity": "sha1-3RtCG/rw8PSokKRTgHSlVYDQy8s=", "dev": true }, - "appirio-tech-ng-auth": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/appirio-tech-ng-auth/-/appirio-tech-ng-auth-4.2.6.tgz", - "integrity": "sha1-xCW9T6ans536yQ7jZCqv8L0YNco=", - "dependencies": { - "angular": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/angular/-/angular-1.4.14.tgz", - "integrity": "sha1-nQ/q9gzm5SzlD0nuMoZW0eGHXDc=" - } - } - }, "appirio-tech-ng-iso-constants": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/appirio-tech-ng-iso-constants/-/appirio-tech-ng-iso-constants-1.0.6.tgz", "integrity": "sha1-1r3R9xB/KEPjeX0UTgVH8vSkY3M=" }, "appirio-tech-ng-ui-components": { - "version": "2.2.4", + "version": "2.2.5", "resolved": "https://registry.npmjs.org/appirio-tech-ng-ui-components/-/appirio-tech-ng-ui-components-2.2.4.tgz", "integrity": "sha1-h86LqWrC+BuGjo3z1d5e0Qvt2no=", "dependencies": { diff --git a/package-lock.json b/package-lock.json index aa7333dae..8b83e9404 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10536,16 +10536,15 @@ } }, "tc-accounts": { - "version": "git+https://github.com/appirio-tech/accounts-app.git#90945856275749e6e124b4e4bb6964513547b415", + "version": "git+https://github.com/appirio-tech/accounts-app.git#0.0.11", "requires": { "angucomplete-alt": "2.5.0", "angular": "1.6.4", "angular-cookies": "1.6.4", "angular-messages": "1.6.4", "angular-ui-router": "0.2.18", - "appirio-tech-ng-auth": "4.2.6", "appirio-tech-ng-iso-constants": "1.0.6", - "appirio-tech-ng-ui-components": "2.2.4", + "appirio-tech-ng-ui-components": "2.2.5", "auth0-angular": "4.2.7", "auth0-js": "6.8.4", "babel-polyfill": "6.23.0", diff --git a/package.json b/package.json index 32a240268..2b1aa08af 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "redux-promise-middleware": "4.2.1", "redux-segment": "^1.6.2", "redux-thunk": "^2.1.0", - "tc-accounts": "git+https://github.com/appirio-tech/accounts-app.git#dev", + "tc-accounts": "git+https://github.com/appirio-tech/accounts-app.git#0.0.11", "tc-ui": "git+https://github.com/appirio-tech/tc-ui.git#feature/connectv2" } }