{"version":3,"sources":["../src/ngss_browser.js"],"names":["DropdownList","ReactWidgets","SelectList","empty","data","length","count","i","hasOwnProperty","TaskRow","contentAreas","Array","props","task","disciplines","url","title","map","area","active","areaClasses","class","join","description","React","Component","TaskTable","handleReset","bind","onReset","rows","hasActiveDiscipline","hasActiveConcept","needsReset","tasks","forEach","state","activeDiscipline","id","concepts","activeNgssDomain","ngss","domains","len","activeNgssStandard","standards","console","log","activeCrosscuttingConcepts","crosscutting","concept","value","indexOf","activeScienceEngineeringConcepts","scienceEngineering","push","ContentAreaItem","handleActiveDisciplineInputChange","discipline","onActiveDisciplineInput","icon","ContentAreasBar","areasClasses","NgssStandards","needsClear","handleClear","onActiveNgssDomainInput","onActiveNgssStandardInput","setState","domain","standard","activeConceptGroup","availableDomains","availableStandards","ngssDomains","ngssStandards","item","name","handleActiveNgssDomainInputChange","handleActiveNgssStandardInputChange","Crosscutting","onActiveCrosscuttingInput","availableConcepts","crosscuttingConcepts","handleActiveCrosscuttingInputChange","ScienceEngineering","practices","onActiveScienceEngineeringInput","scienceEngineeringConcepts","handleActiveScienceEngineeringInputChange","ConceptSearchArea","handleActiveConceptGroupInput","group","onActiveConceptGroupInput","conceptSearchClasses","ngssStandardsActive","crosscuttingActive","scienceEngineeringActive","activeInquiryTechnologySelect","onActiveInquiryTechnologySkillInput","BrowserContainer","browserData","FilterableTaskTable","handleActiveDisciplineInput","handleActiveNgssDomainInput","handleActiveNgssStandardInput","handleActiveCrosscuttingInput","handleActiveScienceEngineeringInput","stateCopy","ReactDOM","render","Drupal","settings","scienceTasks","document","getElementById"],"mappings":"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","file":"ngss_browser.js","sourcesContent":["var DropdownList = ReactWidgets.DropdownList;\nvar SelectList = ReactWidgets.SelectList;\n\n\nfunction empty(data)\n{\n if(typeof(data) == 'number' || typeof(data) == 'boolean')\n {\n return false;\n }\n if(typeof(data) == 'undefined' || data === null)\n {\n return true;\n }\n if(typeof(data.length) != 'undefined')\n {\n return data.length == 0;\n }\n var count = 0;\n for(var i in data)\n {\n if(data.hasOwnProperty(i))\n {\n count ++;\n }\n }\n return count == 0;\n}\n\nclass TaskRow extends React.Component {\n render() {\n let contentAreas = new Array();\n if (this.props.task.disciplines) {\n contentAreas = this.props.task.disciplines;\n }\n return (\n <a className=\"task-row\" href={this.props.task.url}>\n <div className=\"task-title\">{this.props.task.title}</div>\n <div className=\"task-icons\">\n {contentAreas.map(function(area) {\n let active = area.active ? 'active' : '';\n let areaClasses = `${active} ${area.class}`;\n return (<div className={[areaClasses, 'tiny-task-icon'].join(' ')}></div>);\n })}\n </div>\n <div className=\"task-desc\">{this.props.task.description}</div>\n </a>\n );\n }\n}\n\nclass TaskTable extends React.Component {\n constructor(props) {\n super(props);\n this.handleReset = this.handleReset.bind(this);\n }\n handleReset() {\n this.props.onReset();\n }\n render() {\n var rows = [];\n var hasActiveDiscipline;\n var hasActiveConcept;\n var needsReset = false;\n this.props.tasks.forEach((task) => {\n if(task.disciplines && this.props.state.activeDiscipline.id != 'all') {\n hasActiveDiscipline = false;\n task.disciplines.forEach((area) => {\n area.active = false;\n if (area.id == this.props.state.activeDiscipline.id) {\n area.active = true;\n hasActiveDiscipline = true;\n needsReset = true;\n }\n });\n }\n if (!empty(this.props.state.concepts.activeNgssDomain) && task.concepts.ngss.domains) {\n hasActiveConcept = false;\n for (var i = 0, len = task.concepts.ngss.domains.length; i < len; i++) {\n if (task.concepts.ngss.domains[i] == this.props.state.concepts.activeNgssDomain.id) {\n hasActiveConcept = true;\n needsReset = true;\n }\n }\n }\n if (!empty(this.props.state.concepts.activeNgssStandard) && task.concepts.ngss.standards) {\n hasActiveConcept = false;\n console.log(task.title);\n console.log(task.concepts.ngss);\n for (var i = 0, len = task.concepts.ngss.standards.length; i < len; i++) {\n if (task.concepts.ngss.standards[i] == this.props.state.concepts.activeNgssStandard.id) {\n hasActiveConcept = true;\n needsReset = true;\n }\n }\n }\n if (!empty(this.props.state.concepts.activeCrosscuttingConcepts)) {\n hasActiveConcept = false;\n task.concepts.crosscutting.forEach((concept) => {\n this.props.state.concepts.activeCrosscuttingConcepts.forEach((value) => {\n if (value.id.indexOf(concept) != -1) {\n hasActiveConcept = true;\n needsReset = true;\n }\n });\n });\n }\n if (!empty(this.props.state.concepts.activeScienceEngineeringConcepts)) {\n hasActiveConcept = false;\n task.concepts.scienceEngineering.forEach((concept) => {\n this.props.state.concepts.activeScienceEngineeringConcepts.forEach((value) => {\n if (value.id.indexOf(concept) != -1) {\n hasActiveConcept = true;\n needsReset = true;\n }\n });\n });\n }\n if (hasActiveDiscipline == false || hasActiveConcept == false) {\n return;\n }\n rows.push(<TaskRow task={task} key={task.title} />);\n });\n return (\n <div className=\"task-table\">\n <div className=\"task-count\">\n <strong>{rows.length}</strong> tasks {needsReset &&\n <span> | <span className=\"reset\" onClick={() => this.handleReset()}>Reset</span></span>\n }\n </div>\n {rows}\n </div>\n );\n }\n}\n\nclass ContentAreaItem extends React.Component {\n constructor(props) {\n super(props);\n this.handleActiveDisciplineInputChange = this.handleActiveDisciplineInputChange.bind(this);\n }\n handleActiveDisciplineInputChange(discipline) {\n if (discipline.id != this.props.activeDiscipline.id)\n this.props.onActiveDisciplineInput(discipline);\n }\n render() {\n let active = (this.props.activeDiscipline.id == this.props.discipline.id) ? 'active ' : '';\n let areaClasses = `${active}${this.props.discipline.class} content-area-icon`;\n return (\n <li onClick={() => this.handleActiveDisciplineInputChange(this.props.discipline)} className={areaClasses}>\n <InlineSVG src={this.props.discipline.icon} />\n </li>\n );\n }\n\n}\n\nclass ContentAreasBar extends React.Component {\n render() {\n let active = (this.props.activeDiscipline.id != 'all') ? 'active' : '';\n let areasClasses = `${active} content-areas`;\n return (\n <ul className={areasClasses}>\n {this.props.disciplines.map(area =>\n <ContentAreaItem key={area.id} discipline={area} activeDiscipline={this.props.activeDiscipline} onActiveDisciplineInput={this.props.onActiveDisciplineInput} />\n )}\n </ul>\n );\n }\n}\n\nclass NgssStandards extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n needsClear: false,\n };\n this.handleClear = this.handleClear.bind(this);\n }\n handleClear() {\n this.props.onActiveNgssDomainInput('');\n this.props.onActiveNgssStandardInput('');\n this.setState({ needsClear: false });\n }\n handleActiveNgssDomainInputChange(domain) {\n if (domain.value.id) this.setState({ needsClear: true });\n this.props.onActiveNgssDomainInput(domain.value);\n }\n handleActiveNgssStandardInputChange(standard) {\n standard.value.id ? this.setState({ needsClear: true }) : this.setState({ needsClear: false });\n this.props.onActiveNgssStandardInput(standard.value);\n }\n render() {\n if (this.props.activeConceptGroup == 'ngssStandards') {\n let availableDomains = [];\n let availableStandards = [];\n if (this.props.activeDiscipline == 'all') {\n availableDomains = this.props.ngssDomains;\n } else {\n this.props.ngssDomains.forEach((domain) => {\n if (domain.discipline == this.props.activeDiscipline)\n availableDomains.push(domain);\n });\n }\n if (this.props.activeNgssDomain) {\n this.props.ngssStandards.forEach((standard) => {\n if (standard.domain == this.props.activeNgssDomain.id) {\n availableStandards.push(standard);\n } \n });\n }\n return(\n <div>\n {this.state.needsClear &&\n <div className=\"clear-control-wrapper\">\n <span className=\"concept-clear\" onClick={() => this.handleClear()}>Clear</span>\n </div>\n }\n <div id=\"ngss-domain-select\">\n <DropdownList data={availableDomains} placeholder='Select a domain' value={this.props.activeNgssDomain} valueField='id' textField={item => item.name + ' - ' + item.description} onChange={value => this.handleActiveNgssDomainInputChange({value})}/>\n </div>\n {this.props.activeNgssDomain ?\n <div id=\"ngss-standard-select\" className=\"subselect\">\n <DropdownList data={availableStandards} value={this.props.activeNgssStandard} placeholder='Select a standard' valueField='id' textField={item => item.name + ' - ' + item.description} onChange={value => this.handleActiveNgssStandardInputChange({value})}/>\n </div>\n : null}\n </div>\n );\n } else {\n return(null);\n }\n }\n}\n\nclass Crosscutting extends React.Component {\n constructor(props) {\n super(props);\n this.handleClear = this.handleClear.bind(this);\n this.state = {\n needsClear: false,\n };\n }\n handleActiveCrosscuttingInputChange(concepts) {\n if (concepts.value.length) this.setState({ needsClear: true });\n this.props.onActiveCrosscuttingInput(concepts.value);\n }\n handleClear() {\n this.props.onActiveCrosscuttingInput([]);\n this.setState({ needsClear: false });\n }\n render() {\n if (this.props.activeConceptGroup == 'crosscutting') {\n let availableConcepts = [];\n if (this.props.activeDiscipline == 'all') {\n availableConcepts = this.props.crosscuttingConcepts;\n } else {\n this.props.crosscuttingConcepts.forEach((concept) => {\n concept.disciplines.forEach((discipline) => {\n if (discipline.id == this.props.activeDiscipline)\n availableConcepts.push(concept);\n });\n });\n }\n return(\n <div>\n {this.state.needsClear &&\n <div className=\"clear-control-wrapper\">\n <span className=\"concept-clear\" onClick={() => this.handleClear()}>Clear</span>\n </div>\n }\n <SelectList data={availableConcepts} multiple={true} value={this.props.activeCrosscuttingConcepts} valueField='id' textField='name' onChange={value => this.handleActiveCrosscuttingInputChange({value})} />\n </div>\n );\n } else {\n return(null);\n }\n }\n}\n\nclass ScienceEngineering extends React.Component {\n constructor(props) {\n super(props);\n this.handleClear = this.handleClear.bind(this);\n this.state = {\n needsClear: false,\n };\n }\n handleActiveScienceEngineeringInputChange(practices) {\n if (practices.value.length) this.setState({ needsClear: true });\n this.props.onActiveScienceEngineeringInput(practices.value);\n }\n handleClear() {\n this.props.onActiveScienceEngineeringInput([]);\n this.setState({ needsClear: false });\n }\n render() {\n if (this.props.activeConceptGroup == 'scienceEngineering') {\n let availableConcepts = [];\n if (this.props.activeDiscipline == 'all') {\n availableConcepts = this.props.scienceEngineeringConcepts;\n } else {\n this.props.scienceEngineeringConcepts.forEach((concept) => {\n concept.disciplines.forEach((discipline) => {\n if (discipline.id == this.props.activeDiscipline)\n availableConcepts.push(concept);\n });\n });\n }\n return(\n <div>\n {this.state.needsClear &&\n <div className=\"clear-control-wrapper\">\n <span className=\"concept-clear\" onClick={() => this.handleClear()}>Clear</span>\n </div>\n }\n <SelectList data={availableConcepts} multiple={true} value={this.props.activeScienceEngineeringConcepts} valueField='id' textField='name' onChange={value => this.handleActiveScienceEngineeringInputChange({value})} />\n </div>\n );\n } else {\n return(null);\n }\n }\n}\n\nclass ConceptSearchArea extends React.Component {\n constructor(props) {\n super(props);\n this.handleActiveConceptGroupInput = this.handleActiveConceptGroupInput.bind(this);\n }\n handleActiveConceptGroupInput(group) {\n if (group != this.props.state.concepts.activeConceptGroup)\n this.props.onActiveConceptGroupInput(group);\n }\n render() {\n if (!empty(this.props.state.concepts.activeConceptGroup)) {\n var active = 'active ';\n } else {\n var active = '';\n }\n let discipline = this.props.state.activeDiscipline.class;\n let conceptSearchClasses = `${active}${discipline}`;\n let ngssStandardsActive = (this.props.state.concepts.activeConceptGroup == 'ngssStandards') ? 'active' : '';\n let crosscuttingActive = (this.props.state.concepts.activeConceptGroup == 'crosscutting') ? 'active' : '';\n let scienceEngineeringActive = (this.props.state.concepts.activeConceptGroup == 'scienceEngineering') ? 'active' : '';\n return (\n <div>\n <h2>Additional search options:</h2>\n <div id=\"concept-search-area\" className={conceptSearchClasses}>\n <div id=\"ngss-standards-label\" className={[ngssStandardsActive, 'search-label'].join(' ')} onClick={() => this.handleActiveConceptGroupInput('ngssStandards')}>\n <h3>Disciplinary Core Ideas</h3>\n </div>\n <div id=\"crosscutting-label\" className={[crosscuttingActive, 'search-label'].join(' ')} onClick={() => this.handleActiveConceptGroupInput('crosscutting')}>\n <h3>Crosscutting Concepts</h3>\n </div>\n <div id=\"science-engineering-label\" className={[scienceEngineeringActive, 'search-label'].join(' ')} onClick={() => this.handleActiveConceptGroupInput('scienceEngineering')}>\n <h3>Science and Engineering Practices</h3>\n </div>\n </div>\n <div id=\"concept-search-widgets\" className={conceptSearchClasses}>\n <div id=\"ngss-standards-widget\">\n <div className={[ngssStandardsActive, 'rw-widget-wrapper'].join(' ')}>\n <div className='rw-dropdown-wrapper'>\n <NgssStandards activeDiscipline={this.props.state.activeDiscipline.id} ngssStandards={this.props.concepts.ngss.standards} ngssDomains={this.props.concepts.ngss.domains} activeNgssStandard={this.props.state.concepts.activeNgssStandard} activeNgssDomain={this.props.state.concepts.activeNgssDomain} activeConceptGroup={this.props.state.concepts.activeConceptGroup} onActiveNgssStandardInput={this.props.onActiveNgssStandardInput} onActiveNgssDomainInput={this.props.onActiveNgssDomainInput} />\n </div>\n </div>\n </div>\n <div id=\"crosscutting-widget\">\n <div className={[crosscuttingActive, 'rw-widget-wrapper'].join(' ')}>\n <Crosscutting activeDiscipline={this.props.state.activeDiscipline.id} crosscuttingConcepts={this.props.concepts.crosscutting} activeCrosscuttingConcepts={this.props.state.concepts.activeCrosscuttingConcepts} activeInquiryTechnologySelect={this.props.state.concepts.activeInquiryTechnologySelect} activeConceptGroup={this.props.state.concepts.activeConceptGroup} onActiveInquiryTechnologySkillInput={this.props.onActiveInquiryTechnologySkillInput} onActiveCrosscuttingInput={this.props.onActiveCrosscuttingInput} />\n </div>\n </div>\n <div id=\"science-engineering-concepts-widget\">\n <div className={[scienceEngineeringActive, 'rw-widget-wrapper'].join(' ')}>\n <ScienceEngineering activeDiscipline={this.props.state.activeDiscipline.id} scienceEngineeringConcepts={this.props.concepts.scienceEngineering} activeScienceEngineeringConcepts={this.props.state.concepts.activeScienceEngineeringConcepts} activeConceptGroup={this.props.state.concepts.activeConceptGroup} onActiveScienceEngineeringInput={this.props.onActiveScienceEngineeringInput}/>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nclass BrowserContainer extends React.Component {\n render() {\n return (\n <div>\n <h2>Or browse tasks by disciplines:</h2>\n <ContentAreasBar disciplines={this.props.browserData.disciplines} activeDiscipline={this.props.state.activeDiscipline} onActiveDisciplineInput={this.props.onActiveDisciplineInput}/>\n <ConceptSearchArea concepts={this.props.browserData.concepts} state={this.props.state} onActiveNgssDomainInput={this.props.onActiveNgssDomainInput} onActiveNgssStandardInput={this.props.onActiveNgssStandardInput} onActiveCrosscuttingInput={this.props.onActiveCrosscuttingInput}\n onActiveScienceEngineeringInput={this.props.onActiveScienceEngineeringInput} onActiveConceptGroupInput={this.props.onActiveConceptGroupInput} />\n </div>\n );\n }\n}\n\nclass FilterableTaskTable extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeDiscipline: this.props.browserData.disciplines[0],\n concepts: {\n activeConceptGroup: '',\n activeNgssDomain: '',\n activeNgssStandard: '',\n activeCrosscuttingConcepts: [],\n activeScienceEngineeringConcepts: []\n }\n };\n this.handleReset = this.handleReset.bind(this);\n this.handleActiveDisciplineInput = this.handleActiveDisciplineInput.bind(this);\n this.handleActiveConceptGroupInput = this.handleActiveConceptGroupInput.bind(this);\n this.handleActiveNgssDomainInput = this.handleActiveNgssDomainInput.bind(this);\n this.handleActiveNgssStandardInput = this.handleActiveNgssStandardInput.bind(this);\n this.handleActiveCrosscuttingInput = this.handleActiveCrosscuttingInput.bind(this);\n this.handleActiveScienceEngineeringInput = this.handleActiveScienceEngineeringInput.bind(this);\n }\n handleReset() {\n this.setState({\n activeDiscipline: this.props.browserData.disciplines[0],\n concepts: {\n activeConceptGroup: '',\n activeNgssDomain: '',\n activeNgssStandard: '',\n activeCrosscuttingConcepts: [],\n activeScienceEngineeringConcepts: []\n }\n });\n }\n handleActiveDisciplineInput(activeDiscipline) {\n this.setState({\n activeDiscipline: activeDiscipline,\n concepts: {\n activeConceptGroup: '',\n activeNgssDomain: '',\n activeNgssStandard: '',\n activeCrosscuttingConcepts: [],\n activeScienceEngineeringConcepts: []\n }\n });\n }\n handleActiveConceptGroupInput(activeConceptGroup) {\n this.setState({\n concepts: {\n activeConceptGroup: activeConceptGroup,\n activeNgssDomain: '',\n activeNgssStandard: '',\n activeCrosscuttingConcepts: [],\n activeScienceEngineeringConcepts: []\n }\n });\n }\n handleActiveNgssDomainInput(activeNgssDomain) {\n var stateCopy = Object.assign({}, this.state);\n stateCopy.concepts.activeNgssDomain = activeNgssDomain;\n this.setState(stateCopy);\n }\n handleActiveNgssStandardInput(activeNgssStandard) {\n var stateCopy = Object.assign({}, this.state);\n stateCopy.concepts.activeNgssStandard = activeNgssStandard;\n this.setState(stateCopy);\n }\n handleActiveCrosscuttingInput(activeCrosscuttingConcepts) {\n var stateCopy = Object.assign({}, this.state);\n stateCopy.concepts.activeCrosscuttingConcepts = activeCrosscuttingConcepts;\n this.setState(stateCopy);\n }\n handleActiveScienceEngineeringInput(activeScienceEngineeringConcepts) {\n var stateCopy = Object.assign({}, this.state);\n stateCopy.concepts.activeScienceEngineeringConcepts = activeScienceEngineeringConcepts;\n this.setState(stateCopy);\n }\n render() {\n return (\n <div>\n <BrowserContainer browserData={this.props.browserData} taskSearch={this.props.tasks} state={this.state}\n onActiveDisciplineInput={this.handleActiveDisciplineInput}\n onActiveNgssDomainInput={this.handleActiveNgssDomainInput}\n onActiveNgssStandardInput={this.handleActiveNgssStandardInput}\n onActiveCrosscuttingInput={this.handleActiveCrosscuttingInput}\n onActiveScienceEngineeringInput={this.handleActiveScienceEngineeringInput}\n onActiveConceptGroupInput={this.handleActiveConceptGroupInput}/>\n <TaskTable tasks={this.props.tasks} state={this.state} onReset={this.handleReset}/>\n </div>\n );\n }\n}\n\nReactDOM.render(\n <FilterableTaskTable tasks={Drupal.settings.scienceTasks} browserData={Drupal.settings.browserData} />,\n document.getElementById('ngss-task-table')\n);\n"]}