Changeset 5771
- Timestamp:
- 11/05/14 10:33:20 (10 years ago)
- Location:
- SRUAggregator/trunk
- Files:
-
- 2 added
- 3 deleted
- 20 edited
- 3 moved
Legend:
- Unmodified
- Added
- Removed
-
SRUAggregator/trunk/build.sh
r5758 r5771 15 15 JSDIR=src/main/webapp/js 16 16 for f in $JSDIR/*.jsx; do 17 cp $f $JSDIR/`basename $f .jsx`.js;17 cp -v $f $JSDIR/`basename $f .jsx`.js; 18 18 done 19 19 node_modules/react-tools/bin/jsx --no-cache-dir $JSDIR $JSDIR -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java
r5758 r5771 3 3 import eu.clarin.sru.fcs.aggregator.search.Search; 4 4 import eu.clarin.sru.fcs.aggregator.cache.ScanCrawlTask; 5 import eu.clarin.sru.fcs.aggregator.cache.ScanCachePersistence; 6 import eu.clarin.sru.fcs.aggregator.cache.SimpleInMemScanCache; 5 import eu.clarin.sru.fcs.aggregator.cache.Corpora; 7 6 import eu.clarin.sru.client.SRUThreadedClient; 8 7 import eu.clarin.sru.client.SRUVersion; 9 8 import eu.clarin.sru.client.fcs.ClarinFCSClientBuilder; 10 9 import eu.clarin.sru.fcs.aggregator.cache.EndpointUrlFilter; 11 import eu.clarin.sru.fcs.aggregator.cache.ScanCache;12 10 import eu.clarin.sru.fcs.aggregator.registry.Corpus; 13 11 import java.io.File; … … 22 20 import java.util.concurrent.ScheduledExecutorService; 23 21 import java.util.concurrent.atomic.AtomicReference; 24 import javax.naming.NamingException;25 22 import javax.servlet.ServletContextEvent; 26 23 import javax.servlet.ServletContextListener; 27 24 import opennlp.tools.tokenize.TokenizerModel; 25 import org.codehaus.jackson.map.ObjectMapper; 28 26 import org.slf4j.LoggerFactory; 29 27 … … 77 75 * @author Yana Panchenko 78 76 * @author edima 77 * 78 * TODO: result panes with animation and more info 79 * 80 * TODO: highlighted/kwic hits: toggle for now 81 * 82 * TODO: show multiple hits on the same result in multiple rows, linked visually 83 * 84 * TODO: new UI element to specify layer we search in 85 * 86 * TODO: good UI for tree view corpus selection, with instant search form 87 * 88 * TODO: zoom into the results from a corpus, allow functionality only for the 89 * view 90 * 91 * TODO: websockets, selfhosting 92 * 93 * TODO: add statistics menu option w/ page 94 * 95 * TODO: atomic replace of cached corpora (file) 96 * 97 * TODO: test json deserialization 98 * 79 99 */ 80 100 public class Aggregator implements ServletContextListener { … … 82 102 private static final org.slf4j.Logger log = LoggerFactory.getLogger(Aggregator.class); 83 103 84 public static final int WAITING_TIME_FOR_SHUTDOWN_MS = 10000;104 public static final int WAITING_TIME_FOR_SHUTDOWN_MS = 2000; 85 105 public static final String DE_TOK_MODEL = "/tokenizer/de-tuebadz-8.0-token.bin"; 86 106 private static final String DEFAULT_DATA_LOCATION = "/data"; 87 private static final String SCAN_DIR_NAME = "scan";88 107 89 108 private static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); 90 109 private static Aggregator instance; 91 110 92 private AtomicReference< ScanCache> scanCacheAtom = new AtomicReference<ScanCache>(new SimpleInMemScanCache());111 private AtomicReference<Corpora> scanCacheAtom = new AtomicReference<Corpora>(new Corpora()); 93 112 private TokenizerModel model; 94 113 private SRUThreadedClient sruClient = null; … … 100 119 } 101 120 102 public ScanCache getScanCache() {121 public Corpora getCorpora() { 103 122 return scanCacheAtom.get(); 104 123 } … … 122 141 .buildThreadedClient(); 123 142 124 String scanDir = getScanDirectory(params.dataLocationPropertyName, params.aggregatorDirName); 125 ScanCachePersistence scanCachePersistence = new ScanCachePersistence(scanDir); 143 File corporaCacheFile = new File(params.aggregatorFilePath); 126 144 try { 127 // scanCacheAtom.set(scanCachePersistence.read()); 128 log.info("ScanCache read from file; number of root corpora: " + scanCacheAtom.get().getRootCorpora().size()); 145 Corpora corpora = new ObjectMapper().readValue(corporaCacheFile, Corpora.class); 146 scanCacheAtom.set(corpora); 147 log.info("corpus list read from file; number of root corpora: " + scanCacheAtom.get().getCorpora().size()); 129 148 } catch (Exception e) { 130 log.error("Error while reading ScanCache:", e);149 log.error("Error while reading cached corpora:", e); 131 150 } 132 151 133 EndpointUrlFilter filter = new EndpointUrlFilter();134 filter.deny("leipzig", "mpi.", "phonetik.uni-muenchen");135 scheduler.scheduleAtFixedRate(136 new ScanCrawlTask(sruClient, params.cacheMaxDepth, filter, scanCachePersistence, scanCacheAtom),137 0, params.cacheUpdateInterval, params.cacheUpdateIntervalUnit);138 139 152 model = setUpTokenizers(); 153 154 EndpointUrlFilter filter = new EndpointUrlFilter();//.deny("leipzig"); // ~5k corpora 155 ScanCrawlTask task = new ScanCrawlTask(sruClient, params.centerRegistryUrl, 156 params.cacheMaxDepth, filter, scanCacheAtom, corporaCacheFile); 157 scheduler.scheduleAtFixedRate(task, 0, params.cacheUpdateInterval, params.cacheUpdateIntervalUnit); 158 140 159 log.info("Aggregator initialization finished."); 141 160 } catch (Exception ex) { … … 183 202 } 184 203 185 private static String getScanDirectory(String dataLocationPropertyName, String aggregatorDirName) throws NamingException {186 // see if data location is set in properties187 String dataLocation = System.getProperty(dataLocationPropertyName);188 if (dataLocation == null || !(new File(dataLocation, aggregatorDirName).exists())) {189 dataLocation = DEFAULT_DATA_LOCATION;190 if (!(new File(dataLocation, aggregatorDirName).exists())) {191 dataLocation = System.getProperty("user.home");192 }193 if ((new File(dataLocation, aggregatorDirName).exists())) {194 log.info(dataLocationPropertyName + " property is not defined, "195 + "setting to default: " + dataLocation);196 } else {197 log.info(dataLocationPropertyName + " property is not defined, "198 + "default location does not exist: " + dataLocation);199 throw new RuntimeException("Data location not found");200 }201 }202 203 File aggregatorDir = new File(dataLocation, aggregatorDirName);204 if (!aggregatorDir.exists()) {205 log.error("Aggregator directory does not exist: "206 + aggregatorDir.getAbsolutePath());207 }208 File scanDir = new File(aggregatorDir, SCAN_DIR_NAME);209 if (!scanDir.exists()) {210 if (!scanDir.mkdir()) {211 log.error("Scan directory does not exist and cannot be created: "212 + aggregatorDir.getAbsolutePath());213 }214 }215 String scanPath = scanDir.getAbsolutePath();216 log.info("Scan data location: " + scanPath);217 return scanPath;218 }219 220 204 private static void shutdownAndAwaitTermination(SRUThreadedClient sruClient, ExecutorService scheduler) { 221 205 try { … … 236 220 TokenizerModel model = null; 237 221 try { 238 InputStream tokenizerModelDeAsIS = Thread.currentThread().getContextClassLoader().getResourceAsStream(DE_TOK_MODEL);239 model = new TokenizerModel(tokenizerModelDeAsIS);240 tokenizerModelDeAsIS.close();222 try (InputStream tokenizerModelDeAsIS = Thread.currentThread().getContextClassLoader().getResourceAsStream(DE_TOK_MODEL)) { 223 model = new TokenizerModel(tokenizerModelDeAsIS); 224 } 241 225 } catch (IOException ex) { 242 226 log.error("Failed to load tokenizer model", ex); -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Params.java
r5758 r5771 4 4 import javax.naming.InitialContext; 5 5 import javax.naming.NamingException; 6 import org.slf4j.LoggerFactory; 6 7 7 8 /** … … 10 11 */ 11 12 public class Params { 13 14 private static final org.slf4j.Logger log = LoggerFactory.getLogger(Params.class); 15 16 public final String centerRegistryUrl; 12 17 public final int cacheMaxDepth; 13 18 public final TimeUnit cacheUpdateIntervalUnit; 14 19 public final int cacheUpdateInterval; 15 public final String dataLocationPropertyName; 16 public final String aggregatorDirName; 17 20 public final String aggregatorFilePath; 18 21 19 22 public Params() throws NamingException { 20 23 InitialContext context = new InitialContext(); 24 25 centerRegistryUrl = (String) context.lookup("java:comp/env/center-registry-url"); 21 26 22 27 cacheMaxDepth = (Integer) context.lookup("java:comp/env/scan-max-depth"); … … 27 32 cacheUpdateInterval = (Integer) context.lookup("java:comp/env/update-interval"); 28 33 29 dataLocationPropertyName = (String) context.lookup("java:comp/env/data-location-property");34 aggregatorFilePath = (String) context.lookup("java:comp/env/aggregator-file-path"); 30 35 31 aggregatorDirName = (String) context.lookup("java:comp/env/aggregator-folder"); 36 log.info("centerRegistryUrl = {}", centerRegistryUrl); 37 log.info("cacheMaxDepth = {}", cacheMaxDepth); 38 log.info("cacheUpdateInterval = {} {}", cacheUpdateInterval, cacheUpdateIntervalUnit); 39 log.info("aggregatorFilePath = {}", aggregatorFilePath); 32 40 } 33 34 41 } -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/cache/Corpora.java
r5758 r5771 6 6 import java.util.HashMap; 7 7 import java.util.HashSet; 8 import java.util.LinkedHashMap;9 8 import java.util.LinkedHashSet; 10 9 import java.util.List; 11 10 import java.util.Map; 12 11 import java.util.Set; 13 import java.util.logging.Logger;12 import org.slf4j.LoggerFactory; 14 13 15 14 /** … … 20 19 * @author edima 21 20 */ 22 public class SimpleInMemScanCache implements ScanCache{21 public class Corpora { 23 22 24 private Map<String, List<Corpus>> enpUrlToRootCorpora = new LinkedHashMap<String, List<Corpus>>(30); 25 private Map<String, List<Corpus>> corpusToChildren = new HashMap<String, List<Corpus>>(); 26 private Map<String, Corpus> handleToCorpus = new HashMap<String, Corpus>(); 23 private static final org.slf4j.Logger log = LoggerFactory.getLogger(Corpora.class); 24 27 25 private Map<String, Set<Corpus>> langToRootCorpora = new HashMap<String, Set<Corpus>>(); 28 26 private Map<String, Set<Corpus>> langToTopUniqueCorpora = new HashMap<String, Set<Corpus>>(); 29 27 private List<Institution> institutions = new ArrayList<Institution>(); 28 private List<Corpus> corpora = new ArrayList<Corpus>(); 30 29 31 private static final Logger LOGGER = Logger.getLogger(SimpleInMemScanCache.class.getName());32 33 @Override34 30 public List<Institution> getInstitutions() { 35 31 return institutions; 36 32 } 37 33 38 @Override 39 public List<Corpus> getRootCorporaOfEndpoint(String enpointUrl) { 40 List<Corpus> roots = new ArrayList<Corpus>(); 41 if (enpUrlToRootCorpora.containsKey(enpointUrl)) { 42 roots.addAll(enpUrlToRootCorpora.get(enpointUrl)); 43 } 44 return roots; 34 public List<Corpus> getCorpora() { 35 return corpora; 45 36 } 46 37 47 @Override48 38 public void addInstitution(Institution institution) { 49 39 institutions.add(institution); 50 40 } 51 41 52 @Override 53 public synchronized Corpus getCorpus(String handle) { 54 return handleToCorpus.get(handle); 42 public synchronized boolean addRootCorpus(final Corpus c) { 43 if (findByHandle(c.getHandle()) != null) { 44 return false; 45 } 46 corpora.add(c); 47 for (String lang : c.getLanguages()) { 48 if (!langToRootCorpora.containsKey(lang)) { 49 langToRootCorpora.put(lang, new HashSet<Corpus>()); 50 } 51 langToRootCorpora.get(lang).add(c); 52 } 53 return true; 55 54 } 56 55 57 @Override 58 public synchronized boolean addCorpus(Corpus c) { 59 return addCorpus(c, null); 60 } 61 62 @Override 63 public synchronized boolean addCorpus(Corpus c, Corpus parentCorpus) { 64 if (handleToCorpus.containsKey(c.getHandle())) { 65 // cyclic reference 56 public synchronized boolean addSubCorpus(Corpus c, Corpus parentCorpus) { 57 if (findByHandle(c.getHandle()) != null) { 66 58 return false; 67 59 } 68 60 69 handleToCorpus.put(c.getHandle(), c);70 71 61 if (parentCorpus == null) { //i.e it's a root corpus 72 // index root corpora as for their languages 73 for (String lang : c.getLanguages()) { 74 if (!langToRootCorpora.containsKey(lang)) { 75 langToRootCorpora.put(lang, new HashSet<Corpus>()); 76 } 77 langToRootCorpora.get(lang).add(c); 78 } 79 // index root corpora as for their endpint url 80 if (!enpUrlToRootCorpora.containsKey(c.getEndpointUrl())) { 81 enpUrlToRootCorpora.put(c.getEndpointUrl(), new ArrayList<Corpus>()); 82 } 83 enpUrlToRootCorpora.get(c.getEndpointUrl()).add(c); 62 addRootCorpus(c); 84 63 } else { 85 if (!corpusToChildren.containsKey(parentCorpus.getHandle())) { 86 corpusToChildren.put(parentCorpus.getHandle(), new ArrayList<Corpus>()); 87 } 88 corpusToChildren.get(parentCorpus.getHandle()).add(c); 64 parentCorpus.addCorpus(c); 89 65 } 90 66 … … 92 68 if (c.getLanguages().size() == 1 93 69 && (parentCorpus == null || parentCorpus.getLanguages().size() > 0)) { 94 String lang = getElementOfStringUnitset(c.getLanguages());70 String lang = c.getLanguages().iterator().next(); 95 71 if (!langToTopUniqueCorpora.containsKey(lang)) { 96 72 langToTopUniqueCorpora.put(lang, new LinkedHashSet<Corpus>()); … … 101 77 } 102 78 103 @Override104 public String toString() {105 return "cache{\n" + "institutions=" + institutions + "\n"106 + "enpUrlToRootCorpora=" + enpUrlToRootCorpora107 + "\n corpusToChildren=" + corpusToChildren108 + "\n langToTopUniqueCorpora=" + langToTopUniqueCorpora + "\n}";109 }110 111 @Override112 public boolean isEmpty() {113 return enpUrlToRootCorpora.isEmpty();114 }115 116 @Override117 public synchronized List<Corpus> getRootCorpora() {118 List<Corpus> rootCorpora = new ArrayList<Corpus>(enpUrlToRootCorpora.size());119 for (List<Corpus> corpora : this.enpUrlToRootCorpora.values()) {120 rootCorpora.addAll(corpora);121 }122 return rootCorpora;123 }124 125 @Override126 79 public Set<String> getLanguages() { 127 80 Set<String> languages = new HashSet<String>(this.langToRootCorpora.size()); … … 130 83 } 131 84 132 @Override 133 public List<Corpus> getChildren(Corpus corpus) { 134 List<Corpus> corpora = this.corpusToChildren.get(corpus.getHandle()); 135 if (corpora == null) { 136 return (new ArrayList<Corpus>()); 137 } else { 138 List<Corpus> corporaCopy = new ArrayList<Corpus>(corpora); 139 return corporaCopy; 85 public List<Corpus> getRootCorporaForLang(String lang) { 86 List<Corpus> ret = new ArrayList<Corpus>(); 87 for (Corpus c : corpora) { 88 if (c.getLanguages().contains(lang)) { 89 ret.add(c); 90 } 140 91 } 92 return ret; 141 93 } 142 94 143 @Override144 public Map<String, Set<Corpus>> getRootCorporaForLang() {145 return langToRootCorpora;146 }147 148 @Override149 public List<Corpus> getRootCorporaForLang(String lang) {150 List<Corpus> rootCorpora = new ArrayList<Corpus>(enpUrlToRootCorpora.size());151 for (List<Corpus> corpora : this.enpUrlToRootCorpora.values()) {152 for (Corpus corpus : corpora) {153 if (corpus.getLanguages().contains(lang)) {154 rootCorpora.add(corpus);155 }156 }157 }158 return rootCorpora;159 }160 161 @Override162 public Map<String, Set<Corpus>> getTopUniqueLangToCorpora() {163 return this.langToTopUniqueCorpora;164 }165 166 @Override167 95 public List<Corpus> getTopUniqueLanguageCorpora(String lang) { 168 ArrayList<Corpus> corpora = new ArrayList<Corpus>( langToTopUniqueCorpora.get(lang).size());96 ArrayList<Corpus> corpora = new ArrayList<Corpus>(); 169 97 corpora.addAll(langToTopUniqueCorpora.get(lang)); 170 98 return corpora; 171 99 } 172 100 173 private String getElementOfStringUnitset(Set<String> stringUnitSet) { 174 return stringUnitSet.iterator().next(); 101 @Override 102 public String toString() { 103 return "corpora{\n" + "institutions=" + institutions + "\n" 104 + "\n corpora=" + corpora + "\n}"; 105 } 106 107 public List<Corpus> findByEndpoint(final String endpointUrl) { 108 final List<Corpus> found = new ArrayList<Corpus>(); 109 visit(corpora, new CallCorpus() { 110 @Override 111 public void call(Corpus c) { 112 if (c.getEndpointUrl().equals(endpointUrl)) { 113 found.add(c); 114 } 115 } 116 }); 117 return found; 118 } 119 120 public Corpus findByHandle(final String handle) { 121 final List<Corpus> found = new ArrayList<Corpus>(); 122 visit(corpora, new CallCorpus() { 123 @Override 124 public void call(Corpus c) { 125 if (c.getHandle() != null && c.getHandle().equals(handle)) { 126 found.add(c); 127 } 128 } 129 }); 130 return found.isEmpty() ? null : found.get(0); 131 } 132 133 public static interface CallCorpus { 134 void call(Corpus c); 135 } 136 137 private static void visit(List<Corpus> corpora, CallCorpus clb) { 138 for (Corpus c : corpora) { 139 clb.call(c); 140 visit(c.getSubCorpora(), clb); 141 } 175 142 } 176 143 } -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/cache/ScanCrawlTask.java
r5758 r5771 2 2 3 3 import eu.clarin.sru.client.SRUThreadedClient; 4 import eu.clarin.sru.fcs.aggregator.registry.CenterRegistry; 4 5 import eu.clarin.sru.fcs.aggregator.registry.CenterRegistryLive; 6 import java.io.File; 7 import java.io.IOException; 5 8 import java.util.concurrent.atomic.AtomicReference; 9 import org.codehaus.jackson.map.ObjectMapper; 6 10 import org.slf4j.LoggerFactory; 7 11 8 12 /** 9 * A task for crawling endpoint scan operation responses of FCS specification.10 * If successful, saves found endpoints and resources descriptions into a new11 * ScanCache and updates the web application contexts with this new cache, as12 * well as rewrites the previously scanned data saved on the disk.13 *14 13 * @author yanapanchenko 15 14 * @author edima 16 15 */ 17 16 public class ScanCrawlTask implements Runnable { 18 17 19 18 private static final org.slf4j.Logger log = LoggerFactory.getLogger(ScanCrawlTask.class); 20 19 21 20 private SRUThreadedClient sruClient; 22 private ScanCachePersistence scanCachePersistence;23 private AtomicReference<ScanCache> scanCacheAtom;24 21 private int cacheMaxDepth; 25 22 private EndpointFilter filter; 26 27 public ScanCrawlTask(SRUThreadedClient sruClient, int cacheMaxDepth, EndpointFilter filter, 28 ScanCachePersistence scanCachePersistence, AtomicReference<ScanCache> scanCacheAtom) { 23 private AtomicReference<Corpora> corporaAtom; 24 private File cachedCorpora; 25 private String centerRegistryUrl; 26 27 public ScanCrawlTask(SRUThreadedClient sruClient, String centerRegistryUrl, 28 int cacheMaxDepth, EndpointFilter filter, 29 AtomicReference<Corpora> corporaAtom, File cachedCorpora) { 29 30 this.sruClient = sruClient; 31 this.centerRegistryUrl = centerRegistryUrl; 30 32 this.cacheMaxDepth = cacheMaxDepth; 31 33 this.filter = filter; 32 this. scanCachePersistence = scanCachePersistence;33 this. scanCacheAtom = scanCacheAtom;34 this.corporaAtom = corporaAtom; 35 this.cachedCorpora = cachedCorpora; 34 36 } 35 37 36 38 @Override 37 39 public void run() { 38 40 try { 39 log.info("STARTING CACHING CORPORA SCAN");40 41 long time0 = System.currentTimeMillis(); 41 42 ScanCrawler scanCrawler = new ScanCrawler(new CenterRegistryLive(), sruClient, filter, cacheMaxDepth); 43 ScanCache cache = scanCrawler.crawl(); 44 45 log.info("New Cache, number of root corpora: " + cache.getRootCorpora().size()); 46 scanCachePersistence.write(cache); 47 scanCacheAtom.set(cache); 42 43 log.info("ScanCrawlTask: Initiating crawl"); 44 CenterRegistry centerRegistry = new CenterRegistryLive(centerRegistryUrl); 45 ScanCrawler scanCrawler = new ScanCrawler(centerRegistry, sruClient, filter, cacheMaxDepth); 46 47 log.info("ScanCrawlTask: Starting crawl"); 48 Corpora corpora = scanCrawler.crawl(); 49 50 corporaAtom.set(corpora); 48 51 long time = System.currentTimeMillis() - time0; 49 50 log.info("FINISHED CACHING CORPORA SCAN ({}s)", time / 1000.); 51 } catch (Exception xc) { 52 log.error("!!! Scan Crawler task exception", xc); 52 53 log.info("ScanCrawlTask: crawl done in {}s, number of root corpora: {}", 54 time / 1000., corpora.getCorpora().size()); 55 56 ObjectMapper mapper = new ObjectMapper(); 57 mapper.writerWithDefaultPrettyPrinter().writeValue(cachedCorpora, corpora); 58 log.info("ScanCrawlTask: wrote to disk, finished"); 59 } catch (IOException xc) { 60 log.error("!!! Scan Crawler task IO exception", xc); 61 } catch (Throwable xc) { 62 log.error("!!! Scan Crawler task throwable exception", xc); 63 throw xc; 53 64 } 54 65 } -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/cache/ScanCrawler.java
r5758 r5771 1 1 package eu.clarin.sru.fcs.aggregator.cache; 2 2 3 import eu.clarin.sru.fcs.aggregator.util.CounterLatch; 3 4 import eu.clarin.sru.client.SRUCallback; 4 5 import eu.clarin.sru.client.SRUClientException; … … 7 8 import eu.clarin.sru.client.SRUTerm; 8 9 import eu.clarin.sru.client.SRUThreadedClient; 9 import eu.clarin.sru.fcs.aggregator.registry.CenterRegistry I;10 import eu.clarin.sru.fcs.aggregator.registry.CenterRegistry; 10 11 import eu.clarin.sru.fcs.aggregator.registry.Corpus; 11 12 import eu.clarin.sru.fcs.aggregator.registry.Endpoint; … … 23 24 * 24 25 * @author yanapanchenko 26 * @author edima 25 27 */ 26 28 public class ScanCrawler { … … 28 30 private static final org.slf4j.Logger log = LoggerFactory.getLogger(ScanCrawler.class); 29 31 30 private final CenterRegistry I cr;32 private final CenterRegistry centerRegistry; 31 33 private final SRUThreadedClient sruScanClient; 32 34 private final int maxDepth; 33 35 private final EndpointFilter filter; 34 private CounterLatch latch = new CounterLatch();35 36 public ScanCrawler(CenterRegistry IcenterRegistry, SRUThreadedClient sruScanClient, EndpointFilter filter, int maxDepth) {37 cr= centerRegistry;36 private final CounterLatch latch; 37 38 public ScanCrawler(CenterRegistry centerRegistry, SRUThreadedClient sruScanClient, EndpointFilter filter, int maxDepth) { 39 this.centerRegistry = centerRegistry; 38 40 this.sruScanClient = sruScanClient; 39 41 this.maxDepth = maxDepth; 40 42 this.filter = filter; 41 } 42 43 public ScanCache crawl() { 44 SimpleInMemScanCache cache = new SimpleInMemScanCache(); 45 for (Institution institution : cr.getCQLInstitutions()) { 43 this.latch = new CounterLatch(); 44 } 45 46 public Corpora crawl() { 47 Corpora cache = new Corpora(); 48 for (Institution institution : centerRegistry.getCQLInstitutions()) { 46 49 cache.addInstitution(institution); 47 50 Iterable<Endpoint> endpoints = institution.getEndpoints(); … … 55 58 56 59 try { 60 log.info("awaiting"); 57 61 latch.await(); 58 62 } catch (InterruptedException e) { … … 60 64 } 61 65 66 log.info("done crawling"); 62 67 return cache; 63 68 } 64 69 65 70 private void addCorpora(final String endpointUrl, final Institution institution, 66 final Corpus parentCorpus, final ScanCache cache, final int depth) {71 final Corpus parentCorpus, final Corpora corpora, final int depth) { 67 72 if (depth > maxDepth) { 68 73 return; … … 96 101 for (SRUTerm term : response.getTerms()) { 97 102 Corpus c = createCorpus(institution, endpointUrl, term); 98 checkedAdd(c ache, parentCorpus, c, depth);103 checkedAdd(corpora, parentCorpus, c, depth); 99 104 } 100 105 } else if (parentCorpus == null) { 101 106 // create default root corpus 102 107 Corpus c = new Corpus(institution, endpointUrl); 103 checkedAdd(c ache, parentCorpus, c, depth);108 checkedAdd(corpora, parentCorpus, c, depth); 104 109 } 105 110 106 111 log.info("{} Finished scan: {}", latch.get(), endpointUrl); 112 } catch (Exception xc) { 113 log.error("{} Exception in callback {}", latch.get(), endpointUrl); 114 log.error("--> ", xc); 107 115 } finally { 108 116 latch.decrement(); … … 113 121 public void onError(SRUScanRequest request, SRUClientException error) { 114 122 latch.decrement(); 115 log.error("{} Error while scanning {}: {} ", latch.get(), endpointUrl, error);123 log.error("{} Error while scanning {}: {} : {}", latch.get(), endpointUrl, error, error.getCause()); 116 124 } 117 125 }); … … 122 130 } 123 131 124 private void checkedAdd( ScanCache cache, Corpus parentCorpus, Corpus c, int depth) {125 if (c ache.addCorpus(c, parentCorpus)) {126 addCorpora(c.getEndpointUrl(), c.getInstitution(), c, c ache, depth + 1);132 private void checkedAdd(Corpora corpora, Corpus parentCorpus, Corpus c, int depth) { 133 if (corpora.addSubCorpus(c, parentCorpus)) { 134 addCorpora(c.getEndpointUrl(), c.getInstitution(), c, corpora, depth + 1); 127 135 } else { 128 136 // log.warn("Cyclic reference in corpus " + c.getHandle() + " of endpoint " + c.getEndpointUrl()); -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/registry/CenterRegistry.java
r5758 r5771 10 10 * @author Yana Panchenko 11 11 */ 12 public interface CenterRegistry I{12 public interface CenterRegistry { 13 13 14 14 public boolean hasCQLInstitutionsLoaded(); -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/registry/CenterRegistryForTesting.java
r5718 r5771 15 15 * @author Yana Panchenko 16 16 */ 17 public class CenterRegistryForTesting implements CenterRegistry I{17 public class CenterRegistryForTesting implements CenterRegistry { 18 18 19 19 private static final Logger logger = Logger.getLogger(CenterRegistryForTesting.class.getName()); -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/registry/CenterRegistryLive.java
r5718 r5771 13 13 import java.util.logging.Level; 14 14 import java.util.logging.Logger; 15 import javax.naming.InitialContext;16 import javax.naming.NamingException;17 15 18 16 /** … … 20 18 * 21 19 * @author Yana Panchenko 20 * @author edima 22 21 */ 23 public class CenterRegistryLive implements CenterRegistry I{22 public class CenterRegistryLive implements CenterRegistry { 24 23 25 24 private static final Logger LOGGER = Logger.getLogger(CenterRegistryLive.class.getName()); 26 //private static final String CENTER_REGISTRY_URL = "http://130.183.206.32/restxml/"; 27 private String centerRegistryUrl; //defined in web.xml 28 //https://centerregistry-clarin.esc.rzg.mpg.de/restxml/ 25 private String centerRegistryUrl; 29 26 private boolean hasInstitutionsLoaded = false; 30 27 private List<Institution> centers = new ArrayList<Institution>(); 31 28 32 public CenterRegistryLive( ) {29 public CenterRegistryLive(String centerRegistryUrl) { 33 30 super(); 34 processContext();31 this.centerRegistryUrl = centerRegistryUrl; 35 32 } 36 33 … … 48 45 hasInstitutionsLoaded = true; 49 46 URI url = URI.create(centerRegistryUrl); 50 CenterRegistryConnector connector = new CenterRegistryConnector(url, 30000); 51 try { 47 try (CenterRegistryConnector connector = new CenterRegistryConnector(url, 30000)) { 52 48 List<Center> regCenters = connector.retrieveCenters(); 53 49 for (Center regCenter : regCenters) { … … 77 73 } catch (ConnectorException ex) { 78 74 Logger.getLogger(CenterRegistryLive.class.getName()).log(Level.SEVERE, null, ex); 79 } finally {80 connector.close();81 75 } 82 76 LOGGER.log(Level.FINE, "Number of Centers: {0}", centers.size()); … … 97 91 return centers.get(index); 98 92 } 99 100 private void processContext() {101 InitialContext context;102 try {103 context = new InitialContext();104 centerRegistryUrl = (String) context.lookup("java:comp/env/center-registry-url");105 } catch (NamingException ex) {106 LOGGER.log(Level.SEVERE, null, ex);107 }108 }109 110 93 } -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/registry/Corpus.java
r5758 r5771 4 4 import java.util.Collections; 5 5 import java.util.HashSet; 6 import java.util.Iterator;7 6 import java.util.List; 8 7 import java.util.Set; … … 45 44 } 46 45 47 public Iterator<Corpus> getSubCorpora() {48 return subCorpora.iterator();46 public List<Corpus> getSubCorpora() { 47 return Collections.unmodifiableList(subCorpora); 49 48 } 50 49 -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/registry/Institution.java
r5758 r5771 14 14 private String link; 15 15 private ArrayList<Endpoint> endpoints; 16 17 // for JSON deserialization 18 public Institution() { 19 } 16 20 17 21 public Institution(String name, String link) { -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/rest/RestService.java
r5758 r5771 53 53 @Path("corpora") 54 54 public Response getCorpora() throws IOException { 55 List<Corpus> corpora = Aggregator.getInstance().get ScanCache().getRootCorpora();55 List<Corpus> corpora = Aggregator.getInstance().getCorpora().getCorpora(); 56 56 return Response.ok(toJson(corpora)).build(); 57 57 } … … 78 78 @Path("languages") 79 79 public Response getLanguages() throws IOException { 80 Set<String> codes = Aggregator.getInstance().get ScanCache().getLanguages();80 Set<String> codes = Aggregator.getInstance().getCorpora().getLanguages(); 81 81 List<JsonLang> languages = new ArrayList<JsonLang>(); 82 82 for (String code : codes) { … … 98 98 return Response.status(400).entity("'query' parameter expected").build(); 99 99 } 100 List<Corpus> corpora = Aggregator.getInstance().get ScanCache().getRootCorpora();100 List<Corpus> corpora = Aggregator.getInstance().getCorpora().getCorpora(); 101 101 Search search = Aggregator.getInstance().startSearch(SRUVersion.VERSION_1_2, corpora, query, "eng", 10); 102 102 URI uri = URI.create("" + search.getId()); -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/util/CounterLatch.java
r5758 r5771 1 package eu.clarin.sru.fcs.aggregator. cache;1 package eu.clarin.sru.fcs.aggregator.util; 2 2 3 3 import java.util.concurrent.atomic.AtomicInteger; 4 import java.util.function.IntUnaryOperator;5 4 6 5 /** … … 9 8 */ 10 9 public class CounterLatch { 11 12 private static final IntUnaryOperator countDown = new IntUnaryOperator() {13 @Override14 public int applyAsInt(int operand) {15 return (operand > 0) ? operand - 1 : 0;16 }17 };18 19 10 private final AtomicInteger counter = new AtomicInteger(); 20 11 private final Object lock = new Object(); … … 30 21 public int decrement() { 31 22 synchronized (lock) { 32 int ret = counter. updateAndGet(countDown);33 if ( 0 == ret) {23 int ret = counter.decrementAndGet(); 24 if (ret <= 0) { 34 25 lock.notifyAll(); 35 26 } -
SRUAggregator/trunk/src/main/webapp/WEB-INF/web.xml
r5720 r5771 29 29 <env-entry-value>3</env-entry-value> 30 30 </env-entry> 31 <!-- Value of this property (data.location) should be specified in CATALINA_OPT 32 (e.g. inside /etc/init.d/tomcat7*), unless the default is used. 33 Currently defaults to /data/ or user.home --> 34 <env-entry> 35 <env-entry-name>data-location-property</env-entry-name> 36 <env-entry-type>java.lang.String</env-entry-type> 37 <env-entry-value>data.location</env-entry-value> 38 </env-entry> 39 <!-- Folder for the data specific to the current Aggregator application, 31 <!-- Filepath for the data specific to the current Aggregator application, 40 32 supposed to be inside the data location folder above --> 41 33 <env-entry> 42 <env-entry-name>aggregator-f older</env-entry-name>34 <env-entry-name>aggregator-file-path</env-entry-name> 43 35 <env-entry-type>java.lang.String</env-entry-type> 44 <env-entry-value> fcsAggregator</env-entry-value>36 <env-entry-value>/data/fcsAggregator/fcsAggregatorCorpora.json</env-entry-value> 45 37 </env-entry> 46 38 -
SRUAggregator/trunk/src/main/webapp/index.html
r5758 r5771 64 64 <span class="glyphicon glyphicon-info-sign"></span> 65 65 <!-- <span>VERSION ${pom.version} </span> --> 66 <span>VERSION 2.0.0-ALPHA </span>66 <span>VERSION 2.0.0-ALPHA2 </span> 67 67 </a> 68 68 </div> … … 87 87 <![endif]--> 88 88 <script src="lib/react-with-addons.js"></script> 89 <script src="lib/react-bootstrap.min.js"></script>90 89 <script src="js/components.js"></script> 90 <script src="js/search.js"></script> 91 91 <script src="js/main.js"></script> 92 92 </body> -
SRUAggregator/trunk/src/main/webapp/js/components.js
r5758 r5771 1 1 /** @jsx React.DOM */ 2 2 3 window.MyReact = {};4 3 var PT = React.PropTypes; 5 4 var ReactCSSTransitionGroup = React.addons.ReactCSSTransitionGroup; 6 5 var ReactTransitionGroup = React.addons.TransitionGroup; 7 6 7 window.MyReact = {}; 8 8 window.MyReact.Panel = React.createClass({displayName: 'Panel', 9 9 propTypes: { … … 25 25 var chevron = "glyphicon glyphicon-chevron-" + (this.state.open ? "down":"right"); 26 26 var chevronStyle={fontSize:12}; 27 return React. DOM.div({key: this.props.key, className: "bs-callout bs-callout-info"},28 React. DOM.div({className: "panel"},29 React. DOM.div({className: "panel-heading unselectable", onClick: this.toggleState},30 React. DOM.p({className: "panel-title unselectable"},31 React. DOM.span({className: chevron, style: chevronStyle}), "Â ",27 return React.createElement("div", {key: this.props.key, className: "bs-callout bs-callout-info"}, 28 React.createElement("div", {className: "panel"}, 29 React.createElement("div", {className: "panel-heading unselectable", onClick: this.toggleState}, 30 React.createElement("p", {className: "panel-title unselectable"}, 31 React.createElement("span", {className: chevron, style: chevronStyle}), "Â ", 32 32 this.props.header 33 33 ) 34 34 ), 35 ReactTransitionGroup({transitionName: "display"}, 36 this.state.open ? this.props.children : false 35 React.createElement("div", {className: "panel-body"}, 36 React.createElement(ReactTransitionGroup, {transitionName: "display"}, 37 this.state.open ? this.props.children : false 38 ) 37 39 ) 38 40 ) … … 43 45 window.MyReact.PanelGroup = React.createClass({displayName: 'PanelGroup', 44 46 render: function() { 45 return React. DOM.div({className: "panel-group"}, " ", this.props.children, " ");47 return React.createElement("div", {className: "panel-group"}, " ", this.props.children, " "); 46 48 }, 47 49 }); -
SRUAggregator/trunk/src/main/webapp/js/components.jsx
r5758 r5771 1 1 /** @jsx React.DOM */ 2 2 3 window.MyReact = {};4 3 var PT = React.PropTypes; 5 4 var ReactCSSTransitionGroup = React.addons.ReactCSSTransitionGroup; 6 5 var ReactTransitionGroup = React.addons.TransitionGroup; 7 6 7 window.MyReact = {}; 8 8 window.MyReact.Panel = React.createClass({ 9 9 propTypes: { -
SRUAggregator/trunk/src/main/webapp/js/main.js
r5758 r5771 2 2 3 3 var PT = React.PropTypes; 4 var ReactCSSTransitionGroup = window.React.addons.CSSTransitionGroup;5 4 6 // react bootstrap components 7 var RBAccordion = window.ReactBootstrap.Accordion; 8 var RBPanel = window.ReactBootstrap.Panel; 9 var RBDropdownButton = window.ReactBootstrap.DropdownButton; 10 var RBMenuItem = window.ReactBootstrap.MenuItem; 11 var RBNavbar = window.ReactBootstrap.Navbar; 12 var RBNav = window.ReactBootstrap.Nav; 13 var RBNavItem = window.ReactBootstrap.NavItem; 14 var RBInput = window.ReactBootstrap.Input; 15 var RBButton = window.ReactBootstrap.Button; 16 var RBModal = window.ReactBootstrap.Modal; 17 var RBModalTrigger = window.ReactBootstrap.ModalTrigger; 18 var RBOverlayMixin = window.ReactBootstrap.OverlayMixin; 19 var RBProgressBar = window.ReactBootstrap.ProgressBar; 20 // own components 21 var Panel = window.MyReact.Panel; 5 var SearchBox = window.MyAggregator.SearchBox; 6 var CorpusSelection = window.MyAggregator.CorpusSelection; 7 var LanguageSelection = window.MyAggregator.LanguageSelection; 8 var HitNumber = window.MyAggregator.HitNumber; 9 var Results = window.MyAggregator.Results; 22 10 23 var CorpusSelectionModal = React.createClass({displayName: 'CorpusSelectionModal', 24 propTypes: { 25 corpora: PT.array.isRequired, 26 }, 27 28 getInitialState: function () { 29 return { 30 isModalOpen: true, 31 }; 32 }, 33 34 hide: function() { 35 this.setState({isModalOpen:false}); 36 }, 37 38 renderCorpora: function() { 39 var that = this; 40 return this.props.corpora.map(function(corpus) { 41 var toggle = function() { 42 corpus.checked = !corpus.checked; 43 that.setState({corpora : corpora}); 44 }; 45 var input = corpus.checked ? 46 (RBInput({type: "checkbox", checked: true, label: corpus.displayName, onChange: toggle})) : 47 (RBInput({type: "checkbox", label: corpus.displayName, onChange: toggle})); 48 var records = corpus.numberOfRecords ? (corpus.numberOfRecords+" records") : ""; 49 var bold = {fontWeight:"bold"}; 50 var spaced = {marginRight:"20px"}; 51 return React.DOM.tr(null, 52 React.DOM.td(null, input), 53 React.DOM.td(null, React.DOM.p(null, corpus.description), 54 React.DOM.p(null, " ", React.DOM.span({style: bold}, "Institution:"), " ", React.DOM.span({style: spaced}, corpus.institution.name), 55 React.DOM.span({style: bold}, "Language:"), " ", React.DOM.span({style: spaced}, corpus.languages), 56 React.DOM.span(null, records) 57 ) 58 ) 59 ); 60 }); 61 }, 62 63 render: function() { 64 if (!this.state.isModalOpen) { 65 return React.DOM.span(null); 66 } 67 return this.transferPropsTo( 68 RBModal({title: "Collection selection", onRequestHide: this.hide}, 69 React.DOM.div({className: "modal-body"}, 70 React.DOM.div({className: "container"}, 71 React.DOM.form(null, 72 React.DOM.table({className: "table table-condensed table-striped table-responsive"}, 73 React.DOM.thead(null, 74 React.DOM.tr(null, 75 React.DOM.th(null, "Collection"), 76 React.DOM.th(null, "Description") 77 ) 78 ), 79 React.DOM.tbody(null, " ", this.renderCorpora(), " ") 80 ) 81 ) 82 ) 83 ), 84 React.DOM.div({className: "modal-footer"}, 85 RBButton({onClick: this.hide}, "Close") 86 ) 87 ) 88 ); 89 } 90 }); 91 var CorpusSelection = React.createClass({displayName: 'CorpusSelection', 92 propTypes: { 93 corpora: PT.array.isRequired, 94 }, 95 96 render: function() { 97 var style={width:"240px"}; 98 return RBModalTrigger({modal: CorpusSelectionModal({corpora: this.props.corpora})}, 99 RBButton({style: style, onClick: this.handleClick}, 100 "All available corpora", React.DOM.span({className: "caret"}) 101 ) 102 ); 103 } 104 }); 105 106 107 var LanguageSelection = React.createClass({displayName: 'LanguageSelection', 108 propTypes: { 109 languages: PT.array.isRequired, 110 }, 111 112 render: function() { 113 var options = this.props.languages.map(function(lang) { 114 var desc = lang.name + " [" + lang.code + "]"; 115 return React.DOM.option({value: lang.code, key: lang.code}, desc); 116 }); 117 var style={width:"240px"}; 118 return RBInput({type: "select", defaultValue: "ALL", style: style}, 119 React.DOM.option({value: "ALL", key: "ALL"}, "All languages"), 120 options 121 ); 122 } 123 }); 124 125 var HitNumber = React.createClass({displayName: 'HitNumber', 126 propTypes: { 127 onChange: PT.func.isRequired, 128 numberOfResults: PT.number.isRequired, 129 }, 130 131 handleChange: function(event) { 132 this.props.onChange(event.target.value); 133 }, 134 135 render: function() { 136 var fifty = {width:"50px"}; 137 return ( 138 React.DOM.div({className: "input-group", style: fifty}, 139 React.DOM.input({id: "hits", type: "number", className: "input", name: "maxResults", min: "10", max: "50", 140 value: this.props.numberOfResults, onChange: this.handleChange}) 141 ) ); 142 } 143 }); 144 145 var Search = React.createClass({displayName: 'Search', 146 propTypes: { 147 search: PT.func.isRequired, 148 }, 149 150 getInitialState: function () { 151 return { 152 query: "" 153 }; 154 }, 155 156 handleChange: function(event) { 157 this.setState({query: event.target.value}); 158 }, 159 160 search: function() { 161 this.props.search(this.state.query); 162 }, 163 164 render: function() { 165 return React.DOM.div({className: "input-group"}, 166 React.DOM.input({name: "query", type: "text", className: "form-control input-lg search", 167 value: this.state.query, placeholder: "Search", tabIndex: "1", 168 onChange: this.handleChange}), 169 React.DOM.div({className: "input-group-btn"}, 170 React.DOM.button({className: "btn btn-default input-lg search", type: "submit", tabIndex: "2", onClick: this.search}, 171 React.DOM.i({className: "glyphicon glyphicon-search"}) 172 ) 173 ) 174 ); 175 } 176 }); 177 178 var Results = React.createClass({displayName: 'Results', 179 propTypes: { 180 requests: PT.array.isRequired, 181 results: PT.array.isRequired, 182 }, 183 184 render: function() { 185 var fulllength = {width:"100%"}; 186 var margintop = {marginTop:"10px"}; 187 var sleft={textAlign:"left", verticalAlign:"middle", width:"50%"}; 188 var scenter={textAlign:"center", verticalAlign:"middle", maxWidth:"50%"}; 189 var sright={textAlign:"right", verticalAlign:"middle", maxWidth:"50%"}; 190 191 var resultPanels = this.props.results.map(function(corpusHit) { 192 var rows = corpusHit.kwics.map(function(hit,i) { 193 var spans = hit.fragments.map(function(tf, j) { 194 return React.DOM.span({key: j, className: tf.hit?"keyword":""}, tf.text); 195 }); 196 return React.DOM.p({key: i}, spans); 197 }); 198 if (corpusHit.kwics.length === 0) { 199 return React.DOM.span({key: corpusHit.corpus.displayName}); 200 } 201 return Panel({header: corpusHit.corpus.displayName, key: corpusHit.corpus.displayName}, 202 rows 203 ); 204 }); 205 var noHits = this.props.results.filter(function(corpusHit) { return corpusHit.kwics.length === 0; }); 206 var message = noHits.length > 0 ? (noHits.length + " other collections returned no results") : ""; 207 var percents = 100 * this.props.results.length / (this.props.requests.length + this.props.results.length); 208 var progress = this.props.requests.length > 0 ? 209 RBProgressBar({active: true, now: percents, label: "%(percent)s%"}) : 210 React.DOM.span(null); 211 return React.DOM.div(null, 212 ReactCSSTransitionGroup({transitionName: "fade"}, 213 resultPanels, 214 React.DOM.div({key: "-message-", style: margintop}, message, " "), 215 React.DOM.div({key: "-progress-", style: margintop}, progress) 216 ) 217 ); 218 } 219 }); 220 221 var Container = React.createClass({displayName: 'Container', 11 var Main = React.createClass({displayName: 'Main', 222 12 getInitialState: function () { 223 13 return { … … 230 20 numberOfResults: 10, 231 21 searchId: null, 232 timer: null,22 showCorpora: false, 233 23 }; 234 24 }, … … 288 78 url: 'rest/search/'+that.state.searchId, 289 79 success: function(json, textStatus, jqXHR) { 290 console.log("search result ok:", json);291 80 if (json.requests.length === 0) { 292 81 clearInterval(that.state.timerId); … … 301 90 }, 302 91 92 toggleCorpusSelection: function(e) { 93 this.setState({showCorpora:!this.state.showCorpora}); 94 e.preventDefault(); 95 e.stopPropagation(); 96 }, 97 98 renderCorpusSelection: function() { 99 var style={width:"240px"}; 100 return React.createElement("button", {type: "button", className: "btn btn-default", style: style, onClick: this.toggleCorpusSelection}, 101 "All available corpora", React.createElement("span", {className: "caret"}) 102 ); 103 }, 104 303 105 render: function() { 304 106 var margin = {marginTop:"0", padding:"20px"}; 305 107 var inline = {display:"inline-block", margin:"0 5px 0 0"}; 306 108 var inlinew = {display:"inline-block", margin:"0 5px 0 0", width:"240px;"}; 307 return ( 308 React.DOM.div(null, 309 React.DOM.div({className: "center-block top-gap"}, 310 Search({search: this.search}) 311 ), 312 React.DOM.div({className: "center-block aligncenter"}, 313 React.DOM.div({style: margin}, 314 React.DOM.form({className: "form-inline", role: "form"}, 315 React.DOM.label({htmlFor: "dropdownCorpus", className: "muted"}, "search in "), 316 React.DOM.div({id: "corpusSelection", style: inlinew}, 317 CorpusSelection({corpora: this.state.corpora}) 318 ), 319 React.DOM.label({htmlFor: "dropdownLanguage", className: "muted"}, " for results in "), 320 React.DOM.div({id: "languageSelection", style: inlinew}, 321 LanguageSelection({languages: this.state.languages}) 322 ), 323 React.DOM.label({className: "muted"}, " and show maximum "), 324 React.DOM.div({style: inline}, 325 HitNumber({onChange: this.setNumberOfResults, numberOfResults: this.state.numberOfResults}) 326 ), 327 React.DOM.label({htmlFor: "hits", className: "muted"}, " hits") 109 return React.createElement("div", null, 110 React.createElement("div", {className: "center-block top-gap"}, 111 React.createElement(SearchBox, {search: this.search}) 112 ), 113 React.createElement("div", {className: "center-block aligncenter"}, 114 React.createElement("div", {style: margin}, 115 React.createElement("form", {className: "form-inline", role: "form"}, 116 React.createElement("label", {htmlFor: "dropdownCorpus", className: "muted"}, "search in "), 117 React.createElement("div", {id: "corpusSelection", style: inlinew}, 118 this.renderCorpusSelection() 119 ), 120 React.createElement("label", {htmlFor: "dropdownLanguage", className: "muted"}, " for results in "), 121 React.createElement("div", {id: "languageSelection", style: inlinew}, 122 React.createElement(LanguageSelection, {languages: this.state.languages}) 123 ), 124 React.createElement("label", {className: "muted"}, " and show maximum "), 125 React.createElement("div", {style: inline}, 126 React.createElement(HitNumber, {onChange: this.setNumberOfResults, numberOfResults: this.state.numberOfResults}) 127 ), 128 React.createElement("label", {htmlFor: "hits", className: "muted"}, " hits") 129 ) 130 ) 131 ), 132 133 React.createElement("div", {className: "top-gap"}, 134 this.state.showCorpora ? 135 React.createElement(CorpusView, {corpora: this.state.corpora}) : 136 React.createElement(Results, {requests: this.state.hits.requests, results: this.state.hits.results}) 137 328 138 ) 329 ) 330 ), 331 332 333 React.DOM.div({id: "results", className: "top-gap"}, 334 Results({requests: this.state.hits.requests, results: this.state.hits.results}) 335 ) 336 ) ); 139 ) ; 337 140 } 338 141 }); 339 142 340 143 (function() { 341 var container = React.render Component(Container(null), document.getElementById('reactMain') );144 var container = React.render(React.createElement(Main, null), document.getElementById('reactMain') ); 342 145 container.refreshCorpora(); 343 146 container.refreshLanguages(); -
SRUAggregator/trunk/src/main/webapp/js/main.jsx
r5758 r5771 2 2 3 3 var PT = React.PropTypes; 4 var ReactCSSTransitionGroup = window.React.addons.CSSTransitionGroup;5 4 6 // react bootstrap components 7 var RBAccordion = window.ReactBootstrap.Accordion; 8 var RBPanel = window.ReactBootstrap.Panel; 9 var RBDropdownButton = window.ReactBootstrap.DropdownButton; 10 var RBMenuItem = window.ReactBootstrap.MenuItem; 11 var RBNavbar = window.ReactBootstrap.Navbar; 12 var RBNav = window.ReactBootstrap.Nav; 13 var RBNavItem = window.ReactBootstrap.NavItem; 14 var RBInput = window.ReactBootstrap.Input; 15 var RBButton = window.ReactBootstrap.Button; 16 var RBModal = window.ReactBootstrap.Modal; 17 var RBModalTrigger = window.ReactBootstrap.ModalTrigger; 18 var RBOverlayMixin = window.ReactBootstrap.OverlayMixin; 19 var RBProgressBar = window.ReactBootstrap.ProgressBar; 20 // own components 21 var Panel = window.MyReact.Panel; 5 var SearchBox = window.MyAggregator.SearchBox; 6 var CorpusSelection = window.MyAggregator.CorpusSelection; 7 var LanguageSelection = window.MyAggregator.LanguageSelection; 8 var HitNumber = window.MyAggregator.HitNumber; 9 var Results = window.MyAggregator.Results; 22 10 23 var CorpusSelectionModal = React.createClass({ 24 propTypes: { 25 corpora: PT.array.isRequired, 26 }, 27 28 getInitialState: function () { 29 return { 30 isModalOpen: true, 31 }; 32 }, 33 34 hide: function() { 35 this.setState({isModalOpen:false}); 36 }, 37 38 renderCorpora: function() { 39 var that = this; 40 return this.props.corpora.map(function(corpus) { 41 var toggle = function() { 42 corpus.checked = !corpus.checked; 43 that.setState({corpora : corpora}); 44 }; 45 var input = corpus.checked ? 46 (<RBInput type="checkbox" checked label={corpus.displayName} onChange={toggle}/>) : 47 (<RBInput type="checkbox" label={corpus.displayName} onChange={toggle}/>); 48 var records = corpus.numberOfRecords ? (corpus.numberOfRecords+" records") : ""; 49 var bold = {fontWeight:"bold"}; 50 var spaced = {marginRight:"20px"}; 51 return <tr> 52 <td>{input}</td> 53 <td><p>{corpus.description}</p> 54 <p> <span style={bold}>Institution:</span> <span style={spaced}>{corpus.institution.name}</span> 55 <span style={bold}>Language:</span> <span style={spaced}>{corpus.languages}</span> 56 <span>{records}</span> 57 </p> 58 </td> 59 </tr>; 60 }); 61 }, 62 63 render: function() { 64 if (!this.state.isModalOpen) { 65 return <span/>; 66 } 67 return this.transferPropsTo( 68 <RBModal title="Collection selection" onRequestHide={this.hide}> 69 <div className="modal-body"> 70 <div className="container"> 71 <form> 72 <table className="table table-condensed table-striped table-responsive"> 73 <thead> 74 <tr> 75 <th>Collection</th> 76 <th>Description</th> 77 </tr> 78 </thead> 79 <tbody> {this.renderCorpora()} </tbody> 80 </table> 81 </form> 82 </div> 83 </div> 84 <div className="modal-footer"> 85 <RBButton onClick={this.hide}>Close</RBButton> 86 </div> 87 </RBModal> 88 ); 89 } 90 }); 91 var CorpusSelection = React.createClass({ 92 propTypes: { 93 corpora: PT.array.isRequired, 94 }, 95 96 render: function() { 97 var style={width:"240px"}; 98 return <RBModalTrigger modal={<CorpusSelectionModal corpora={this.props.corpora}/>}> 99 <RBButton style={style} onClick={this.handleClick}> 100 All available corpora<span className="caret"></span> 101 </RBButton> 102 </RBModalTrigger>; 103 } 104 }); 105 106 107 var LanguageSelection = React.createClass({ 108 propTypes: { 109 languages: PT.array.isRequired, 110 }, 111 112 render: function() { 113 var options = this.props.languages.map(function(lang) { 114 var desc = lang.name + " [" + lang.code + "]"; 115 return <option value={lang.code} key={lang.code}>{desc}</option>; 116 }); 117 var style={width:"240px"}; 118 return <RBInput type="select" defaultValue="ALL" style={style}> 119 <option value="ALL" key="ALL">All languages</option> 120 {options} 121 </RBInput>; 122 } 123 }); 124 125 var HitNumber = React.createClass({ 126 propTypes: { 127 onChange: PT.func.isRequired, 128 numberOfResults: PT.number.isRequired, 129 }, 130 131 handleChange: function(event) { 132 this.props.onChange(event.target.value); 133 }, 134 135 render: function() { 136 var fifty = {width:"50px"}; 137 return ( 138 <div className="input-group" style={fifty}> 139 <input id="hits" type="number" className="input" name="maxResults" min="10" max="50" 140 value={this.props.numberOfResults} onChange={this.handleChange}></input> 141 </div> ); 142 } 143 }); 144 145 var Search = React.createClass({ 146 propTypes: { 147 search: PT.func.isRequired, 148 }, 149 150 getInitialState: function () { 151 return { 152 query: "" 153 }; 154 }, 155 156 handleChange: function(event) { 157 this.setState({query: event.target.value}); 158 }, 159 160 search: function() { 161 this.props.search(this.state.query); 162 }, 163 164 render: function() { 165 return <div className="input-group"> 166 <input name="query" type="text" className="form-control input-lg search" 167 value={this.state.query} placeholder="Search" tabIndex="1" 168 onChange={this.handleChange}></input> 169 <div className="input-group-btn"> 170 <button className="btn btn-default input-lg search" type="submit" tabIndex="2" onClick={this.search}> 171 <i className="glyphicon glyphicon-search"></i> 172 </button> 173 </div> 174 </div>; 175 } 176 }); 177 178 var Results = React.createClass({ 179 propTypes: { 180 requests: PT.array.isRequired, 181 results: PT.array.isRequired, 182 }, 183 184 render: function() { 185 var fulllength = {width:"100%"}; 186 var margintop = {marginTop:"10px"}; 187 var sleft={textAlign:"left", verticalAlign:"middle", width:"50%"}; 188 var scenter={textAlign:"center", verticalAlign:"middle", maxWidth:"50%"}; 189 var sright={textAlign:"right", verticalAlign:"middle", maxWidth:"50%"}; 190 191 var resultPanels = this.props.results.map(function(corpusHit) { 192 var rows = corpusHit.kwics.map(function(hit,i) { 193 var spans = hit.fragments.map(function(tf, j) { 194 return <span key={j} className={tf.hit?"keyword":""}>{tf.text}</span>; 195 }); 196 return <p key={i}>{spans}</p>; 197 }); 198 if (corpusHit.kwics.length === 0) { 199 return <span key={corpusHit.corpus.displayName}></span>; 200 } 201 return <Panel header={corpusHit.corpus.displayName} key={corpusHit.corpus.displayName}> 202 {rows} 203 </Panel>; 204 }); 205 var noHits = this.props.results.filter(function(corpusHit) { return corpusHit.kwics.length === 0; }); 206 var message = noHits.length > 0 ? (noHits.length + " other collections returned no results") : ""; 207 var percents = 100 * this.props.results.length / (this.props.requests.length + this.props.results.length); 208 var progress = this.props.requests.length > 0 ? 209 <RBProgressBar active now={percents} label="%(percent)s%" /> : 210 <span />; 211 return <div> 212 <ReactCSSTransitionGroup transitionName="fade"> 213 {resultPanels} 214 <div key="-message-" style={margintop}>{message} </div> 215 <div key="-progress-" style={margintop}>{progress}</div> 216 </ReactCSSTransitionGroup> 217 </div>; 218 } 219 }); 220 221 var Container = React.createClass({ 11 var Main = React.createClass({ 222 12 getInitialState: function () { 223 13 return { … … 230 20 numberOfResults: 10, 231 21 searchId: null, 232 timer: null,22 showCorpora: false, 233 23 }; 234 24 }, … … 288 78 url: 'rest/search/'+that.state.searchId, 289 79 success: function(json, textStatus, jqXHR) { 290 console.log("search result ok:", json);291 80 if (json.requests.length === 0) { 292 81 clearInterval(that.state.timerId); … … 301 90 }, 302 91 92 toggleCorpusSelection: function(e) { 93 this.setState({showCorpora:!this.state.showCorpora}); 94 e.preventDefault(); 95 e.stopPropagation(); 96 }, 97 98 renderCorpusSelection: function() { 99 var style={width:"240px"}; 100 return <button type="button" className="btn btn-default" style={style} onClick={this.toggleCorpusSelection}> 101 All available corpora<span className="caret"></span> 102 </button>; 103 }, 104 303 105 render: function() { 304 106 var margin = {marginTop:"0", padding:"20px"}; 305 107 var inline = {display:"inline-block", margin:"0 5px 0 0"}; 306 108 var inlinew = {display:"inline-block", margin:"0 5px 0 0", width:"240px;"}; 307 return ( 308 <div> 309 <div className="center-block top-gap"> 310 <Search search={this.search} /> 311 </div> 312 <div className="center-block aligncenter"> 313 <div style={margin}> 314 <form className="form-inline" role="form"> 315 <label htmlFor="dropdownCorpus" className="muted">search in </label> 316 <div id="corpusSelection" style={inlinew}> 317 <CorpusSelection corpora={this.state.corpora} /> 109 return <div> 110 <div className="center-block top-gap"> 111 <SearchBox search={this.search} /> 112 </div> 113 <div className="center-block aligncenter"> 114 <div style={margin}> 115 <form className="form-inline" role="form"> 116 <label htmlFor="dropdownCorpus" className="muted">search in </label> 117 <div id="corpusSelection" style={inlinew}> 118 {this.renderCorpusSelection()} 119 </div> 120 <label htmlFor="dropdownLanguage" className="muted"> for results in </label> 121 <div id="languageSelection" style={inlinew}> 122 <LanguageSelection languages={this.state.languages} /> 123 </div> 124 <label className="muted"> and show maximum </label> 125 <div style={inline}> 126 <HitNumber onChange={this.setNumberOfResults} numberOfResults={this.state.numberOfResults} /> 127 </div> 128 <label htmlFor="hits" className="muted"> hits</label> 129 </form> 318 130 </div> 319 <label htmlFor="dropdownLanguage" className="muted"> for results in </label>320 <div id="languageSelection" style={inlinew}>321 <LanguageSelection languages={this.state.languages} />322 </div>323 <label className="muted"> and show maximum </label>324 <div style={inline}>325 <HitNumber onChange={this.setNumberOfResults} numberOfResults={this.state.numberOfResults} />326 </div>327 <label htmlFor="hits" className="muted"> hits</label>328 </form>329 131 </div> 330 </div>331 132 332 333 <div id="results" className="top-gap"> 334 <Results requests={this.state.hits.requests} results={this.state.hits.results} /> 335 </div> 336 </div> ); 133 <div className="top-gap"> 134 { this.state.showCorpora ? 135 <CorpusView corpora={this.state.corpora} /> : 136 <Results requests={this.state.hits.requests} results={this.state.hits.results} /> 137 } 138 </div> 139 </div> ; 337 140 } 338 141 }); 339 142 340 143 (function() { 341 var container = React.render Component(<Container/>, document.getElementById('reactMain') );144 var container = React.render(<Main />, document.getElementById('reactMain') ); 342 145 container.refreshCorpora(); 343 146 container.refreshLanguages(); -
SRUAggregator/trunk/src/main/webapp/lib/bootstrap.min.css
r5720 r5771 1 1 /*! 2 * Bootstrap v3. 2.0 (http://getbootstrap.com)2 * Bootstrap v3.3.0 (http://getbootstrap.com) 3 3 * Copyright 2011-2014 Twitter, Inc. 4 4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 *//*! normalize.css v3.0. 1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;width:100% \9;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.42857143 \0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-horizontal .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{position:absolute;z-index:-1;filter:alpha(opacity=0);opacity:0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar[aria-valuenow="1"],.progress-bar[aria-valuenow="2"]{min-width:30px}.progress-bar[aria-valuenow="0"]{min-width:30px;color:#777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate3d(0,-25%,0);-o-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0)}.modal.in .modal-dialog{-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}5 *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:before,:after{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.42857143 \0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px;line-height:1.5 \0}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px;line-height:1.33 \0}_:-ms-fullscreen,:root input[type=date],_:-ms-fullscreen,:root input[type=time],_:-ms-fullscreen,:root input[type=datetime-local],_:-ms-fullscreen,:root input[type=month]{line-height:1.42857143}_:-ms-fullscreen.input-sm,:root input[type=date].input-sm,_:-ms-fullscreen.input-sm,:root input[type=time].input-sm,_:-ms-fullscreen.input-sm,:root input[type=datetime-local].input-sm,_:-ms-fullscreen.input-sm,:root input[type=month].input-sm{line-height:1.5}_:-ms-fullscreen.input-lg,:root input[type=date].input-lg,_:-ms-fullscreen.input-lg,:root input[type=time].input-lg,_:-ms-fullscreen.input-lg,:root input[type=datetime-local].input-lg,_:-ms-fullscreen.input-lg,:root input[type=month].input-lg{line-height:1.33}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,select.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,select.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#428bca;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} -
SRUAggregator/trunk/src/main/webapp/lib/react-with-addons.js
r5758 r5771 1 1 /** 2 * React (with addons) v0.11.2 3 */ 4 !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.React=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ 5 /** 6 * Copyright 2013-2014 Facebook, Inc. 7 * 8 * Licensed under the Apache License, Version 2.0 (the "License"); 9 * you may not use this file except in compliance with the License. 10 * You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 2 * React (with addons) v0.12.0 3 */ 4 !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.React=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ 5 /** 6 * Copyright 2013-2014, Facebook, Inc. 7 * All rights reserved. 8 * 9 * This source code is licensed under the BSD-style license found in the 10 * LICENSE file in the root directory of this source tree. An additional grant 11 * of patent rights can be found in the PATENTS file in the same directory. 12 * 13 * @providesModule ReactWithAddons 14 */ 15 16 /** 17 * This module exists purely in the open source project, and is meant as a way 18 * to create a separate standalone build of React. This build has "addons", or 19 * functionality we've built and think might be useful but doesn't have a good 20 * place to live inside React core. 21 */ 22 23 "use strict"; 24 25 var LinkedStateMixin = _dereq_("./LinkedStateMixin"); 26 var React = _dereq_("./React"); 27 var ReactComponentWithPureRenderMixin = 28 _dereq_("./ReactComponentWithPureRenderMixin"); 29 var ReactCSSTransitionGroup = _dereq_("./ReactCSSTransitionGroup"); 30 var ReactTransitionGroup = _dereq_("./ReactTransitionGroup"); 31 var ReactUpdates = _dereq_("./ReactUpdates"); 32 33 var cx = _dereq_("./cx"); 34 var cloneWithProps = _dereq_("./cloneWithProps"); 35 var update = _dereq_("./update"); 36 37 React.addons = { 38 CSSTransitionGroup: ReactCSSTransitionGroup, 39 LinkedStateMixin: LinkedStateMixin, 40 PureRenderMixin: ReactComponentWithPureRenderMixin, 41 TransitionGroup: ReactTransitionGroup, 42 43 batchedUpdates: ReactUpdates.batchedUpdates, 44 classSet: cx, 45 cloneWithProps: cloneWithProps, 46 update: update 47 }; 48 49 if ("production" !== "development") { 50 React.addons.Perf = _dereq_("./ReactDefaultPerf"); 51 React.addons.TestUtils = _dereq_("./ReactTestUtils"); 52 } 53 54 module.exports = React; 55 56 },{"./LinkedStateMixin":25,"./React":31,"./ReactCSSTransitionGroup":34,"./ReactComponentWithPureRenderMixin":39,"./ReactDefaultPerf":56,"./ReactTestUtils":86,"./ReactTransitionGroup":90,"./ReactUpdates":91,"./cloneWithProps":113,"./cx":118,"./update":159}],2:[function(_dereq_,module,exports){ 57 /** 58 * Copyright 2013-2014, Facebook, Inc. 59 * All rights reserved. 60 * 61 * This source code is licensed under the BSD-style license found in the 62 * LICENSE file in the root directory of this source tree. An additional grant 63 * of patent rights can be found in the PATENTS file in the same directory. 19 64 * 20 65 * @providesModule AutoFocusMixin … … 36 81 module.exports = AutoFocusMixin; 37 82 38 },{"./focusNode":12 0}],2:[function(_dereq_,module,exports){83 },{"./focusNode":125}],3:[function(_dereq_,module,exports){ 39 84 /** 40 85 * Copyright 2013 Facebook, Inc. 41 * 42 * Licensed under the Apache License, Version 2.0 (the "License"); 43 * you may not use this file except in compliance with the License. 44 * You may obtain a copy of the License at 45 * 46 * http://www.apache.org/licenses/LICENSE-2.0 47 * 48 * Unless required by applicable law or agreed to in writing, software 49 * distributed under the License is distributed on an "AS IS" BASIS, 50 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 51 * See the License for the specific language governing permissions and 52 * limitations under the License. 86 * All rights reserved. 87 * 88 * This source code is licensed under the BSD-style license found in the 89 * LICENSE file in the root directory of this source tree. An additional grant 90 * of patent rights can be found in the PATENTS file in the same directory. 53 91 * 54 92 * @providesModule BeforeInputEventPlugin … … 107 145 // Track characters inserted via keypress and composition events. 108 146 var fallbackChars = null; 147 148 // Track whether we've ever handled a keypress on the space key. 149 var hasSpaceKeypress = false; 109 150 110 151 /** … … 177 218 } 178 219 179 chars = String.fromCharCode(which); 220 hasSpaceKeypress = true; 221 chars = SPACEBAR_CHAR; 180 222 break; 181 223 … … 185 227 186 228 // If it's a spacebar character, assume that we have already handled 187 // it at the keypress level and bail immediately. 188 if (chars === SPACEBAR_CHAR) { 229 // it at the keypress level and bail immediately. Android Chrome 230 // doesn't give us keycodes, so we need to blacklist it. 231 if (chars === SPACEBAR_CHAR && hasSpaceKeypress) { 189 232 return; 190 233 } … … 260 303 module.exports = BeforeInputEventPlugin; 261 304 262 },{"./EventConstants":16,"./EventPropagators":21,"./ExecutionEnvironment":22,"./SyntheticInputEvent":98,"./keyOf":141}],3:[function(_dereq_,module,exports){ 263 /** 264 * Copyright 2013-2014 Facebook, Inc. 265 * 266 * Licensed under the Apache License, Version 2.0 (the "License"); 267 * you may not use this file except in compliance with the License. 268 * You may obtain a copy of the License at 269 * 270 * http://www.apache.org/licenses/LICENSE-2.0 271 * 272 * Unless required by applicable law or agreed to in writing, software 273 * distributed under the License is distributed on an "AS IS" BASIS, 274 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 275 * See the License for the specific language governing permissions and 276 * limitations under the License. 305 },{"./EventConstants":17,"./EventPropagators":22,"./ExecutionEnvironment":23,"./SyntheticInputEvent":101,"./keyOf":147}],4:[function(_dereq_,module,exports){ 306 /** 307 * Copyright 2013-2014, Facebook, Inc. 308 * All rights reserved. 309 * 310 * This source code is licensed under the BSD-style license found in the 311 * LICENSE file in the root directory of this source tree. An additional grant 312 * of patent rights can be found in the PATENTS file in the same directory. 277 313 * 278 314 * @providesModule CSSCore … … 360 396 * @param {DOMNode|DOMWindow} element the element to set the class on 361 397 * @param {string} className the CSS className 362 * @return s{boolean} true if the element has the class, false if not398 * @return {boolean} true if the element has the class, false if not 363 399 */ 364 400 hasClass: function(element, className) { … … 377 413 module.exports = CSSCore; 378 414 379 },{"./invariant":134}],4:[function(_dereq_,module,exports){ 380 /** 381 * Copyright 2013-2014 Facebook, Inc. 382 * 383 * Licensed under the Apache License, Version 2.0 (the "License"); 384 * you may not use this file except in compliance with the License. 385 * You may obtain a copy of the License at 386 * 387 * http://www.apache.org/licenses/LICENSE-2.0 388 * 389 * Unless required by applicable law or agreed to in writing, software 390 * distributed under the License is distributed on an "AS IS" BASIS, 391 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 392 * See the License for the specific language governing permissions and 393 * limitations under the License. 415 },{"./invariant":140}],5:[function(_dereq_,module,exports){ 416 /** 417 * Copyright 2013-2014, Facebook, Inc. 418 * All rights reserved. 419 * 420 * This source code is licensed under the BSD-style license found in the 421 * LICENSE file in the root directory of this source tree. An additional grant 422 * of patent rights can be found in the PATENTS file in the same directory. 394 423 * 395 424 * @providesModule CSSProperty … … 500 529 module.exports = CSSProperty; 501 530 502 },{}],5:[function(_dereq_,module,exports){ 503 /** 504 * Copyright 2013-2014 Facebook, Inc. 505 * 506 * Licensed under the Apache License, Version 2.0 (the "License"); 507 * you may not use this file except in compliance with the License. 508 * You may obtain a copy of the License at 509 * 510 * http://www.apache.org/licenses/LICENSE-2.0 511 * 512 * Unless required by applicable law or agreed to in writing, software 513 * distributed under the License is distributed on an "AS IS" BASIS, 514 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 515 * See the License for the specific language governing permissions and 516 * limitations under the License. 531 },{}],6:[function(_dereq_,module,exports){ 532 /** 533 * Copyright 2013-2014, Facebook, Inc. 534 * All rights reserved. 535 * 536 * This source code is licensed under the BSD-style license found in the 537 * LICENSE file in the root directory of this source tree. An additional grant 538 * of patent rights can be found in the PATENTS file in the same directory. 517 539 * 518 540 * @providesModule CSSPropertyOperations … … 523 545 524 546 var CSSProperty = _dereq_("./CSSProperty"); 525 547 var ExecutionEnvironment = _dereq_("./ExecutionEnvironment"); 548 549 var camelizeStyleName = _dereq_("./camelizeStyleName"); 526 550 var dangerousStyleValue = _dereq_("./dangerousStyleValue"); 527 551 var hyphenateStyleName = _dereq_("./hyphenateStyleName"); 528 552 var memoizeStringOnly = _dereq_("./memoizeStringOnly"); 553 var warning = _dereq_("./warning"); 529 554 530 555 var processStyleName = memoizeStringOnly(function(styleName) { 531 556 return hyphenateStyleName(styleName); 532 557 }); 558 559 var styleFloatAccessor = 'cssFloat'; 560 if (ExecutionEnvironment.canUseDOM) { 561 // IE8 only supports accessing cssFloat (standard) as styleFloat 562 if (document.documentElement.style.cssFloat === undefined) { 563 styleFloatAccessor = 'styleFloat'; 564 } 565 } 566 567 if ("production" !== "development") { 568 var warnedStyleNames = {}; 569 570 var warnHyphenatedStyleName = function(name) { 571 if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { 572 return; 573 } 574 575 warnedStyleNames[name] = true; 576 ("production" !== "development" ? warning( 577 false, 578 'Unsupported style property ' + name + '. Did you mean ' + 579 camelizeStyleName(name) + '?' 580 ) : null); 581 }; 582 } 533 583 534 584 /** … … 555 605 continue; 556 606 } 607 if ("production" !== "development") { 608 if (styleName.indexOf('-') > -1) { 609 warnHyphenatedStyleName(styleName); 610 } 611 } 557 612 var styleValue = styles[styleName]; 558 613 if (styleValue != null) { … … 577 632 continue; 578 633 } 634 if ("production" !== "development") { 635 if (styleName.indexOf('-') > -1) { 636 warnHyphenatedStyleName(styleName); 637 } 638 } 579 639 var styleValue = dangerousStyleValue(styleName, styles[styleName]); 640 if (styleName === 'float') { 641 styleName = styleFloatAccessor; 642 } 580 643 if (styleValue) { 581 644 style[styleName] = styleValue; … … 599 662 module.exports = CSSPropertyOperations; 600 663 601 },{"./CSSProperty":4,"./dangerousStyleValue":115,"./hyphenateStyleName":132,"./memoizeStringOnly":143}],6:[function(_dereq_,module,exports){ 602 /** 603 * Copyright 2013-2014 Facebook, Inc. 604 * 605 * Licensed under the Apache License, Version 2.0 (the "License"); 606 * you may not use this file except in compliance with the License. 607 * You may obtain a copy of the License at 608 * 609 * http://www.apache.org/licenses/LICENSE-2.0 610 * 611 * Unless required by applicable law or agreed to in writing, software 612 * distributed under the License is distributed on an "AS IS" BASIS, 613 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 614 * See the License for the specific language governing permissions and 615 * limitations under the License. 664 },{"./CSSProperty":5,"./ExecutionEnvironment":23,"./camelizeStyleName":112,"./dangerousStyleValue":119,"./hyphenateStyleName":138,"./memoizeStringOnly":149,"./warning":160}],7:[function(_dereq_,module,exports){ 665 /** 666 * Copyright 2013-2014, Facebook, Inc. 667 * All rights reserved. 668 * 669 * This source code is licensed under the BSD-style license found in the 670 * LICENSE file in the root directory of this source tree. An additional grant 671 * of patent rights can be found in the PATENTS file in the same directory. 616 672 * 617 673 * @providesModule CallbackQueue … … 622 678 var PooledClass = _dereq_("./PooledClass"); 623 679 680 var assign = _dereq_("./Object.assign"); 624 681 var invariant = _dereq_("./invariant"); 625 var mixInto = _dereq_("./mixInto");626 682 627 683 /** … … 641 697 } 642 698 643 mixInto(CallbackQueue, {699 assign(CallbackQueue.prototype, { 644 700 645 701 /** … … 704 760 module.exports = CallbackQueue; 705 761 706 },{"./PooledClass":28,"./invariant":134,"./mixInto":147}],7:[function(_dereq_,module,exports){ 707 /** 708 * Copyright 2013-2014 Facebook, Inc. 709 * 710 * Licensed under the Apache License, Version 2.0 (the "License"); 711 * you may not use this file except in compliance with the License. 712 * You may obtain a copy of the License at 713 * 714 * http://www.apache.org/licenses/LICENSE-2.0 715 * 716 * Unless required by applicable law or agreed to in writing, software 717 * distributed under the License is distributed on an "AS IS" BASIS, 718 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 719 * See the License for the specific language governing permissions and 720 * limitations under the License. 762 },{"./Object.assign":29,"./PooledClass":30,"./invariant":140}],8:[function(_dereq_,module,exports){ 763 /** 764 * Copyright 2013-2014, Facebook, Inc. 765 * All rights reserved. 766 * 767 * This source code is licensed under the BSD-style license found in the 768 * LICENSE file in the root directory of this source tree. An additional grant 769 * of patent rights can be found in the PATENTS file in the same directory. 721 770 * 722 771 * @providesModule ChangeEventPlugin … … 1093 1142 module.exports = ChangeEventPlugin; 1094 1143 1095 },{"./EventConstants":16,"./EventPluginHub":18,"./EventPropagators":21,"./ExecutionEnvironment":22,"./ReactUpdates":87,"./SyntheticEvent":96,"./isEventSupported":135,"./isTextInputElement":137,"./keyOf":141}],8:[function(_dereq_,module,exports){ 1096 /** 1097 * Copyright 2013-2014 Facebook, Inc. 1098 * 1099 * Licensed under the Apache License, Version 2.0 (the "License"); 1100 * you may not use this file except in compliance with the License. 1101 * You may obtain a copy of the License at 1102 * 1103 * http://www.apache.org/licenses/LICENSE-2.0 1104 * 1105 * Unless required by applicable law or agreed to in writing, software 1106 * distributed under the License is distributed on an "AS IS" BASIS, 1107 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1108 * See the License for the specific language governing permissions and 1109 * limitations under the License. 1144 },{"./EventConstants":17,"./EventPluginHub":19,"./EventPropagators":22,"./ExecutionEnvironment":23,"./ReactUpdates":91,"./SyntheticEvent":99,"./isEventSupported":141,"./isTextInputElement":143,"./keyOf":147}],9:[function(_dereq_,module,exports){ 1145 /** 1146 * Copyright 2013-2014, Facebook, Inc. 1147 * All rights reserved. 1148 * 1149 * This source code is licensed under the BSD-style license found in the 1150 * LICENSE file in the root directory of this source tree. An additional grant 1151 * of patent rights can be found in the PATENTS file in the same directory. 1110 1152 * 1111 1153 * @providesModule ClientReactRootIndex … … 1125 1167 module.exports = ClientReactRootIndex; 1126 1168 1127 },{}],9:[function(_dereq_,module,exports){ 1128 /** 1129 * Copyright 2013-2014 Facebook, Inc. 1130 * 1131 * Licensed under the Apache License, Version 2.0 (the "License"); 1132 * you may not use this file except in compliance with the License. 1133 * You may obtain a copy of the License at 1134 * 1135 * http://www.apache.org/licenses/LICENSE-2.0 1136 * 1137 * Unless required by applicable law or agreed to in writing, software 1138 * distributed under the License is distributed on an "AS IS" BASIS, 1139 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1140 * See the License for the specific language governing permissions and 1141 * limitations under the License. 1169 },{}],10:[function(_dereq_,module,exports){ 1170 /** 1171 * Copyright 2013-2014, Facebook, Inc. 1172 * All rights reserved. 1173 * 1174 * This source code is licensed under the BSD-style license found in the 1175 * LICENSE file in the root directory of this source tree. An additional grant 1176 * of patent rights can be found in the PATENTS file in the same directory. 1142 1177 * 1143 1178 * @providesModule CompositionEventPlugin … … 1391 1426 module.exports = CompositionEventPlugin; 1392 1427 1393 },{"./EventConstants":16,"./EventPropagators":21,"./ExecutionEnvironment":22,"./ReactInputSelection":63,"./SyntheticCompositionEvent":94,"./getTextContentAccessor":129,"./keyOf":141}],10:[function(_dereq_,module,exports){ 1394 /** 1395 * Copyright 2013-2014 Facebook, Inc. 1396 * 1397 * Licensed under the Apache License, Version 2.0 (the "License"); 1398 * you may not use this file except in compliance with the License. 1399 * You may obtain a copy of the License at 1400 * 1401 * http://www.apache.org/licenses/LICENSE-2.0 1402 * 1403 * Unless required by applicable law or agreed to in writing, software 1404 * distributed under the License is distributed on an "AS IS" BASIS, 1405 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1406 * See the License for the specific language governing permissions and 1407 * limitations under the License. 1428 },{"./EventConstants":17,"./EventPropagators":22,"./ExecutionEnvironment":23,"./ReactInputSelection":65,"./SyntheticCompositionEvent":97,"./getTextContentAccessor":135,"./keyOf":147}],11:[function(_dereq_,module,exports){ 1429 /** 1430 * Copyright 2013-2014, Facebook, Inc. 1431 * All rights reserved. 1432 * 1433 * This source code is licensed under the BSD-style license found in the 1434 * LICENSE file in the root directory of this source tree. An additional grant 1435 * of patent rights can be found in the PATENTS file in the same directory. 1408 1436 * 1409 1437 * @providesModule DOMChildrenOperations … … 1513 1541 'probably means the DOM was unexpectedly mutated (e.g., by the ' + 1514 1542 'browser), usually due to forgetting a <tbody> when using tables, ' + 1515 'nesting <p> or <a> tags, or using non-SVG elements in an <svg>'+1516 ' parent. Try inspecting the child nodes of the element with React ' +1517 ' ID `%s`.',1543 'nesting tags like <form>, <p>, or <a>, or using non-SVG elements '+ 1544 'in an <svg> parent. Try inspecting the child nodes of the element ' + 1545 'with React ID `%s`.', 1518 1546 updatedIndex, 1519 1547 parentID … … 1571 1599 module.exports = DOMChildrenOperations; 1572 1600 1573 },{"./Danger":13,"./ReactMultiChildUpdateTypes":69,"./getTextContentAccessor":129,"./invariant":134}],11:[function(_dereq_,module,exports){ 1574 /** 1575 * Copyright 2013-2014 Facebook, Inc. 1576 * 1577 * Licensed under the Apache License, Version 2.0 (the "License"); 1578 * you may not use this file except in compliance with the License. 1579 * You may obtain a copy of the License at 1580 * 1581 * http://www.apache.org/licenses/LICENSE-2.0 1582 * 1583 * Unless required by applicable law or agreed to in writing, software 1584 * distributed under the License is distributed on an "AS IS" BASIS, 1585 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1586 * See the License for the specific language governing permissions and 1587 * limitations under the License. 1601 },{"./Danger":14,"./ReactMultiChildUpdateTypes":72,"./getTextContentAccessor":135,"./invariant":140}],12:[function(_dereq_,module,exports){ 1602 /** 1603 * Copyright 2013-2014, Facebook, Inc. 1604 * All rights reserved. 1605 * 1606 * This source code is licensed under the BSD-style license found in the 1607 * LICENSE file in the root directory of this source tree. An additional grant 1608 * of patent rights can be found in the PATENTS file in the same directory. 1588 1609 * 1589 1610 * @providesModule DOMProperty … … 1596 1617 1597 1618 var invariant = _dereq_("./invariant"); 1619 1620 function checkMask(value, bitmask) { 1621 return (value & bitmask) === bitmask; 1622 } 1598 1623 1599 1624 var DOMPropertyInjection = { … … 1683 1708 var propConfig = Properties[propName]; 1684 1709 DOMProperty.mustUseAttribute[propName] = 1685 propConfig & DOMPropertyInjection.MUST_USE_ATTRIBUTE;1710 checkMask(propConfig, DOMPropertyInjection.MUST_USE_ATTRIBUTE); 1686 1711 DOMProperty.mustUseProperty[propName] = 1687 propConfig & DOMPropertyInjection.MUST_USE_PROPERTY;1712 checkMask(propConfig, DOMPropertyInjection.MUST_USE_PROPERTY); 1688 1713 DOMProperty.hasSideEffects[propName] = 1689 propConfig & DOMPropertyInjection.HAS_SIDE_EFFECTS;1714 checkMask(propConfig, DOMPropertyInjection.HAS_SIDE_EFFECTS); 1690 1715 DOMProperty.hasBooleanValue[propName] = 1691 propConfig & DOMPropertyInjection.HAS_BOOLEAN_VALUE;1716 checkMask(propConfig, DOMPropertyInjection.HAS_BOOLEAN_VALUE); 1692 1717 DOMProperty.hasNumericValue[propName] = 1693 propConfig & DOMPropertyInjection.HAS_NUMERIC_VALUE;1718 checkMask(propConfig, DOMPropertyInjection.HAS_NUMERIC_VALUE); 1694 1719 DOMProperty.hasPositiveNumericValue[propName] = 1695 propConfig & DOMPropertyInjection.HAS_POSITIVE_NUMERIC_VALUE;1720 checkMask(propConfig, DOMPropertyInjection.HAS_POSITIVE_NUMERIC_VALUE); 1696 1721 DOMProperty.hasOverloadedBooleanValue[propName] = 1697 propConfig & DOMPropertyInjection.HAS_OVERLOADED_BOOLEAN_VALUE;1722 checkMask(propConfig, DOMPropertyInjection.HAS_OVERLOADED_BOOLEAN_VALUE); 1698 1723 1699 1724 ("production" !== "development" ? invariant( … … 1871 1896 module.exports = DOMProperty; 1872 1897 1873 },{"./invariant":134}],12:[function(_dereq_,module,exports){ 1874 /** 1875 * Copyright 2013-2014 Facebook, Inc. 1876 * 1877 * Licensed under the Apache License, Version 2.0 (the "License"); 1878 * you may not use this file except in compliance with the License. 1879 * You may obtain a copy of the License at 1880 * 1881 * http://www.apache.org/licenses/LICENSE-2.0 1882 * 1883 * Unless required by applicable law or agreed to in writing, software 1884 * distributed under the License is distributed on an "AS IS" BASIS, 1885 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1886 * See the License for the specific language governing permissions and 1887 * limitations under the License. 1898 },{"./invariant":140}],13:[function(_dereq_,module,exports){ 1899 /** 1900 * Copyright 2013-2014, Facebook, Inc. 1901 * All rights reserved. 1902 * 1903 * This source code is licensed under the BSD-style license found in the 1904 * LICENSE file in the root directory of this source tree. An additional grant 1905 * of patent rights can be found in the PATENTS file in the same directory. 1888 1906 * 1889 1907 * @providesModule DOMPropertyOperations … … 2012 2030 this.deleteValueForProperty(node, name); 2013 2031 } else if (DOMProperty.mustUseAttribute[name]) { 2032 // `setAttribute` with objects becomes only `[object]` in IE8/9, 2033 // ('' + value) makes it output the correct toString()-value. 2014 2034 node.setAttribute(DOMProperty.getAttributeName[name], '' + value); 2015 2035 } else { 2016 2036 var propName = DOMProperty.getPropertyName[name]; 2017 if (!DOMProperty.hasSideEffects[name] || node[propName] !== value) { 2037 // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the 2038 // property type before comparing; only `value` does and is string. 2039 if (!DOMProperty.hasSideEffects[name] || 2040 ('' + node[propName]) !== ('' + value)) { 2041 // Contrary to `setAttribute`, object properties are properly 2042 // `toString`ed by IE8/9. 2018 2043 node[propName] = value; 2019 2044 } … … 2051 2076 ); 2052 2077 if (!DOMProperty.hasSideEffects[name] || 2053 node[propName]!== defaultValue) {2078 ('' + node[propName]) !== defaultValue) { 2054 2079 node[propName] = defaultValue; 2055 2080 } … … 2066 2091 module.exports = DOMPropertyOperations; 2067 2092 2068 },{"./DOMProperty":11,"./escapeTextForBrowser":118,"./memoizeStringOnly":143,"./warning":158}],13:[function(_dereq_,module,exports){ 2069 /** 2070 * Copyright 2013-2014 Facebook, Inc. 2071 * 2072 * Licensed under the Apache License, Version 2.0 (the "License"); 2073 * you may not use this file except in compliance with the License. 2074 * You may obtain a copy of the License at 2075 * 2076 * http://www.apache.org/licenses/LICENSE-2.0 2077 * 2078 * Unless required by applicable law or agreed to in writing, software 2079 * distributed under the License is distributed on an "AS IS" BASIS, 2080 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2081 * See the License for the specific language governing permissions and 2082 * limitations under the License. 2093 },{"./DOMProperty":12,"./escapeTextForBrowser":123,"./memoizeStringOnly":149,"./warning":160}],14:[function(_dereq_,module,exports){ 2094 /** 2095 * Copyright 2013-2014, Facebook, Inc. 2096 * All rights reserved. 2097 * 2098 * This source code is licensed under the BSD-style license found in the 2099 * LICENSE file in the root directory of this source tree. An additional grant 2100 * of patent rights can be found in the PATENTS file in the same directory. 2083 2101 * 2084 2102 * @providesModule Danger … … 2129 2147 ("production" !== "development" ? invariant( 2130 2148 ExecutionEnvironment.canUseDOM, 2131 'dangerouslyRenderMarkup(...): Cannot render markup in a Worker ' + 2132 'thread. This is likely a bug in the framework. Please report ' + 2133 'immediately.' 2149 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' + 2150 'thread. Make sure `window` and `document` are available globally ' + 2151 'before requiring React when unit testing or use ' + 2152 'React.renderToString for server rendering.' 2134 2153 ) : invariant(ExecutionEnvironment.canUseDOM)); 2135 2154 var nodeName; … … 2235 2254 ExecutionEnvironment.canUseDOM, 2236 2255 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a ' + 2237 'worker thread. This is likely a bug in the framework. Please report ' + 2238 'immediately.' 2256 'worker thread. Make sure `window` and `document` are available ' + 2257 'globally before requiring React when unit testing or use ' + 2258 'React.renderToString for server rendering.' 2239 2259 ) : invariant(ExecutionEnvironment.canUseDOM)); 2240 2260 ("production" !== "development" ? invariant(markup, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : invariant(markup)); … … 2255 2275 module.exports = Danger; 2256 2276 2257 },{"./ExecutionEnvironment":22,"./createNodesFromMarkup":113,"./emptyFunction":116,"./getMarkupWrap":126,"./invariant":134}],14:[function(_dereq_,module,exports){ 2258 /** 2259 * Copyright 2013-2014 Facebook, Inc. 2260 * 2261 * Licensed under the Apache License, Version 2.0 (the "License"); 2262 * you may not use this file except in compliance with the License. 2263 * You may obtain a copy of the License at 2264 * 2265 * http://www.apache.org/licenses/LICENSE-2.0 2266 * 2267 * Unless required by applicable law or agreed to in writing, software 2268 * distributed under the License is distributed on an "AS IS" BASIS, 2269 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2270 * See the License for the specific language governing permissions and 2271 * limitations under the License. 2277 },{"./ExecutionEnvironment":23,"./createNodesFromMarkup":117,"./emptyFunction":121,"./getMarkupWrap":132,"./invariant":140}],15:[function(_dereq_,module,exports){ 2278 /** 2279 * Copyright 2013-2014, Facebook, Inc. 2280 * All rights reserved. 2281 * 2282 * This source code is licensed under the BSD-style license found in the 2283 * LICENSE file in the root directory of this source tree. An additional grant 2284 * of patent rights can be found in the PATENTS file in the same directory. 2272 2285 * 2273 2286 * @providesModule DefaultEventPluginOrder … … 2302 2315 module.exports = DefaultEventPluginOrder; 2303 2316 2304 },{"./keyOf":141}],15:[function(_dereq_,module,exports){ 2305 /** 2306 * Copyright 2013-2014 Facebook, Inc. 2307 * 2308 * Licensed under the Apache License, Version 2.0 (the "License"); 2309 * you may not use this file except in compliance with the License. 2310 * You may obtain a copy of the License at 2311 * 2312 * http://www.apache.org/licenses/LICENSE-2.0 2313 * 2314 * Unless required by applicable law or agreed to in writing, software 2315 * distributed under the License is distributed on an "AS IS" BASIS, 2316 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2317 * See the License for the specific language governing permissions and 2318 * limitations under the License. 2317 },{"./keyOf":147}],16:[function(_dereq_,module,exports){ 2318 /** 2319 * Copyright 2013-2014, Facebook, Inc. 2320 * All rights reserved. 2321 * 2322 * This source code is licensed under the BSD-style license found in the 2323 * LICENSE file in the root directory of this source tree. An additional grant 2324 * of patent rights can be found in the PATENTS file in the same directory. 2319 2325 * 2320 2326 * @providesModule EnterLeaveEventPlugin … … 2449 2455 module.exports = EnterLeaveEventPlugin; 2450 2456 2451 },{"./EventConstants":16,"./EventPropagators":21,"./ReactMount":67,"./SyntheticMouseEvent":100,"./keyOf":141}],16:[function(_dereq_,module,exports){ 2452 /** 2453 * Copyright 2013-2014 Facebook, Inc. 2454 * 2455 * Licensed under the Apache License, Version 2.0 (the "License"); 2456 * you may not use this file except in compliance with the License. 2457 * You may obtain a copy of the License at 2458 * 2459 * http://www.apache.org/licenses/LICENSE-2.0 2460 * 2461 * Unless required by applicable law or agreed to in writing, software 2462 * distributed under the License is distributed on an "AS IS" BASIS, 2463 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2464 * See the License for the specific language governing permissions and 2465 * limitations under the License. 2457 },{"./EventConstants":17,"./EventPropagators":22,"./ReactMount":70,"./SyntheticMouseEvent":103,"./keyOf":147}],17:[function(_dereq_,module,exports){ 2458 /** 2459 * Copyright 2013-2014, Facebook, Inc. 2460 * All rights reserved. 2461 * 2462 * This source code is licensed under the BSD-style license found in the 2463 * LICENSE file in the root directory of this source tree. An additional grant 2464 * of patent rights can be found in the PATENTS file in the same directory. 2466 2465 * 2467 2466 * @providesModule EventConstants … … 2528 2527 module.exports = EventConstants; 2529 2528 2530 },{"./keyMirror":140}],17:[function(_dereq_,module,exports){ 2531 /** 2529 },{"./keyMirror":146}],18:[function(_dereq_,module,exports){ 2530 /** 2531 * Copyright 2013-2014 Facebook, Inc. 2532 * 2533 * Licensed under the Apache License, Version 2.0 (the "License"); 2534 * you may not use this file except in compliance with the License. 2535 * You may obtain a copy of the License at 2536 * 2537 * http://www.apache.org/licenses/LICENSE-2.0 2538 * 2539 * Unless required by applicable law or agreed to in writing, software 2540 * distributed under the License is distributed on an "AS IS" BASIS, 2541 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2542 * See the License for the specific language governing permissions and 2543 * limitations under the License. 2544 * 2532 2545 * @providesModule EventListener 2533 2546 * @typechecks … … 2602 2615 module.exports = EventListener; 2603 2616 2604 },{"./emptyFunction":116}],18:[function(_dereq_,module,exports){ 2605 /** 2606 * Copyright 2013-2014 Facebook, Inc. 2607 * 2608 * Licensed under the Apache License, Version 2.0 (the "License"); 2609 * you may not use this file except in compliance with the License. 2610 * You may obtain a copy of the License at 2611 * 2612 * http://www.apache.org/licenses/LICENSE-2.0 2613 * 2614 * Unless required by applicable law or agreed to in writing, software 2615 * distributed under the License is distributed on an "AS IS" BASIS, 2616 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2617 * See the License for the specific language governing permissions and 2618 * limitations under the License. 2617 },{"./emptyFunction":121}],19:[function(_dereq_,module,exports){ 2618 /** 2619 * Copyright 2013-2014, Facebook, Inc. 2620 * All rights reserved. 2621 * 2622 * This source code is licensed under the BSD-style license found in the 2623 * LICENSE file in the root directory of this source tree. An additional grant 2624 * of patent rights can be found in the PATENTS file in the same directory. 2619 2625 * 2620 2626 * @providesModule EventPluginHub … … 2626 2632 var EventPluginUtils = _dereq_("./EventPluginUtils"); 2627 2633 2628 var accumulate = _dereq_("./accumulate");2634 var accumulateInto = _dereq_("./accumulateInto"); 2629 2635 var forEachAccumulated = _dereq_("./forEachAccumulated"); 2630 2636 var invariant = _dereq_("./invariant"); 2631 var isEventSupported = _dereq_("./isEventSupported");2632 var monitorCodeUse = _dereq_("./monitorCodeUse");2633 2637 2634 2638 /** … … 2764 2768 ) : invariant(!listener || typeof listener === 'function')); 2765 2769 2766 if ("production" !== "development") {2767 // IE8 has no API for event capturing and the `onScroll` event doesn't2768 // bubble.2769 if (registrationName === 'onScroll' &&2770 !isEventSupported('scroll', true)) {2771 monitorCodeUse('react_no_scroll_event');2772 console.warn('This browser doesn\'t support the `onScroll` event');2773 }2774 }2775 2770 var bankForRegistrationName = 2776 2771 listenerBank[registrationName] || (listenerBank[registrationName] = {}); … … 2841 2836 ); 2842 2837 if (extractedEvents) { 2843 events = accumulate (events, extractedEvents);2838 events = accumulateInto(events, extractedEvents); 2844 2839 } 2845 2840 } … … 2857 2852 enqueueEvents: function(events) { 2858 2853 if (events) { 2859 eventQueue = accumulate (eventQueue, events);2854 eventQueue = accumulateInto(eventQueue, events); 2860 2855 } 2861 2856 }, … … 2894 2889 module.exports = EventPluginHub; 2895 2890 2896 },{"./EventPluginRegistry":19,"./EventPluginUtils":20,"./accumulate":106,"./forEachAccumulated":121,"./invariant":134,"./isEventSupported":135,"./monitorCodeUse":148}],19:[function(_dereq_,module,exports){ 2897 /** 2898 * Copyright 2013-2014 Facebook, Inc. 2899 * 2900 * Licensed under the Apache License, Version 2.0 (the "License"); 2901 * you may not use this file except in compliance with the License. 2902 * You may obtain a copy of the License at 2903 * 2904 * http://www.apache.org/licenses/LICENSE-2.0 2905 * 2906 * Unless required by applicable law or agreed to in writing, software 2907 * distributed under the License is distributed on an "AS IS" BASIS, 2908 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2909 * See the License for the specific language governing permissions and 2910 * limitations under the License. 2891 },{"./EventPluginRegistry":20,"./EventPluginUtils":21,"./accumulateInto":109,"./forEachAccumulated":126,"./invariant":140}],20:[function(_dereq_,module,exports){ 2892 /** 2893 * Copyright 2013-2014, Facebook, Inc. 2894 * All rights reserved. 2895 * 2896 * This source code is licensed under the BSD-style license found in the 2897 * LICENSE file in the root directory of this source tree. An additional grant 2898 * of patent rights can be found in the PATENTS file in the same directory. 2911 2899 * 2912 2900 * @providesModule EventPluginRegistry … … 3179 3167 module.exports = EventPluginRegistry; 3180 3168 3181 },{"./invariant":134}],20:[function(_dereq_,module,exports){ 3182 /** 3183 * Copyright 2013-2014 Facebook, Inc. 3184 * 3185 * Licensed under the Apache License, Version 2.0 (the "License"); 3186 * you may not use this file except in compliance with the License. 3187 * You may obtain a copy of the License at 3188 * 3189 * http://www.apache.org/licenses/LICENSE-2.0 3190 * 3191 * Unless required by applicable law or agreed to in writing, software 3192 * distributed under the License is distributed on an "AS IS" BASIS, 3193 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3194 * See the License for the specific language governing permissions and 3195 * limitations under the License. 3169 },{"./invariant":140}],21:[function(_dereq_,module,exports){ 3170 /** 3171 * Copyright 2013-2014, Facebook, Inc. 3172 * All rights reserved. 3173 * 3174 * This source code is licensed under the BSD-style license found in the 3175 * LICENSE file in the root directory of this source tree. An additional grant 3176 * of patent rights can be found in the PATENTS file in the same directory. 3196 3177 * 3197 3178 * @providesModule EventPluginUtils … … 3405 3386 module.exports = EventPluginUtils; 3406 3387 3407 },{"./EventConstants":16,"./invariant":134}],21:[function(_dereq_,module,exports){ 3408 /** 3409 * Copyright 2013-2014 Facebook, Inc. 3410 * 3411 * Licensed under the Apache License, Version 2.0 (the "License"); 3412 * you may not use this file except in compliance with the License. 3413 * You may obtain a copy of the License at 3414 * 3415 * http://www.apache.org/licenses/LICENSE-2.0 3416 * 3417 * Unless required by applicable law or agreed to in writing, software 3418 * distributed under the License is distributed on an "AS IS" BASIS, 3419 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3420 * See the License for the specific language governing permissions and 3421 * limitations under the License. 3388 },{"./EventConstants":17,"./invariant":140}],22:[function(_dereq_,module,exports){ 3389 /** 3390 * Copyright 2013-2014, Facebook, Inc. 3391 * All rights reserved. 3392 * 3393 * This source code is licensed under the BSD-style license found in the 3394 * LICENSE file in the root directory of this source tree. An additional grant 3395 * of patent rights can be found in the PATENTS file in the same directory. 3422 3396 * 3423 3397 * @providesModule EventPropagators … … 3429 3403 var EventPluginHub = _dereq_("./EventPluginHub"); 3430 3404 3431 var accumulate = _dereq_("./accumulate");3405 var accumulateInto = _dereq_("./accumulateInto"); 3432 3406 var forEachAccumulated = _dereq_("./forEachAccumulated"); 3433 3407 … … 3460 3434 var listener = listenerAtPhase(domID, event, phase); 3461 3435 if (listener) { 3462 event._dispatchListeners = accumulate(event._dispatchListeners, listener); 3463 event._dispatchIDs = accumulate(event._dispatchIDs, domID); 3436 event._dispatchListeners = 3437 accumulateInto(event._dispatchListeners, listener); 3438 event._dispatchIDs = accumulateInto(event._dispatchIDs, domID); 3464 3439 } 3465 3440 } … … 3493 3468 var listener = getListener(id, registrationName); 3494 3469 if (listener) { 3495 event._dispatchListeners = accumulate(event._dispatchListeners, listener); 3496 event._dispatchIDs = accumulate(event._dispatchIDs, id); 3470 event._dispatchListeners = 3471 accumulateInto(event._dispatchListeners, listener); 3472 event._dispatchIDs = accumulateInto(event._dispatchIDs, id); 3497 3473 } 3498 3474 } … … 3550 3526 module.exports = EventPropagators; 3551 3527 3552 },{"./EventConstants":16,"./EventPluginHub":18,"./accumulate":106,"./forEachAccumulated":121}],22:[function(_dereq_,module,exports){ 3553 /** 3554 * Copyright 2013-2014 Facebook, Inc. 3555 * 3556 * Licensed under the Apache License, Version 2.0 (the "License"); 3557 * you may not use this file except in compliance with the License. 3558 * You may obtain a copy of the License at 3559 * 3560 * http://www.apache.org/licenses/LICENSE-2.0 3561 * 3562 * Unless required by applicable law or agreed to in writing, software 3563 * distributed under the License is distributed on an "AS IS" BASIS, 3564 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3565 * See the License for the specific language governing permissions and 3566 * limitations under the License. 3528 },{"./EventConstants":17,"./EventPluginHub":19,"./accumulateInto":109,"./forEachAccumulated":126}],23:[function(_dereq_,module,exports){ 3529 /** 3530 * Copyright 2013-2014, Facebook, Inc. 3531 * All rights reserved. 3532 * 3533 * This source code is licensed under the BSD-style license found in the 3534 * LICENSE file in the root directory of this source tree. An additional grant 3535 * of patent rights can be found in the PATENTS file in the same directory. 3567 3536 * 3568 3537 * @providesModule ExecutionEnvironment … … 3602 3571 module.exports = ExecutionEnvironment; 3603 3572 3604 },{}],23:[function(_dereq_,module,exports){ 3605 /** 3606 * Copyright 2013-2014 Facebook, Inc. 3607 * 3608 * Licensed under the Apache License, Version 2.0 (the "License"); 3609 * you may not use this file except in compliance with the License. 3610 * You may obtain a copy of the License at 3611 * 3612 * http://www.apache.org/licenses/LICENSE-2.0 3613 * 3614 * Unless required by applicable law or agreed to in writing, software 3615 * distributed under the License is distributed on an "AS IS" BASIS, 3616 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3617 * See the License for the specific language governing permissions and 3618 * limitations under the License. 3573 },{}],24:[function(_dereq_,module,exports){ 3574 /** 3575 * Copyright 2013-2014, Facebook, Inc. 3576 * All rights reserved. 3577 * 3578 * This source code is licensed under the BSD-style license found in the 3579 * LICENSE file in the root directory of this source tree. An additional grant 3580 * of patent rights can be found in the PATENTS file in the same directory. 3619 3581 * 3620 3582 * @providesModule HTMLDOMPropertyConfig … … 3661 3623 */ 3662 3624 accept: null, 3625 acceptCharset: null, 3663 3626 accessKey: null, 3664 3627 action: null, … … 3675 3638 charSet: MUST_USE_ATTRIBUTE, 3676 3639 checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, 3640 classID: MUST_USE_ATTRIBUTE, 3677 3641 // To set className on SVG elements, it's necessary to use .setAttribute; 3678 3642 // this works on HTML elements too in all browsers except IE8. Conveniently, … … 3710 3674 label: null, 3711 3675 lang: null, 3712 list: null,3676 list: MUST_USE_ATTRIBUTE, 3713 3677 loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, 3678 manifest: MUST_USE_ATTRIBUTE, 3714 3679 max: null, 3715 3680 maxLength: MUST_USE_ATTRIBUTE, … … 3736 3701 sandbox: null, 3737 3702 scope: null, 3738 scrollLeft: MUST_USE_PROPERTY,3739 3703 scrolling: null, 3740 scrollTop: MUST_USE_PROPERTY,3741 3704 seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, 3742 3705 selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, … … 3772 3735 }, 3773 3736 DOMAttributeNames: { 3737 acceptCharset: 'accept-charset', 3774 3738 className: 'class', 3775 3739 htmlFor: 'for', … … 3793 3757 module.exports = HTMLDOMPropertyConfig; 3794 3758 3795 },{"./DOMProperty":11,"./ExecutionEnvironment":22}],24:[function(_dereq_,module,exports){ 3796 /** 3797 * Copyright 2013-2014 Facebook, Inc. 3798 * 3799 * Licensed under the Apache License, Version 2.0 (the "License"); 3800 * you may not use this file except in compliance with the License. 3801 * You may obtain a copy of the License at 3802 * 3803 * http://www.apache.org/licenses/LICENSE-2.0 3804 * 3805 * Unless required by applicable law or agreed to in writing, software 3806 * distributed under the License is distributed on an "AS IS" BASIS, 3807 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3808 * See the License for the specific language governing permissions and 3809 * limitations under the License. 3759 },{"./DOMProperty":12,"./ExecutionEnvironment":23}],25:[function(_dereq_,module,exports){ 3760 /** 3761 * Copyright 2013-2014, Facebook, Inc. 3762 * All rights reserved. 3763 * 3764 * This source code is licensed under the BSD-style license found in the 3765 * LICENSE file in the root directory of this source tree. An additional grant 3766 * of patent rights can be found in the PATENTS file in the same directory. 3810 3767 * 3811 3768 * @providesModule LinkedStateMixin … … 3841 3798 module.exports = LinkedStateMixin; 3842 3799 3843 },{"./ReactLink":65,"./ReactStateSetters":81}],25:[function(_dereq_,module,exports){ 3844 /** 3845 * Copyright 2013-2014 Facebook, Inc. 3846 * 3847 * Licensed under the Apache License, Version 2.0 (the "License"); 3848 * you may not use this file except in compliance with the License. 3849 * You may obtain a copy of the License at 3850 * 3851 * http://www.apache.org/licenses/LICENSE-2.0 3852 * 3853 * Unless required by applicable law or agreed to in writing, software 3854 * distributed under the License is distributed on an "AS IS" BASIS, 3855 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3856 * See the License for the specific language governing permissions and 3857 * limitations under the License. 3800 },{"./ReactLink":68,"./ReactStateSetters":85}],26:[function(_dereq_,module,exports){ 3801 /** 3802 * Copyright 2013-2014, Facebook, Inc. 3803 * All rights reserved. 3804 * 3805 * This source code is licensed under the BSD-style license found in the 3806 * LICENSE file in the root directory of this source tree. An additional grant 3807 * of patent rights can be found in the PATENTS file in the same directory. 3858 3808 * 3859 3809 * @providesModule LinkedValueUtils … … 4002 3952 module.exports = LinkedValueUtils; 4003 3953 4004 },{"./ReactPropTypes":75,"./invariant":134}],26:[function(_dereq_,module,exports){ 4005 /** 4006 * Copyright 2014 Facebook, Inc. 4007 * 4008 * Licensed under the Apache License, Version 2.0 (the "License"); 4009 * you may not use this file except in compliance with the License. 4010 * You may obtain a copy of the License at 4011 * 4012 * http://www.apache.org/licenses/LICENSE-2.0 4013 * 4014 * Unless required by applicable law or agreed to in writing, software 4015 * distributed under the License is distributed on an "AS IS" BASIS, 4016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4017 * See the License for the specific language governing permissions and 4018 * limitations under the License. 3954 },{"./ReactPropTypes":79,"./invariant":140}],27:[function(_dereq_,module,exports){ 3955 /** 3956 * Copyright 2014, Facebook, Inc. 3957 * All rights reserved. 3958 * 3959 * This source code is licensed under the BSD-style license found in the 3960 * LICENSE file in the root directory of this source tree. An additional grant 3961 * of patent rights can be found in the PATENTS file in the same directory. 4019 3962 * 4020 3963 * @providesModule LocalEventTrapMixin … … 4025 3968 var ReactBrowserEventEmitter = _dereq_("./ReactBrowserEventEmitter"); 4026 3969 4027 var accumulate = _dereq_("./accumulate");3970 var accumulateInto = _dereq_("./accumulateInto"); 4028 3971 var forEachAccumulated = _dereq_("./forEachAccumulated"); 4029 3972 var invariant = _dereq_("./invariant"); … … 4041 3984 this.getDOMNode() 4042 3985 ); 4043 this._localEventListeners = accumulate(this._localEventListeners, listener); 3986 this._localEventListeners = 3987 accumulateInto(this._localEventListeners, listener); 4044 3988 }, 4045 3989 … … 4056 4000 module.exports = LocalEventTrapMixin; 4057 4001 4058 },{"./ReactBrowserEventEmitter":31,"./accumulate":106,"./forEachAccumulated":121,"./invariant":134}],27:[function(_dereq_,module,exports){ 4059 /** 4060 * Copyright 2013-2014 Facebook, Inc. 4061 * 4062 * Licensed under the Apache License, Version 2.0 (the "License"); 4063 * you may not use this file except in compliance with the License. 4064 * You may obtain a copy of the License at 4065 * 4066 * http://www.apache.org/licenses/LICENSE-2.0 4067 * 4068 * Unless required by applicable law or agreed to in writing, software 4069 * distributed under the License is distributed on an "AS IS" BASIS, 4070 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4071 * See the License for the specific language governing permissions and 4072 * limitations under the License. 4002 },{"./ReactBrowserEventEmitter":33,"./accumulateInto":109,"./forEachAccumulated":126,"./invariant":140}],28:[function(_dereq_,module,exports){ 4003 /** 4004 * Copyright 2013-2014, Facebook, Inc. 4005 * All rights reserved. 4006 * 4007 * This source code is licensed under the BSD-style license found in the 4008 * LICENSE file in the root directory of this source tree. An additional grant 4009 * of patent rights can be found in the PATENTS file in the same directory. 4073 4010 * 4074 4011 * @providesModule MobileSafariClickEventPlugin … … 4121 4058 module.exports = MobileSafariClickEventPlugin; 4122 4059 4123 },{"./EventConstants":16,"./emptyFunction":116}],28:[function(_dereq_,module,exports){ 4124 /** 4125 * Copyright 2013-2014 Facebook, Inc. 4126 * 4127 * Licensed under the Apache License, Version 2.0 (the "License"); 4128 * you may not use this file except in compliance with the License. 4129 * You may obtain a copy of the License at 4130 * 4131 * http://www.apache.org/licenses/LICENSE-2.0 4132 * 4133 * Unless required by applicable law or agreed to in writing, software 4134 * distributed under the License is distributed on an "AS IS" BASIS, 4135 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4136 * See the License for the specific language governing permissions and 4137 * limitations under the License. 4060 },{"./EventConstants":17,"./emptyFunction":121}],29:[function(_dereq_,module,exports){ 4061 /** 4062 * Copyright 2014, Facebook, Inc. 4063 * All rights reserved. 4064 * 4065 * This source code is licensed under the BSD-style license found in the 4066 * LICENSE file in the root directory of this source tree. An additional grant 4067 * of patent rights can be found in the PATENTS file in the same directory. 4068 * 4069 * @providesModule Object.assign 4070 */ 4071 4072 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign 4073 4074 function assign(target, sources) { 4075 if (target == null) { 4076 throw new TypeError('Object.assign target cannot be null or undefined'); 4077 } 4078 4079 var to = Object(target); 4080 var hasOwnProperty = Object.prototype.hasOwnProperty; 4081 4082 for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) { 4083 var nextSource = arguments[nextIndex]; 4084 if (nextSource == null) { 4085 continue; 4086 } 4087 4088 var from = Object(nextSource); 4089 4090 // We don't currently support accessors nor proxies. Therefore this 4091 // copy cannot throw. If we ever supported this then we must handle 4092 // exceptions and side-effects. We don't support symbols so they won't 4093 // be transferred. 4094 4095 for (var key in from) { 4096 if (hasOwnProperty.call(from, key)) { 4097 to[key] = from[key]; 4098 } 4099 } 4100 } 4101 4102 return to; 4103 }; 4104 4105 module.exports = assign; 4106 4107 },{}],30:[function(_dereq_,module,exports){ 4108 /** 4109 * Copyright 2013-2014, Facebook, Inc. 4110 * All rights reserved. 4111 * 4112 * This source code is licensed under the BSD-style license found in the 4113 * LICENSE file in the root directory of this source tree. An additional grant 4114 * of patent rights can be found in the PATENTS file in the same directory. 4138 4115 * 4139 4116 * @providesModule PooledClass … … 4242 4219 module.exports = PooledClass; 4243 4220 4244 },{"./invariant":134}],29:[function(_dereq_,module,exports){ 4245 /** 4246 * Copyright 2013-2014 Facebook, Inc. 4247 * 4248 * Licensed under the Apache License, Version 2.0 (the "License"); 4249 * you may not use this file except in compliance with the License. 4250 * You may obtain a copy of the License at 4251 * 4252 * http://www.apache.org/licenses/LICENSE-2.0 4253 * 4254 * Unless required by applicable law or agreed to in writing, software 4255 * distributed under the License is distributed on an "AS IS" BASIS, 4256 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4257 * See the License for the specific language governing permissions and 4258 * limitations under the License. 4221 },{"./invariant":140}],31:[function(_dereq_,module,exports){ 4222 /** 4223 * Copyright 2013-2014, Facebook, Inc. 4224 * All rights reserved. 4225 * 4226 * This source code is licensed under the BSD-style license found in the 4227 * LICENSE file in the root directory of this source tree. An additional grant 4228 * of patent rights can be found in the PATENTS file in the same directory. 4259 4229 * 4260 4230 * @providesModule React … … 4270 4240 var ReactContext = _dereq_("./ReactContext"); 4271 4241 var ReactCurrentOwner = _dereq_("./ReactCurrentOwner"); 4272 var ReactDescriptor = _dereq_("./ReactDescriptor"); 4242 var ReactElement = _dereq_("./ReactElement"); 4243 var ReactElementValidator = _dereq_("./ReactElementValidator"); 4273 4244 var ReactDOM = _dereq_("./ReactDOM"); 4274 4245 var ReactDOMComponent = _dereq_("./ReactDOMComponent"); 4275 4246 var ReactDefaultInjection = _dereq_("./ReactDefaultInjection"); 4276 4247 var ReactInstanceHandles = _dereq_("./ReactInstanceHandles"); 4248 var ReactLegacyElement = _dereq_("./ReactLegacyElement"); 4277 4249 var ReactMount = _dereq_("./ReactMount"); 4278 4250 var ReactMultiChild = _dereq_("./ReactMultiChild"); … … 4282 4254 var ReactTextComponent = _dereq_("./ReactTextComponent"); 4283 4255 4256 var assign = _dereq_("./Object.assign"); 4257 var deprecated = _dereq_("./deprecated"); 4284 4258 var onlyChild = _dereq_("./onlyChild"); 4285 var warning = _dereq_("./warning");4286 4259 4287 4260 ReactDefaultInjection.inject(); 4288 4261 4289 // Specifying arguments isn't necessary since we just use apply anyway, but it 4290 // makes it clear for those actually consuming this API. 4291 function createDescriptor(type, props, children) { 4292 var args = Array.prototype.slice.call(arguments, 1); 4293 return type.apply(null, args); 4294 } 4262 var createElement = ReactElement.createElement; 4263 var createFactory = ReactElement.createFactory; 4295 4264 4296 4265 if ("production" !== "development") { 4297 var _warnedForDeprecation = false; 4298 } 4266 createElement = ReactElementValidator.createElement; 4267 createFactory = ReactElementValidator.createFactory; 4268 } 4269 4270 // TODO: Drop legacy elements once classes no longer export these factories 4271 createElement = ReactLegacyElement.wrapCreateElement( 4272 createElement 4273 ); 4274 createFactory = ReactLegacyElement.wrapCreateFactory( 4275 createFactory 4276 ); 4277 4278 var render = ReactPerf.measure('React', 'render', ReactMount.render); 4299 4279 4300 4280 var React = { … … 4311 4291 }, 4312 4292 createClass: ReactCompositeComponent.createClass, 4313 createDescriptor: function() { 4314 if ("production" !== "development") { 4315 ("production" !== "development" ? warning( 4316 _warnedForDeprecation, 4317 'React.createDescriptor is deprecated and will be removed in the ' + 4318 'next version of React. Use React.createElement instead.' 4319 ) : null); 4320 _warnedForDeprecation = true; 4321 } 4322 return createDescriptor.apply(this, arguments); 4323 }, 4324 createElement: createDescriptor, 4293 createElement: createElement, 4294 createFactory: createFactory, 4325 4295 constructAndRenderComponent: ReactMount.constructAndRenderComponent, 4326 4296 constructAndRenderComponentByID: ReactMount.constructAndRenderComponentByID, 4327 renderComponent: ReactPerf.measure( 4297 render: render, 4298 renderToString: ReactServerRendering.renderToString, 4299 renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup, 4300 unmountComponentAtNode: ReactMount.unmountComponentAtNode, 4301 isValidClass: ReactLegacyElement.isValidClass, 4302 isValidElement: ReactElement.isValidElement, 4303 withContext: ReactContext.withContext, 4304 4305 // Hook for JSX spread, don't use this for anything else. 4306 __spread: assign, 4307 4308 // Deprecations (remove for 0.13) 4309 renderComponent: deprecated( 4328 4310 'React', 4329 4311 'renderComponent', 4330 ReactMount.renderComponent 4312 'render', 4313 this, 4314 render 4331 4315 ), 4332 renderComponentToString: ReactServerRendering.renderComponentToString, 4333 renderComponentToStaticMarkup: 4334 ReactServerRendering.renderComponentToStaticMarkup, 4335 unmountComponentAtNode: ReactMount.unmountComponentAtNode, 4336 isValidClass: ReactDescriptor.isValidFactory, 4337 isValidComponent: ReactDescriptor.isValidDescriptor, 4338 withContext: ReactContext.withContext, 4339 __internals: { 4316 renderComponentToString: deprecated( 4317 'React', 4318 'renderComponentToString', 4319 'renderToString', 4320 this, 4321 ReactServerRendering.renderToString 4322 ), 4323 renderComponentToStaticMarkup: deprecated( 4324 'React', 4325 'renderComponentToStaticMarkup', 4326 'renderToStaticMarkup', 4327 this, 4328 ReactServerRendering.renderToStaticMarkup 4329 ), 4330 isValidComponent: deprecated( 4331 'React', 4332 'isValidComponent', 4333 'isValidElement', 4334 this, 4335 ReactElement.isValidElement 4336 ) 4337 }; 4338 4339 // Inject the runtime into a devtools global hook regardless of browser. 4340 // Allows for debugging when the hook is injected on the page. 4341 if ( 4342 typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && 4343 typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') { 4344 __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ 4340 4345 Component: ReactComponent, 4341 4346 CurrentOwner: ReactCurrentOwner, … … 4346 4351 MultiChild: ReactMultiChild, 4347 4352 TextComponent: ReactTextComponent 4348 } 4349 } ;4353 }); 4354 } 4350 4355 4351 4356 if ("production" !== "development") { 4352 4357 var ExecutionEnvironment = _dereq_("./ExecutionEnvironment"); 4353 if (ExecutionEnvironment.canUseDOM && 4354 window.top === window.self && 4355 navigator.userAgent.indexOf('Chrome') > -1) { 4356 console.debug( 4357 'Download the React DevTools for a better development experience: ' + 4358 'http://fb.me/react-devtools' 4359 ); 4358 if (ExecutionEnvironment.canUseDOM && window.top === window.self) { 4359 4360 // If we're in Chrome, look for the devtools marker and provide a download 4361 // link if not installed. 4362 if (navigator.userAgent.indexOf('Chrome') > -1) { 4363 if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') { 4364 console.debug( 4365 'Download the React DevTools for a better development experience: ' + 4366 'http://fb.me/react-devtools' 4367 ); 4368 } 4369 } 4360 4370 4361 4371 var expectedFeatures = [ … … 4377 4387 ]; 4378 4388 4379 for (var i in expectedFeatures) {4389 for (var i = 0; i < expectedFeatures.length; i++) { 4380 4390 if (!expectedFeatures[i]) { 4381 4391 console.error( … … 4391 4401 // Version exists only in the open-source version of React, not in Facebook's 4392 4402 // internal version. 4393 React.version = '0.1 1.2';4403 React.version = '0.12.0'; 4394 4404 4395 4405 module.exports = React; 4396 4406 4397 },{"./DOMPropertyOperations":12,"./EventPluginUtils":20,"./ExecutionEnvironment":22,"./ReactChildren":34,"./ReactComponent":35,"./ReactCompositeComponent":38,"./ReactContext":39,"./ReactCurrentOwner":40,"./ReactDOM":41,"./ReactDOMComponent":43,"./ReactDefaultInjection":53,"./ReactDescriptor":56,"./ReactInstanceHandles":64,"./ReactMount":67,"./ReactMultiChild":68,"./ReactPerf":71,"./ReactPropTypes":75,"./ReactServerRendering":79,"./ReactTextComponent":83,"./onlyChild":149,"./warning":158}],30:[function(_dereq_,module,exports){ 4398 /** 4399 * Copyright 2013-2014 Facebook, Inc. 4400 * 4401 * Licensed under the Apache License, Version 2.0 (the "License"); 4402 * you may not use this file except in compliance with the License. 4403 * You may obtain a copy of the License at 4404 * 4405 * http://www.apache.org/licenses/LICENSE-2.0 4406 * 4407 * Unless required by applicable law or agreed to in writing, software 4408 * distributed under the License is distributed on an "AS IS" BASIS, 4409 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4410 * See the License for the specific language governing permissions and 4411 * limitations under the License. 4407 },{"./DOMPropertyOperations":13,"./EventPluginUtils":21,"./ExecutionEnvironment":23,"./Object.assign":29,"./ReactChildren":36,"./ReactComponent":37,"./ReactCompositeComponent":40,"./ReactContext":41,"./ReactCurrentOwner":42,"./ReactDOM":43,"./ReactDOMComponent":45,"./ReactDefaultInjection":55,"./ReactElement":58,"./ReactElementValidator":59,"./ReactInstanceHandles":66,"./ReactLegacyElement":67,"./ReactMount":70,"./ReactMultiChild":71,"./ReactPerf":75,"./ReactPropTypes":79,"./ReactServerRendering":83,"./ReactTextComponent":87,"./deprecated":120,"./onlyChild":151}],32:[function(_dereq_,module,exports){ 4408 /** 4409 * Copyright 2013-2014, Facebook, Inc. 4410 * All rights reserved. 4411 * 4412 * This source code is licensed under the BSD-style license found in the 4413 * LICENSE file in the root directory of this source tree. An additional grant 4414 * of patent rights can be found in the PATENTS file in the same directory. 4412 4415 * 4413 4416 * @providesModule ReactBrowserComponentMixin … … 4443 4446 module.exports = ReactBrowserComponentMixin; 4444 4447 4445 },{"./ReactEmptyComponent":58,"./ReactMount":67,"./invariant":134}],31:[function(_dereq_,module,exports){ 4446 /** 4447 * Copyright 2013-2014 Facebook, Inc. 4448 * 4449 * Licensed under the Apache License, Version 2.0 (the "License"); 4450 * you may not use this file except in compliance with the License. 4451 * You may obtain a copy of the License at 4452 * 4453 * http://www.apache.org/licenses/LICENSE-2.0 4454 * 4455 * Unless required by applicable law or agreed to in writing, software 4456 * distributed under the License is distributed on an "AS IS" BASIS, 4457 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4458 * See the License for the specific language governing permissions and 4459 * limitations under the License. 4448 },{"./ReactEmptyComponent":60,"./ReactMount":70,"./invariant":140}],33:[function(_dereq_,module,exports){ 4449 /** 4450 * Copyright 2013-2014, Facebook, Inc. 4451 * All rights reserved. 4452 * 4453 * This source code is licensed under the BSD-style license found in the 4454 * LICENSE file in the root directory of this source tree. An additional grant 4455 * of patent rights can be found in the PATENTS file in the same directory. 4460 4456 * 4461 4457 * @providesModule ReactBrowserEventEmitter … … 4471 4467 var ViewportMetrics = _dereq_("./ViewportMetrics"); 4472 4468 4469 var assign = _dereq_("./Object.assign"); 4473 4470 var isEventSupported = _dereq_("./isEventSupported"); 4474 var merge = _dereq_("./merge");4475 4471 4476 4472 /** … … 4601 4597 * @internal 4602 4598 */ 4603 var ReactBrowserEventEmitter = merge(ReactEventEmitterMixin, {4599 var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, { 4604 4600 4605 4601 /** … … 4805 4801 module.exports = ReactBrowserEventEmitter; 4806 4802 4807 },{"./EventConstants":16,"./EventPluginHub":18,"./EventPluginRegistry":19,"./ReactEventEmitterMixin":60,"./ViewportMetrics":105,"./isEventSupported":135,"./merge":144}],32:[function(_dereq_,module,exports){ 4808 /** 4809 * Copyright 2013-2014 Facebook, Inc. 4810 * 4811 * Licensed under the Apache License, Version 2.0 (the "License"); 4812 * you may not use this file except in compliance with the License. 4813 * You may obtain a copy of the License at 4814 * 4815 * http://www.apache.org/licenses/LICENSE-2.0 4816 * 4817 * Unless required by applicable law or agreed to in writing, software 4818 * distributed under the License is distributed on an "AS IS" BASIS, 4819 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4820 * See the License for the specific language governing permissions and 4821 * limitations under the License. 4803 },{"./EventConstants":17,"./EventPluginHub":19,"./EventPluginRegistry":20,"./Object.assign":29,"./ReactEventEmitterMixin":62,"./ViewportMetrics":108,"./isEventSupported":141}],34:[function(_dereq_,module,exports){ 4804 /** 4805 * Copyright 2013-2014, Facebook, Inc. 4806 * All rights reserved. 4807 * 4808 * This source code is licensed under the BSD-style license found in the 4809 * LICENSE file in the root directory of this source tree. An additional grant 4810 * of patent rights can be found in the PATENTS file in the same directory. 4822 4811 * 4823 4812 * @typechecks … … 4829 4818 var React = _dereq_("./React"); 4830 4819 4831 var ReactTransitionGroup = _dereq_("./ReactTransitionGroup"); 4832 var ReactCSSTransitionGroupChild = _dereq_("./ReactCSSTransitionGroupChild"); 4820 var assign = _dereq_("./Object.assign"); 4821 4822 var ReactTransitionGroup = React.createFactory( 4823 _dereq_("./ReactTransitionGroup") 4824 ); 4825 var ReactCSSTransitionGroupChild = React.createFactory( 4826 _dereq_("./ReactCSSTransitionGroupChild") 4827 ); 4833 4828 4834 4829 var ReactCSSTransitionGroup = React.createClass({ … … 4863 4858 4864 4859 render: function() { 4865 return this.transferPropsTo(4860 return ( 4866 4861 ReactTransitionGroup( 4867 {childFactory: this._wrapChild}, 4868 this.props.children 4862 assign({}, this.props, {childFactory: this._wrapChild}) 4869 4863 ) 4870 4864 ); … … 4874 4868 module.exports = ReactCSSTransitionGroup; 4875 4869 4876 },{"./React":29,"./ReactCSSTransitionGroupChild":33,"./ReactTransitionGroup":86}],33:[function(_dereq_,module,exports){ 4877 /** 4878 * Copyright 2013-2014 Facebook, Inc. 4879 * 4880 * Licensed under the Apache License, Version 2.0 (the "License"); 4881 * you may not use this file except in compliance with the License. 4882 * You may obtain a copy of the License at 4883 * 4884 * http://www.apache.org/licenses/LICENSE-2.0 4885 * 4886 * Unless required by applicable law or agreed to in writing, software 4887 * distributed under the License is distributed on an "AS IS" BASIS, 4888 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4889 * See the License for the specific language governing permissions and 4890 * limitations under the License. 4870 },{"./Object.assign":29,"./React":31,"./ReactCSSTransitionGroupChild":35,"./ReactTransitionGroup":90}],35:[function(_dereq_,module,exports){ 4871 /** 4872 * Copyright 2013-2014, Facebook, Inc. 4873 * All rights reserved. 4874 * 4875 * This source code is licensed under the BSD-style license found in the 4876 * LICENSE file in the root directory of this source tree. An additional grant 4877 * of patent rights can be found in the PATENTS file in the same directory. 4891 4878 * 4892 4879 * @typechecks … … 4933 4920 var noEventTimeout = null; 4934 4921 4935 var endListener = function() { 4922 var endListener = function(e) { 4923 if (e && e.target !== node) { 4924 return; 4925 } 4936 4926 if ("production" !== "development") { 4937 4927 clearTimeout(noEventTimeout); … … 5011 5001 module.exports = ReactCSSTransitionGroupChild; 5012 5002 5013 },{"./CSSCore":3,"./React":29,"./ReactTransitionEvents":85,"./onlyChild":149}],34:[function(_dereq_,module,exports){ 5014 /** 5015 * Copyright 2013-2014 Facebook, Inc. 5016 * 5017 * Licensed under the Apache License, Version 2.0 (the "License"); 5018 * you may not use this file except in compliance with the License. 5019 * You may obtain a copy of the License at 5020 * 5021 * http://www.apache.org/licenses/LICENSE-2.0 5022 * 5023 * Unless required by applicable law or agreed to in writing, software 5024 * distributed under the License is distributed on an "AS IS" BASIS, 5025 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 5026 * See the License for the specific language governing permissions and 5027 * limitations under the License. 5003 },{"./CSSCore":4,"./React":31,"./ReactTransitionEvents":89,"./onlyChild":151}],36:[function(_dereq_,module,exports){ 5004 /** 5005 * Copyright 2013-2014, Facebook, Inc. 5006 * All rights reserved. 5007 * 5008 * This source code is licensed under the BSD-style license found in the 5009 * LICENSE file in the root directory of this source tree. An additional grant 5010 * of patent rights can be found in the PATENTS file in the same directory. 5028 5011 * 5029 5012 * @providesModule ReactChildren … … 5166 5149 module.exports = ReactChildren; 5167 5150 5168 },{"./PooledClass":28,"./traverseAllChildren":156,"./warning":158}],35:[function(_dereq_,module,exports){ 5169 /** 5170 * Copyright 2013-2014 Facebook, Inc. 5171 * 5172 * Licensed under the Apache License, Version 2.0 (the "License"); 5173 * you may not use this file except in compliance with the License. 5174 * You may obtain a copy of the License at 5175 * 5176 * http://www.apache.org/licenses/LICENSE-2.0 5177 * 5178 * Unless required by applicable law or agreed to in writing, software 5179 * distributed under the License is distributed on an "AS IS" BASIS, 5180 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 5181 * See the License for the specific language governing permissions and 5182 * limitations under the License. 5151 },{"./PooledClass":30,"./traverseAllChildren":158,"./warning":160}],37:[function(_dereq_,module,exports){ 5152 /** 5153 * Copyright 2013-2014, Facebook, Inc. 5154 * All rights reserved. 5155 * 5156 * This source code is licensed under the BSD-style license found in the 5157 * LICENSE file in the root directory of this source tree. An additional grant 5158 * of patent rights can be found in the PATENTS file in the same directory. 5183 5159 * 5184 5160 * @providesModule ReactComponent … … 5187 5163 "use strict"; 5188 5164 5189 var React Descriptor = _dereq_("./ReactDescriptor");5165 var ReactElement = _dereq_("./ReactElement"); 5190 5166 var ReactOwner = _dereq_("./ReactOwner"); 5191 5167 var ReactUpdates = _dereq_("./ReactUpdates"); 5192 5168 5169 var assign = _dereq_("./Object.assign"); 5193 5170 var invariant = _dereq_("./invariant"); 5194 5171 var keyMirror = _dereq_("./keyMirror"); 5195 var merge = _dereq_("./merge");5196 5172 5197 5173 /** … … 5316 5292 */ 5317 5293 setProps: function(partialProps, callback) { 5318 // Merge with the pending descriptorif it exists, otherwise with existing5319 // descriptorprops.5320 var descriptor = this._pendingDescriptor || this._descriptor;5294 // Merge with the pending element if it exists, otherwise with existing 5295 // element props. 5296 var element = this._pendingElement || this._currentElement; 5321 5297 this.replaceProps( 5322 merge(descriptor.props, partialProps),5298 assign({}, element.props, partialProps), 5323 5299 callback 5324 5300 ); … … 5346 5322 'where it is created.' 5347 5323 ) : invariant(this._mountDepth === 0)); 5348 // This is a deoptimized path. We optimize for always having a descriptor.5349 // This creates an extra internal descriptor.5350 this._pending Descriptor = ReactDescriptor.cloneAndReplaceProps(5351 this._pending Descriptor || this._descriptor,5324 // This is a deoptimized path. We optimize for always having a element. 5325 // This creates an extra internal element. 5326 this._pendingElement = ReactElement.cloneAndReplaceProps( 5327 this._pendingElement || this._currentElement, 5352 5328 props 5353 5329 ); … … 5364 5340 */ 5365 5341 _setPropsInternal: function(partialProps, callback) { 5366 // This is a deoptimized path. We optimize for always having a descriptor.5367 // This creates an extra internal descriptor.5368 var descriptor = this._pendingDescriptor || this._descriptor;5369 this._pending Descriptor = ReactDescriptor.cloneAndReplaceProps(5370 descriptor,5371 merge(descriptor.props, partialProps)5342 // This is a deoptimized path. We optimize for always having a element. 5343 // This creates an extra internal element. 5344 var element = this._pendingElement || this._currentElement; 5345 this._pendingElement = ReactElement.cloneAndReplaceProps( 5346 element, 5347 assign({}, element.props, partialProps) 5372 5348 ); 5373 5349 ReactUpdates.enqueueUpdate(this, callback); … … 5380 5356 * `ReactComponent.Mixin.construct.call(this, ...)`. 5381 5357 * 5382 * @param {React Descriptor} descriptor5358 * @param {ReactElement} element 5383 5359 * @internal 5384 5360 */ 5385 construct: function( descriptor) {5361 construct: function(element) { 5386 5362 // This is the public exposed props object after it has been processed 5387 // with default props. The descriptor's props represents the true internal5363 // with default props. The element's props represents the true internal 5388 5364 // state of the props. 5389 this.props = descriptor.props;5365 this.props = element.props; 5390 5366 // Record the component responsible for creating this component. 5391 // This is accessible through the descriptorbut we maintain an extra5367 // This is accessible through the element but we maintain an extra 5392 5368 // field for compatibility with devtools and as a way to make an 5393 5369 // incremental update. TODO: Consider deprecating this field. 5394 this._owner = descriptor._owner;5370 this._owner = element._owner; 5395 5371 5396 5372 // All components start unmounted. … … 5400 5376 this._pendingCallbacks = null; 5401 5377 5402 // We keep the old descriptor and a reference to the pending descriptor5378 // We keep the old element and a reference to the pending element 5403 5379 // to track updates. 5404 this._ descriptor = descriptor;5405 this._pending Descriptor= null;5380 this._currentElement = element; 5381 this._pendingElement = null; 5406 5382 }, 5407 5383 … … 5428 5404 rootID 5429 5405 ) : invariant(!this.isMounted())); 5430 var props = this._descriptor.props;5431 if ( props.ref != null) {5432 var owner = this._ descriptor._owner;5433 ReactOwner.addComponentAsRefTo(this, props.ref, owner);5406 var ref = this._currentElement.ref; 5407 if (ref != null) { 5408 var owner = this._currentElement._owner; 5409 ReactOwner.addComponentAsRefTo(this, ref, owner); 5434 5410 } 5435 5411 this._rootNodeID = rootID; … … 5454 5430 'unmountComponent(): Can only unmount a mounted component.' 5455 5431 ) : invariant(this.isMounted())); 5456 var props = this.props;5457 if ( props.ref != null) {5458 ReactOwner.removeComponentAsRefFrom(this, props.ref, this._owner);5432 var ref = this._currentElement.ref; 5433 if (ref != null) { 5434 ReactOwner.removeComponentAsRefFrom(this, ref, this._owner); 5459 5435 } 5460 5436 unmountIDFromEnvironment(this._rootNodeID); … … 5474 5450 * @internal 5475 5451 */ 5476 receiveComponent: function(next Descriptor, transaction) {5452 receiveComponent: function(nextElement, transaction) { 5477 5453 ("production" !== "development" ? invariant( 5478 5454 this.isMounted(), 5479 5455 'receiveComponent(...): Can only update a mounted component.' 5480 5456 ) : invariant(this.isMounted())); 5481 this._pending Descriptor = nextDescriptor;5457 this._pendingElement = nextElement; 5482 5458 this.performUpdateIfNecessary(transaction); 5483 5459 }, 5484 5460 5485 5461 /** 5486 * If `_pending Descriptor` is set, update the component.5462 * If `_pendingElement` is set, update the component. 5487 5463 * 5488 5464 * @param {ReactReconcileTransaction} transaction … … 5490 5466 */ 5491 5467 performUpdateIfNecessary: function(transaction) { 5492 if (this._pending Descriptor== null) {5468 if (this._pendingElement == null) { 5493 5469 return; 5494 5470 } 5495 var prev Descriptor = this._descriptor;5496 var next Descriptor = this._pendingDescriptor;5497 this._ descriptor = nextDescriptor;5498 this.props = next Descriptor.props;5499 this._owner = next Descriptor._owner;5500 this._pending Descriptor= null;5501 this.updateComponent(transaction, prev Descriptor);5471 var prevElement = this._currentElement; 5472 var nextElement = this._pendingElement; 5473 this._currentElement = nextElement; 5474 this.props = nextElement.props; 5475 this._owner = nextElement._owner; 5476 this._pendingElement = null; 5477 this.updateComponent(transaction, prevElement); 5502 5478 }, 5503 5479 … … 5506 5482 * 5507 5483 * @param {ReactReconcileTransaction} transaction 5508 * @param {object} prev Descriptor5484 * @param {object} prevElement 5509 5485 * @internal 5510 5486 */ 5511 updateComponent: function(transaction, prev Descriptor) {5512 var next Descriptor = this._descriptor;5487 updateComponent: function(transaction, prevElement) { 5488 var nextElement = this._currentElement; 5513 5489 5514 5490 // If either the owner or a `ref` has changed, make sure the newest owner 5515 5491 // has stored a reference to `this`, and the previous owner (if different) 5516 // has forgotten the reference to `this`. We use the descriptorinstead5492 // has forgotten the reference to `this`. We use the element instead 5517 5493 // of the public this.props because the post processing cannot determine 5518 // a ref. The ref conceptually lives on the descriptor.5494 // a ref. The ref conceptually lives on the element. 5519 5495 5520 5496 // TODO: Should this even be possible? The owner cannot change because … … 5524 5500 // instantiateReactComponent is done. 5525 5501 5526 if (next Descriptor._owner !== prevDescriptor._owner ||5527 next Descriptor.props.ref !== prevDescriptor.props.ref) {5528 if (prev Descriptor.props.ref != null) {5502 if (nextElement._owner !== prevElement._owner || 5503 nextElement.ref !== prevElement.ref) { 5504 if (prevElement.ref != null) { 5529 5505 ReactOwner.removeComponentAsRefFrom( 5530 this, prev Descriptor.props.ref, prevDescriptor._owner5506 this, prevElement.ref, prevElement._owner 5531 5507 ); 5532 5508 } 5533 5509 // Correct, even if the owner is the same, and only the ref has changed. 5534 if (next Descriptor.props.ref != null) {5510 if (nextElement.ref != null) { 5535 5511 ReactOwner.addComponentAsRefTo( 5536 5512 this, 5537 next Descriptor.props.ref,5538 next Descriptor._owner5513 nextElement.ref, 5514 nextElement._owner 5539 5515 ); 5540 5516 } … … 5550 5526 * @final 5551 5527 * @internal 5552 * @see {ReactMount.render Component}5528 * @see {ReactMount.render} 5553 5529 */ 5554 5530 mountComponentIntoNode: function(rootID, container, shouldReuseMarkup) { … … 5614 5590 module.exports = ReactComponent; 5615 5591 5616 },{"./ReactDescriptor":56,"./ReactOwner":70,"./ReactUpdates":87,"./invariant":134,"./keyMirror":140,"./merge":144}],36:[function(_dereq_,module,exports){ 5617 /** 5618 * Copyright 2013-2014 Facebook, Inc. 5619 * 5620 * Licensed under the Apache License, Version 2.0 (the "License"); 5621 * you may not use this file except in compliance with the License. 5622 * You may obtain a copy of the License at 5623 * 5624 * http://www.apache.org/licenses/LICENSE-2.0 5625 * 5626 * Unless required by applicable law or agreed to in writing, software 5627 * distributed under the License is distributed on an "AS IS" BASIS, 5628 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 5629 * See the License for the specific language governing permissions and 5630 * limitations under the License. 5592 },{"./Object.assign":29,"./ReactElement":58,"./ReactOwner":74,"./ReactUpdates":91,"./invariant":140,"./keyMirror":146}],38:[function(_dereq_,module,exports){ 5593 /** 5594 * Copyright 2013-2014, Facebook, Inc. 5595 * All rights reserved. 5596 * 5597 * This source code is licensed under the BSD-style license found in the 5598 * LICENSE file in the root directory of this source tree. An additional grant 5599 * of patent rights can be found in the PATENTS file in the same directory. 5631 5600 * 5632 5601 * @providesModule ReactComponentBrowserEnvironment … … 5741 5710 module.exports = ReactComponentBrowserEnvironment; 5742 5711 5743 },{"./ReactDOMIDOperations":45,"./ReactMarkupChecksum":66,"./ReactMount":67,"./ReactPerf":71,"./ReactReconcileTransaction":77,"./getReactRootElementInContainer":128,"./invariant":134,"./setInnerHTML":152}],37:[function(_dereq_,module,exports){ 5744 /** 5745 * Copyright 2013-2014 Facebook, Inc. 5746 * 5747 * Licensed under the Apache License, Version 2.0 (the "License"); 5748 * you may not use this file except in compliance with the License. 5749 * You may obtain a copy of the License at 5750 * 5751 * http://www.apache.org/licenses/LICENSE-2.0 5752 * 5753 * Unless required by applicable law or agreed to in writing, software 5754 * distributed under the License is distributed on an "AS IS" BASIS, 5755 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 5756 * See the License for the specific language governing permissions and 5757 * limitations under the License. 5712 },{"./ReactDOMIDOperations":47,"./ReactMarkupChecksum":69,"./ReactMount":70,"./ReactPerf":75,"./ReactReconcileTransaction":81,"./getReactRootElementInContainer":134,"./invariant":140,"./setInnerHTML":154}],39:[function(_dereq_,module,exports){ 5713 /** 5714 * Copyright 2013-2014, Facebook, Inc. 5715 * All rights reserved. 5716 * 5717 * This source code is licensed under the BSD-style license found in the 5718 * LICENSE file in the root directory of this source tree. An additional grant 5719 * of patent rights can be found in the PATENTS file in the same directory. 5758 5720 * 5759 5721 * @providesModule ReactComponentWithPureRenderMixin … … 5797 5759 module.exports = ReactComponentWithPureRenderMixin; 5798 5760 5799 },{"./shallowEqual":153}],38:[function(_dereq_,module,exports){ 5800 /** 5801 * Copyright 2013-2014 Facebook, Inc. 5802 * 5803 * Licensed under the Apache License, Version 2.0 (the "License"); 5804 * you may not use this file except in compliance with the License. 5805 * You may obtain a copy of the License at 5806 * 5807 * http://www.apache.org/licenses/LICENSE-2.0 5808 * 5809 * Unless required by applicable law or agreed to in writing, software 5810 * distributed under the License is distributed on an "AS IS" BASIS, 5811 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 5812 * See the License for the specific language governing permissions and 5813 * limitations under the License. 5761 },{"./shallowEqual":155}],40:[function(_dereq_,module,exports){ 5762 /** 5763 * Copyright 2013-2014, Facebook, Inc. 5764 * All rights reserved. 5765 * 5766 * This source code is licensed under the BSD-style license found in the 5767 * LICENSE file in the root directory of this source tree. An additional grant 5768 * of patent rights can be found in the PATENTS file in the same directory. 5814 5769 * 5815 5770 * @providesModule ReactCompositeComponent … … 5821 5776 var ReactContext = _dereq_("./ReactContext"); 5822 5777 var ReactCurrentOwner = _dereq_("./ReactCurrentOwner"); 5823 var React Descriptor = _dereq_("./ReactDescriptor");5824 var React DescriptorValidator = _dereq_("./ReactDescriptorValidator");5778 var ReactElement = _dereq_("./ReactElement"); 5779 var ReactElementValidator = _dereq_("./ReactElementValidator"); 5825 5780 var ReactEmptyComponent = _dereq_("./ReactEmptyComponent"); 5826 5781 var ReactErrorUtils = _dereq_("./ReactErrorUtils"); 5782 var ReactLegacyElement = _dereq_("./ReactLegacyElement"); 5827 5783 var ReactOwner = _dereq_("./ReactOwner"); 5828 5784 var ReactPerf = _dereq_("./ReactPerf"); … … 5832 5788 var ReactUpdates = _dereq_("./ReactUpdates"); 5833 5789 5790 var assign = _dereq_("./Object.assign"); 5834 5791 var instantiateReactComponent = _dereq_("./instantiateReactComponent"); 5835 5792 var invariant = _dereq_("./invariant"); 5836 5793 var keyMirror = _dereq_("./keyMirror"); 5837 var merge = _dereq_("./merge"); 5838 var mixInto = _dereq_("./mixInto"); 5794 var keyOf = _dereq_("./keyOf"); 5839 5795 var monitorCodeUse = _dereq_("./monitorCodeUse"); 5840 5796 var mapObject = _dereq_("./mapObject"); 5841 5797 var shouldUpdateReactComponent = _dereq_("./shouldUpdateReactComponent"); 5842 5798 var warning = _dereq_("./warning"); 5799 5800 var MIXINS_KEY = keyOf({mixins: null}); 5843 5801 5844 5802 /** … … 6145 6103 ReactPropTypeLocations.childContext 6146 6104 ); 6147 Constructor.childContextTypes = merge( 6105 Constructor.childContextTypes = assign( 6106 {}, 6148 6107 Constructor.childContextTypes, 6149 6108 childContextTypes … … 6156 6115 ReactPropTypeLocations.context 6157 6116 ); 6158 Constructor.contextTypes = merge(Constructor.contextTypes, contextTypes); 6117 Constructor.contextTypes = assign( 6118 {}, 6119 Constructor.contextTypes, 6120 contextTypes 6121 ); 6159 6122 }, 6160 6123 /** … … 6178 6141 ReactPropTypeLocations.prop 6179 6142 ); 6180 Constructor.propTypes = merge(Constructor.propTypes, propTypes); 6143 Constructor.propTypes = assign( 6144 {}, 6145 Constructor.propTypes, 6146 propTypes 6147 ); 6181 6148 }, 6182 6149 statics: function(Constructor, statics) { … … 6247 6214 ) : invariant(instance.isMounted() || 6248 6215 compositeLifeCycleState === CompositeLifeCycle.MOUNTING)); 6249 ("production" !== "development" ? invariant(compositeLifeCycleState !== CompositeLifeCycle.RECEIVING_STATE, 6216 ("production" !== "development" ? invariant( 6217 ReactCurrentOwner.current == null, 6250 6218 'replaceState(...): Cannot update during an existing state transition ' + 6251 '(such as within `render`). This could potentially cause an infinite' +6252 ' loop so it is forbidden.'6253 ) : invariant( compositeLifeCycleState !== CompositeLifeCycle.RECEIVING_STATE));6219 '(such as within `render`). Render methods should be a pure function ' + 6220 'of props and state.' 6221 ) : invariant(ReactCurrentOwner.current == null)); 6254 6222 ("production" !== "development" ? invariant(compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING, 6255 6223 'replaceState(...): Cannot update while unmounting component. This ' + … … 6259 6227 6260 6228 /** 6261 * Custom version of `mixInto`which handles policy validation and reserved6229 * Mixin helper which handles policy validation and reserved 6262 6230 * specification keys when building `ReactCompositeComponent` classses. 6263 6231 */ 6264 6232 function mixSpecIntoComponent(Constructor, spec) { 6233 if (!spec) { 6234 return; 6235 } 6236 6265 6237 ("production" !== "development" ? invariant( 6266 !React Descriptor.isValidFactory(spec),6238 !ReactLegacyElement.isValidFactory(spec), 6267 6239 'ReactCompositeComponent: You\'re attempting to ' + 6268 6240 'use a component class as a mixin. Instead, just use a regular object.' 6269 ) : invariant(!React Descriptor.isValidFactory(spec)));6241 ) : invariant(!ReactLegacyElement.isValidFactory(spec))); 6270 6242 ("production" !== "development" ? invariant( 6271 !React Descriptor.isValidDescriptor(spec),6243 !ReactElement.isValidElement(spec), 6272 6244 'ReactCompositeComponent: You\'re attempting to ' + 6273 6245 'use a component as a mixin. Instead, just use a regular object.' 6274 ) : invariant(!React Descriptor.isValidDescriptor(spec)));6246 ) : invariant(!ReactElement.isValidElement(spec))); 6275 6247 6276 6248 var proto = Constructor.prototype; 6249 6250 // By handling mixins before any other properties, we ensure the same 6251 // chaining order is applied to methods with DEFINE_MANY policy, whether 6252 // mixins are listed before or after these methods in the spec. 6253 if (spec.hasOwnProperty(MIXINS_KEY)) { 6254 RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); 6255 } 6256 6277 6257 for (var name in spec) { 6278 var property = spec[name];6279 6258 if (!spec.hasOwnProperty(name)) { 6280 6259 continue; 6281 6260 } 6282 6261 6262 if (name === MIXINS_KEY) { 6263 // We have already handled mixins in a special case above 6264 continue; 6265 } 6266 6267 var property = spec[name]; 6283 6268 validateMethodOverride(proto, name); 6284 6269 … … 6358 6343 } 6359 6344 6345 var isReserved = name in RESERVED_SPEC_KEYS; 6346 ("production" !== "development" ? invariant( 6347 !isReserved, 6348 'ReactCompositeComponent: You are attempting to define a reserved ' + 6349 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + 6350 'as an instance property instead; it will still be accessible on the ' + 6351 'constructor.', 6352 name 6353 ) : invariant(!isReserved)); 6354 6360 6355 var isInherited = name in Constructor; 6361 var result = property; 6362 if (isInherited) { 6363 var existingProperty = Constructor[name]; 6364 var existingType = typeof existingProperty; 6365 var propertyType = typeof property; 6366 ("production" !== "development" ? invariant( 6367 existingType === 'function' && propertyType === 'function', 6368 'ReactCompositeComponent: You are attempting to define ' + 6369 '`%s` on your component more than once, but that is only supported ' + 6370 'for functions, which are chained together. This conflict may be ' + 6371 'due to a mixin.', 6372 name 6373 ) : invariant(existingType === 'function' && propertyType === 'function')); 6374 result = createChainedFunction(existingProperty, property); 6375 } 6376 Constructor[name] = result; 6356 ("production" !== "development" ? invariant( 6357 !isInherited, 6358 'ReactCompositeComponent: You are attempting to define ' + 6359 '`%s` on your component more than once. This conflict may be ' + 6360 'due to a mixin.', 6361 name 6362 ) : invariant(!isInherited)); 6363 Constructor[name] = property; 6377 6364 } 6378 6365 } … … 6395 6382 one[key] === undefined, 6396 6383 'mergeObjectsWithNoDuplicateKeys(): ' + 6397 'Tried to merge two objects with the same key: %s', 6384 'Tried to merge two objects with the same key: `%s`. This conflict ' + 6385 'may be due to a mixin; in particular, this may be caused by two ' + 6386 'getInitialState() or getDefaultProps() methods returning objects ' + 6387 'with clashing keys.', 6398 6388 key 6399 6389 ) : invariant(one[key] === undefined)); … … 6451 6441 * Low Row: ReactComponent.CompositeLifeCycle 6452 6442 * 6453 * +-------+--------------------------------- ---------------------+--------+6454 * | UN | MOUNTED| UN |6455 * |MOUNTED| 6456 * +-------+--------------------------------- ---------------------+--------+6457 * | ^--------+ +------ + +------+ +------+ +--------^ |6458 * | | | | | | | || | | |6459 * | 0--|MOUNTING|-0-|RECEIV |-0-|RECEIV|-0-|RECEIV|-0-| UN |--->0 |6460 * | | | |PROPS | | PROPS| | STATE| |MOUNTING| |6461 * | | | | | | | || | | |6462 * | | | | | | | || | | |6463 * | +--------+ +------ + +------+ +------+ +--------+ |6464 * | | 6465 * +-------+--------------------------------- ---------------------+--------+6443 * +-------+---------------------------------+--------+ 6444 * | UN | MOUNTED | UN | 6445 * |MOUNTED| | MOUNTED| 6446 * +-------+---------------------------------+--------+ 6447 * | ^--------+ +-------+ +--------^ | 6448 * | | | | | | | | 6449 * | 0--|MOUNTING|-0-|RECEIVE|-0-| UN |--->0 | 6450 * | | | |PROPS | |MOUNTING| | 6451 * | | | | | | | | 6452 * | | | | | | | | 6453 * | +--------+ +-------+ +--------+ | 6454 * | | | | 6455 * +-------+---------------------------------+--------+ 6466 6456 */ 6467 6457 var CompositeLifeCycle = keyMirror({ … … 6480 6470 * changes differently. 6481 6471 */ 6482 RECEIVING_PROPS: null, 6483 /** 6484 * Components that are mounted and receiving new state are guarded against 6485 * additional state changes. 6486 */ 6487 RECEIVING_STATE: null 6472 RECEIVING_PROPS: null 6488 6473 }); 6489 6474 … … 6496 6481 * Base constructor for all composite component. 6497 6482 * 6498 * @param {React Descriptor} descriptor6483 * @param {ReactElement} element 6499 6484 * @final 6500 6485 * @internal 6501 6486 */ 6502 construct: function( descriptor) {6487 construct: function(element) { 6503 6488 // Children can be either an array or more than one argument 6504 6489 ReactComponent.Mixin.construct.apply(this, arguments); … … 6509 6494 6510 6495 // This is the public post-processed context. The real context and pending 6511 // context lives on the descriptor.6496 // context lives on the element. 6512 6497 this.context = null; 6513 6498 … … 6552 6537 } 6553 6538 6554 this.context = this._processContext(this._ descriptor._context);6539 this.context = this._processContext(this._currentElement._context); 6555 6540 this.props = this._processProps(this.props); 6556 6541 … … 6576 6561 6577 6562 this._renderedComponent = instantiateReactComponent( 6578 this._renderValidatedComponent() 6563 this._renderValidatedComponent(), 6564 this._currentElement.type // The wrapping type 6579 6565 ); 6580 6566 … … 6648 6634 // Merge with `_pendingState` if it exists, otherwise with existing state. 6649 6635 this.replaceState( 6650 merge(this._pendingState || this.state, partialState),6636 assign({}, this._pendingState || this.state, partialState), 6651 6637 callback 6652 6638 ); … … 6736 6722 ) : invariant(name in this.constructor.childContextTypes)); 6737 6723 } 6738 return merge(currentContext, childContext);6724 return assign({}, currentContext, childContext); 6739 6725 } 6740 6726 return currentContext; … … 6751 6737 */ 6752 6738 _processProps: function(newProps) { 6753 var defaultProps = this.constructor.defaultProps;6754 var props;6755 if (defaultProps) {6756 props = merge(newProps);6757 for (var propName in defaultProps) {6758 if (typeof props[propName] === 'undefined') {6759 props[propName] = defaultProps[propName];6760 }6761 }6762 } else {6763 props = newProps;6764 }6765 6739 if ("production" !== "development") { 6766 6740 var propTypes = this.constructor.propTypes; 6767 6741 if (propTypes) { 6768 this._checkPropTypes(propTypes, props, ReactPropTypeLocations.prop);6742 this._checkPropTypes(propTypes, newProps, ReactPropTypeLocations.prop); 6769 6743 } 6770 6744 } 6771 return props;6745 return newProps; 6772 6746 }, 6773 6747 … … 6781 6755 */ 6782 6756 _checkPropTypes: function(propTypes, props, location) { 6783 // TODO: Stop validating prop types here and only use the descriptor6757 // TODO: Stop validating prop types here and only use the element 6784 6758 // validation. 6785 6759 var componentName = this.constructor.displayName; … … 6800 6774 6801 6775 /** 6802 * If any of `_pending Descriptor`, `_pendingState`, or `_pendingForceUpdate`6776 * If any of `_pendingElement`, `_pendingState`, or `_pendingForceUpdate` 6803 6777 * is set, update the component. 6804 6778 * … … 6815 6789 } 6816 6790 6817 if (this._pending Descriptor== null &&6791 if (this._pendingElement == null && 6818 6792 this._pendingState == null && 6819 6793 !this._pendingForceUpdate) { … … 6823 6797 var nextContext = this.context; 6824 6798 var nextProps = this.props; 6825 var next Descriptor = this._descriptor;6826 if (this._pending Descriptor!= null) {6827 next Descriptor = this._pendingDescriptor;6828 nextContext = this._processContext(next Descriptor._context);6829 nextProps = this._processProps(next Descriptor.props);6830 this._pending Descriptor= null;6799 var nextElement = this._currentElement; 6800 if (this._pendingElement != null) { 6801 nextElement = this._pendingElement; 6802 nextContext = this._processContext(nextElement._context); 6803 nextProps = this._processProps(nextElement.props); 6804 this._pendingElement = null; 6831 6805 6832 6806 this._compositeLifeCycleState = CompositeLifeCycle.RECEIVING_PROPS; … … 6836 6810 } 6837 6811 6838 this._compositeLifeCycleState = CompositeLifeCycle.RECEIVING_STATE;6812 this._compositeLifeCycleState = null; 6839 6813 6840 6814 var nextState = this._pendingState || this.state; 6841 6815 this._pendingState = null; 6842 6816 6843 try { 6844 var shouldUpdate = 6845 this._pendingForceUpdate || 6846 !this.shouldComponentUpdate || 6847 this.shouldComponentUpdate(nextProps, nextState, nextContext); 6848 6849 if ("production" !== "development") { 6850 if (typeof shouldUpdate === "undefined") { 6851 console.warn( 6852 (this.constructor.displayName || 'ReactCompositeComponent') + 6853 '.shouldComponentUpdate(): Returned undefined instead of a ' + 6854 'boolean value. Make sure to return true or false.' 6855 ); 6856 } 6817 var shouldUpdate = 6818 this._pendingForceUpdate || 6819 !this.shouldComponentUpdate || 6820 this.shouldComponentUpdate(nextProps, nextState, nextContext); 6821 6822 if ("production" !== "development") { 6823 if (typeof shouldUpdate === "undefined") { 6824 console.warn( 6825 (this.constructor.displayName || 'ReactCompositeComponent') + 6826 '.shouldComponentUpdate(): Returned undefined instead of a ' + 6827 'boolean value. Make sure to return true or false.' 6828 ); 6857 6829 } 6858 6859 if (shouldUpdate) { 6860 this._pendingForceUpdate = false; 6861 // Will set `this.props`, `this.state` and `this.context`. 6862 this._performComponentUpdate( 6863 nextDescriptor, 6864 nextProps, 6865 nextState, 6866 nextContext, 6867 transaction 6868 ); 6869 } else { 6870 // If it's determined that a component should not update, we still want 6871 // to set props and state. 6872 this._descriptor = nextDescriptor; 6873 this.props = nextProps; 6874 this.state = nextState; 6875 this.context = nextContext; 6876 6877 // Owner cannot change because shouldUpdateReactComponent doesn't allow 6878 // it. TODO: Remove this._owner completely. 6879 this._owner = nextDescriptor._owner; 6880 } 6881 } finally { 6882 this._compositeLifeCycleState = null; 6830 } 6831 6832 if (shouldUpdate) { 6833 this._pendingForceUpdate = false; 6834 // Will set `this.props`, `this.state` and `this.context`. 6835 this._performComponentUpdate( 6836 nextElement, 6837 nextProps, 6838 nextState, 6839 nextContext, 6840 transaction 6841 ); 6842 } else { 6843 // If it's determined that a component should not update, we still want 6844 // to set props and state. 6845 this._currentElement = nextElement; 6846 this.props = nextProps; 6847 this.state = nextState; 6848 this.context = nextContext; 6849 6850 // Owner cannot change because shouldUpdateReactComponent doesn't allow 6851 // it. TODO: Remove this._owner completely. 6852 this._owner = nextElement._owner; 6883 6853 } 6884 6854 }, … … 6888 6858 * performs update. 6889 6859 * 6890 * @param {React Descriptor} nextDescriptor Next descriptor6860 * @param {ReactElement} nextElement Next element 6891 6861 * @param {object} nextProps Next public object to set as properties. 6892 6862 * @param {?object} nextState Next object to set as state. … … 6896 6866 */ 6897 6867 _performComponentUpdate: function( 6898 next Descriptor,6868 nextElement, 6899 6869 nextProps, 6900 6870 nextState, … … 6902 6872 transaction 6903 6873 ) { 6904 var prev Descriptor = this._descriptor;6874 var prevElement = this._currentElement; 6905 6875 var prevProps = this.props; 6906 6876 var prevState = this.state; … … 6911 6881 } 6912 6882 6913 this._ descriptor = nextDescriptor;6883 this._currentElement = nextElement; 6914 6884 this.props = nextProps; 6915 6885 this.state = nextState; … … 6918 6888 // Owner cannot change because shouldUpdateReactComponent doesn't allow 6919 6889 // it. TODO: Remove this._owner completely. 6920 this._owner = next Descriptor._owner;6890 this._owner = nextElement._owner; 6921 6891 6922 6892 this.updateComponent( 6923 6893 transaction, 6924 prev Descriptor6894 prevElement 6925 6895 ); 6926 6896 … … 6933 6903 }, 6934 6904 6935 receiveComponent: function(next Descriptor, transaction) {6936 if (next Descriptor === this._descriptor&&6937 next Descriptor._owner != null) {6938 // Since descriptors are immutable after the owner is rendered,6905 receiveComponent: function(nextElement, transaction) { 6906 if (nextElement === this._currentElement && 6907 nextElement._owner != null) { 6908 // Since elements are immutable after the owner is rendered, 6939 6909 // we can do a cheap identity compare here to determine if this is a 6940 6910 // superfluous reconcile. It's possible for state to be mutable but such 6941 6911 // change should trigger an update of the owner which would recreate 6942 // the descriptor. We explicitly check for the existence of an owner since6943 // it's possible for a descriptorcreated outside a composite to be6912 // the element. We explicitly check for the existence of an owner since 6913 // it's possible for a element created outside a composite to be 6944 6914 // deeply mutated and reused. 6945 6915 return; … … 6948 6918 ReactComponent.Mixin.receiveComponent.call( 6949 6919 this, 6950 next Descriptor,6920 nextElement, 6951 6921 transaction 6952 6922 ); … … 6960 6930 * 6961 6931 * @param {ReactReconcileTransaction} transaction 6962 * @param {React Descriptor} prevDescriptor6932 * @param {ReactElement} prevElement 6963 6933 * @internal 6964 6934 * @overridable … … 6967 6937 'ReactCompositeComponent', 6968 6938 'updateComponent', 6969 function(transaction, prevParent Descriptor) {6939 function(transaction, prevParentElement) { 6970 6940 ReactComponent.Mixin.updateComponent.call( 6971 6941 this, 6972 6942 transaction, 6973 prevParent Descriptor6943 prevParentElement 6974 6944 ); 6975 6945 6976 6946 var prevComponentInstance = this._renderedComponent; 6977 var prev Descriptor = prevComponentInstance._descriptor;6978 var next Descriptor= this._renderValidatedComponent();6979 if (shouldUpdateReactComponent(prev Descriptor, nextDescriptor)) {6980 prevComponentInstance.receiveComponent(next Descriptor, transaction);6947 var prevElement = prevComponentInstance._currentElement; 6948 var nextElement = this._renderValidatedComponent(); 6949 if (shouldUpdateReactComponent(prevElement, nextElement)) { 6950 prevComponentInstance.receiveComponent(nextElement, transaction); 6981 6951 } else { 6982 6952 // These two IDs are actually the same! But nothing should rely on that. … … 6984 6954 var prevComponentID = prevComponentInstance._rootNodeID; 6985 6955 prevComponentInstance.unmountComponent(); 6986 this._renderedComponent = instantiateReactComponent(nextDescriptor); 6956 this._renderedComponent = instantiateReactComponent( 6957 nextElement, 6958 this._currentElement.type 6959 ); 6987 6960 var nextMarkup = this._renderedComponent.mountComponent( 6988 6961 thisID, … … 7022 6995 compositeLifeCycleState === CompositeLifeCycle.MOUNTING)); 7023 6996 ("production" !== "development" ? invariant( 7024 compositeLifeCycleState !== CompositeLifeCycle. RECEIVING_STATE&&7025 compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING,6997 compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING && 6998 ReactCurrentOwner.current == null, 7026 6999 'forceUpdate(...): Cannot force an update while unmounting component ' + 7027 'or during an existing state transition (such as within `render`).'7028 ) : invariant(compositeLifeCycleState !== CompositeLifeCycle. RECEIVING_STATE&&7029 compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING));7000 'or within a `render` function.' 7001 ) : invariant(compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING && 7002 ReactCurrentOwner.current == null)); 7030 7003 this._pendingForceUpdate = true; 7031 7004 ReactUpdates.enqueueUpdate(this, callback); … … 7042 7015 var previousContext = ReactContext.current; 7043 7016 ReactContext.current = this._processChildContext( 7044 this._ descriptor._context7017 this._currentElement._context 7045 7018 ); 7046 7019 ReactCurrentOwner.current = this; … … 7058 7031 } 7059 7032 ("production" !== "development" ? invariant( 7060 React Descriptor.isValidDescriptor(renderedComponent),7033 ReactElement.isValidElement(renderedComponent), 7061 7034 '%s.render(): A valid ReactComponent must be returned. You may have ' + 7062 7035 'returned undefined, an array or some other invalid object.', 7063 7036 this.constructor.displayName || 'ReactCompositeComponent' 7064 ) : invariant(React Descriptor.isValidDescriptor(renderedComponent)));7037 ) : invariant(ReactElement.isValidElement(renderedComponent))); 7065 7038 return renderedComponent; 7066 7039 } … … 7091 7064 _bindAutoBindMethod: function(method) { 7092 7065 var component = this; 7093 var boundMethod = function() { 7094 return method.apply(component, arguments); 7095 }; 7066 var boundMethod = method.bind(component); 7096 7067 if ("production" !== "development") { 7097 7068 boundMethod.__reactBoundContext = component; … … 7131 7102 7132 7103 var ReactCompositeComponentBase = function() {}; 7133 mixInto(ReactCompositeComponentBase, ReactComponent.Mixin); 7134 mixInto(ReactCompositeComponentBase, ReactOwner.Mixin); 7135 mixInto(ReactCompositeComponentBase, ReactPropTransferer.Mixin); 7136 mixInto(ReactCompositeComponentBase, ReactCompositeComponentMixin); 7104 assign( 7105 ReactCompositeComponentBase.prototype, 7106 ReactComponent.Mixin, 7107 ReactOwner.Mixin, 7108 ReactPropTransferer.Mixin, 7109 ReactCompositeComponentMixin 7110 ); 7137 7111 7138 7112 /** … … 7158 7132 */ 7159 7133 createClass: function(spec) { 7160 var Constructor = function(props, owner) { 7161 this.construct(props, owner); 7134 var Constructor = function(props) { 7135 // This constructor is overridden by mocks. The argument is used 7136 // by mocks to assert on what gets mounted. This will later be used 7137 // by the stand-alone class implementation. 7162 7138 }; 7163 7139 Constructor.prototype = new ReactCompositeComponentBase(); … … 7202 7178 } 7203 7179 7204 var descriptorFactory = ReactDescriptor.createFactory(Constructor);7205 7206 7180 if ("production" !== "development") { 7207 return ReactDescriptorValidator.createFactory( 7208 descriptorFactory, 7209 Constructor.propTypes, 7210 Constructor.contextTypes 7181 return ReactLegacyElement.wrapFactory( 7182 ReactElementValidator.createFactory(Constructor) 7211 7183 ); 7212 7184 } 7213 7214 return descriptorFactory; 7185 return ReactLegacyElement.wrapFactory( 7186 ReactElement.createFactory(Constructor) 7187 ); 7215 7188 }, 7216 7189 … … 7224 7197 module.exports = ReactCompositeComponent; 7225 7198 7226 },{"./ReactComponent":35,"./ReactContext":39,"./ReactCurrentOwner":40,"./ReactDescriptor":56,"./ReactDescriptorValidator":57,"./ReactEmptyComponent":58,"./ReactErrorUtils":59,"./ReactOwner":70,"./ReactPerf":71,"./ReactPropTransferer":72,"./ReactPropTypeLocationNames":73,"./ReactPropTypeLocations":74,"./ReactUpdates":87,"./instantiateReactComponent":133,"./invariant":134,"./keyMirror":140,"./mapObject":142,"./merge":144,"./mixInto":147,"./monitorCodeUse":148,"./shouldUpdateReactComponent":154,"./warning":158}],39:[function(_dereq_,module,exports){ 7227 /** 7228 * Copyright 2013-2014 Facebook, Inc. 7229 * 7230 * Licensed under the Apache License, Version 2.0 (the "License"); 7231 * you may not use this file except in compliance with the License. 7232 * You may obtain a copy of the License at 7233 * 7234 * http://www.apache.org/licenses/LICENSE-2.0 7235 * 7236 * Unless required by applicable law or agreed to in writing, software 7237 * distributed under the License is distributed on an "AS IS" BASIS, 7238 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 7239 * See the License for the specific language governing permissions and 7240 * limitations under the License. 7199 },{"./Object.assign":29,"./ReactComponent":37,"./ReactContext":41,"./ReactCurrentOwner":42,"./ReactElement":58,"./ReactElementValidator":59,"./ReactEmptyComponent":60,"./ReactErrorUtils":61,"./ReactLegacyElement":67,"./ReactOwner":74,"./ReactPerf":75,"./ReactPropTransferer":76,"./ReactPropTypeLocationNames":77,"./ReactPropTypeLocations":78,"./ReactUpdates":91,"./instantiateReactComponent":139,"./invariant":140,"./keyMirror":146,"./keyOf":147,"./mapObject":148,"./monitorCodeUse":150,"./shouldUpdateReactComponent":156,"./warning":160}],41:[function(_dereq_,module,exports){ 7200 /** 7201 * Copyright 2013-2014, Facebook, Inc. 7202 * All rights reserved. 7203 * 7204 * This source code is licensed under the BSD-style license found in the 7205 * LICENSE file in the root directory of this source tree. An additional grant 7206 * of patent rights can be found in the PATENTS file in the same directory. 7241 7207 * 7242 7208 * @providesModule ReactContext … … 7245 7211 "use strict"; 7246 7212 7247 var merge = _dereq_("./merge");7213 var assign = _dereq_("./Object.assign"); 7248 7214 7249 7215 /** … … 7267 7233 * 7268 7234 * render: function() { 7269 * var children = ReactContext.withContext({foo: 'foo'} () => (7235 * var children = ReactContext.withContext({foo: 'foo'}, () => ( 7270 7236 * 7271 7237 * )); … … 7280 7246 var result; 7281 7247 var previousContext = ReactContext.current; 7282 ReactContext.current = merge(previousContext, newContext);7248 ReactContext.current = assign({}, previousContext, newContext); 7283 7249 try { 7284 7250 result = scopedCallback(); … … 7293 7259 module.exports = ReactContext; 7294 7260 7295 },{"./merge":144}],40:[function(_dereq_,module,exports){ 7296 /** 7297 * Copyright 2013-2014 Facebook, Inc. 7298 * 7299 * Licensed under the Apache License, Version 2.0 (the "License"); 7300 * you may not use this file except in compliance with the License. 7301 * You may obtain a copy of the License at 7302 * 7303 * http://www.apache.org/licenses/LICENSE-2.0 7304 * 7305 * Unless required by applicable law or agreed to in writing, software 7306 * distributed under the License is distributed on an "AS IS" BASIS, 7307 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 7308 * See the License for the specific language governing permissions and 7309 * limitations under the License. 7261 },{"./Object.assign":29}],42:[function(_dereq_,module,exports){ 7262 /** 7263 * Copyright 2013-2014, Facebook, Inc. 7264 * All rights reserved. 7265 * 7266 * This source code is licensed under the BSD-style license found in the 7267 * LICENSE file in the root directory of this source tree. An additional grant 7268 * of patent rights can be found in the PATENTS file in the same directory. 7310 7269 * 7311 7270 * @providesModule ReactCurrentOwner … … 7334 7293 module.exports = ReactCurrentOwner; 7335 7294 7336 },{}],41:[function(_dereq_,module,exports){ 7337 /** 7338 * Copyright 2013-2014 Facebook, Inc. 7339 * 7340 * Licensed under the Apache License, Version 2.0 (the "License"); 7341 * you may not use this file except in compliance with the License. 7342 * You may obtain a copy of the License at 7343 * 7344 * http://www.apache.org/licenses/LICENSE-2.0 7345 * 7346 * Unless required by applicable law or agreed to in writing, software 7347 * distributed under the License is distributed on an "AS IS" BASIS, 7348 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 7349 * See the License for the specific language governing permissions and 7350 * limitations under the License. 7295 },{}],43:[function(_dereq_,module,exports){ 7296 /** 7297 * Copyright 2013-2014, Facebook, Inc. 7298 * All rights reserved. 7299 * 7300 * This source code is licensed under the BSD-style license found in the 7301 * LICENSE file in the root directory of this source tree. An additional grant 7302 * of patent rights can be found in the PATENTS file in the same directory. 7351 7303 * 7352 7304 * @providesModule ReactDOM … … 7356 7308 "use strict"; 7357 7309 7358 var ReactDescriptor = _dereq_("./ReactDescriptor"); 7359 var ReactDescriptorValidator = _dereq_("./ReactDescriptorValidator"); 7360 var ReactDOMComponent = _dereq_("./ReactDOMComponent"); 7361 7362 var mergeInto = _dereq_("./mergeInto"); 7310 var ReactElement = _dereq_("./ReactElement"); 7311 var ReactElementValidator = _dereq_("./ReactElementValidator"); 7312 var ReactLegacyElement = _dereq_("./ReactLegacyElement"); 7313 7363 7314 var mapObject = _dereq_("./mapObject"); 7364 7315 7365 7316 /** 7366 * Creates a new React class that is idempotent and capable of containing other 7367 * React components. It accepts event listeners and DOM properties that are 7368 * valid according to `DOMProperty`. 7369 * 7370 * - Event listeners: `onClick`, `onMouseDown`, etc. 7371 * - DOM properties: `className`, `name`, `title`, etc. 7372 * 7373 * The `style` property functions differently from the DOM API. It accepts an 7374 * object mapping of style properties to values. 7375 * 7376 * @param {boolean} omitClose True if the close tag should be omitted. 7317 * Create a factory that creates HTML tag elements. 7318 * 7377 7319 * @param {string} tag Tag name (e.g. `div`). 7378 7320 * @private 7379 7321 */ 7380 function createDOMComponentClass(omitClose, tag) { 7381 var Constructor = function(descriptor) { 7382 this.construct(descriptor); 7383 }; 7384 Constructor.prototype = new ReactDOMComponent(tag, omitClose); 7385 Constructor.prototype.constructor = Constructor; 7386 Constructor.displayName = tag; 7387 7388 var ConvenienceConstructor = ReactDescriptor.createFactory(Constructor); 7389 7322 function createDOMFactory(tag) { 7390 7323 if ("production" !== "development") { 7391 return React DescriptorValidator.createFactory(7392 ConvenienceConstructor7324 return ReactLegacyElement.markNonLegacyFactory( 7325 ReactElementValidator.createFactory(tag) 7393 7326 ); 7394 7327 } 7395 7396 return ConvenienceConstructor; 7328 return ReactLegacyElement.markNonLegacyFactory( 7329 ReactElement.createFactory(tag) 7330 ); 7397 7331 } 7398 7332 … … 7404 7338 */ 7405 7339 var ReactDOM = mapObject({ 7406 a: false,7407 abbr: false,7408 address: false,7409 area: true,7410 article: false,7411 aside: false,7412 audio: false,7413 b: false,7414 base: true,7415 bdi: false,7416 bdo: false,7417 big: false,7418 blockquote: false,7419 body: false,7420 br: true,7421 button: false,7422 canvas: false,7423 caption: false,7424 cite: false,7425 code: false,7426 col: true,7427 colgroup: false,7428 data: false,7429 datalist: false,7430 dd: false,7431 del: false,7432 details: false,7433 dfn: false,7434 dialog: false,7435 div: false,7436 dl: false,7437 dt: false,7438 em: false,7439 embed: true,7440 fieldset: false,7441 figcaption: false,7442 figure: false,7443 footer: false,7444 form: false, // NOTE: Injected, see `ReactDOMForm`.7445 h1: false,7446 h2: false,7447 h3: false,7448 h4: false,7449 h5: false,7450 h6: false,7451 head: false,7452 header: false,7453 hr: true,7454 html: false,7455 i: false,7456 iframe: false,7457 img: true,7458 input: true,7459 ins: false,7460 kbd: false,7461 keygen: true,7462 label: false,7463 legend: false,7464 li: false,7465 link: true,7466 main: false,7467 map: false,7468 mark: false,7469 menu: false,7470 menuitem: false, // NOTE: Close tag should be omitted, but causes problems.7471 meta: true,7472 meter: false,7473 nav: false,7474 noscript: false,7475 object: false,7476 ol: false,7477 optgroup: false,7478 option: false,7479 output: false,7480 p: false,7481 param: true,7482 picture: false,7483 pre: false,7484 progress: false,7485 q: false,7486 rp: false,7487 rt: false,7488 ruby: false,7489 s: false,7490 samp: false,7491 script: false,7492 section: false,7493 select: false,7494 small: false,7495 source: true,7496 span: false,7497 strong: false,7498 style: false,7499 sub: false,7500 summary: false,7501 sup: false,7502 table: false,7503 tbody: false,7504 td: false,7505 textarea: false, // NOTE: Injected, see `ReactDOMTextarea`.7506 tfoot: false,7507 th: false,7508 thead: false,7509 time: false,7510 title: false,7511 tr: false,7512 track: true,7513 u: false,7514 ul: false,7515 'var': false,7516 video: false,7517 wbr: true,7340 a: 'a', 7341 abbr: 'abbr', 7342 address: 'address', 7343 area: 'area', 7344 article: 'article', 7345 aside: 'aside', 7346 audio: 'audio', 7347 b: 'b', 7348 base: 'base', 7349 bdi: 'bdi', 7350 bdo: 'bdo', 7351 big: 'big', 7352 blockquote: 'blockquote', 7353 body: 'body', 7354 br: 'br', 7355 button: 'button', 7356 canvas: 'canvas', 7357 caption: 'caption', 7358 cite: 'cite', 7359 code: 'code', 7360 col: 'col', 7361 colgroup: 'colgroup', 7362 data: 'data', 7363 datalist: 'datalist', 7364 dd: 'dd', 7365 del: 'del', 7366 details: 'details', 7367 dfn: 'dfn', 7368 dialog: 'dialog', 7369 div: 'div', 7370 dl: 'dl', 7371 dt: 'dt', 7372 em: 'em', 7373 embed: 'embed', 7374 fieldset: 'fieldset', 7375 figcaption: 'figcaption', 7376 figure: 'figure', 7377 footer: 'footer', 7378 form: 'form', 7379 h1: 'h1', 7380 h2: 'h2', 7381 h3: 'h3', 7382 h4: 'h4', 7383 h5: 'h5', 7384 h6: 'h6', 7385 head: 'head', 7386 header: 'header', 7387 hr: 'hr', 7388 html: 'html', 7389 i: 'i', 7390 iframe: 'iframe', 7391 img: 'img', 7392 input: 'input', 7393 ins: 'ins', 7394 kbd: 'kbd', 7395 keygen: 'keygen', 7396 label: 'label', 7397 legend: 'legend', 7398 li: 'li', 7399 link: 'link', 7400 main: 'main', 7401 map: 'map', 7402 mark: 'mark', 7403 menu: 'menu', 7404 menuitem: 'menuitem', 7405 meta: 'meta', 7406 meter: 'meter', 7407 nav: 'nav', 7408 noscript: 'noscript', 7409 object: 'object', 7410 ol: 'ol', 7411 optgroup: 'optgroup', 7412 option: 'option', 7413 output: 'output', 7414 p: 'p', 7415 param: 'param', 7416 picture: 'picture', 7417 pre: 'pre', 7418 progress: 'progress', 7419 q: 'q', 7420 rp: 'rp', 7421 rt: 'rt', 7422 ruby: 'ruby', 7423 s: 's', 7424 samp: 'samp', 7425 script: 'script', 7426 section: 'section', 7427 select: 'select', 7428 small: 'small', 7429 source: 'source', 7430 span: 'span', 7431 strong: 'strong', 7432 style: 'style', 7433 sub: 'sub', 7434 summary: 'summary', 7435 sup: 'sup', 7436 table: 'table', 7437 tbody: 'tbody', 7438 td: 'td', 7439 textarea: 'textarea', 7440 tfoot: 'tfoot', 7441 th: 'th', 7442 thead: 'thead', 7443 time: 'time', 7444 title: 'title', 7445 tr: 'tr', 7446 track: 'track', 7447 u: 'u', 7448 ul: 'ul', 7449 'var': 'var', 7450 video: 'video', 7451 wbr: 'wbr', 7518 7452 7519 7453 // SVG 7520 circle: false, 7521 defs: false, 7522 ellipse: false, 7523 g: false, 7524 line: false, 7525 linearGradient: false, 7526 mask: false, 7527 path: false, 7528 pattern: false, 7529 polygon: false, 7530 polyline: false, 7531 radialGradient: false, 7532 rect: false, 7533 stop: false, 7534 svg: false, 7535 text: false, 7536 tspan: false 7537 }, createDOMComponentClass); 7538 7539 var injection = { 7540 injectComponentClasses: function(componentClasses) { 7541 mergeInto(ReactDOM, componentClasses); 7542 } 7543 }; 7544 7545 ReactDOM.injection = injection; 7454 circle: 'circle', 7455 defs: 'defs', 7456 ellipse: 'ellipse', 7457 g: 'g', 7458 line: 'line', 7459 linearGradient: 'linearGradient', 7460 mask: 'mask', 7461 path: 'path', 7462 pattern: 'pattern', 7463 polygon: 'polygon', 7464 polyline: 'polyline', 7465 radialGradient: 'radialGradient', 7466 rect: 'rect', 7467 stop: 'stop', 7468 svg: 'svg', 7469 text: 'text', 7470 tspan: 'tspan' 7471 7472 }, createDOMFactory); 7546 7473 7547 7474 module.exports = ReactDOM; 7548 7475 7549 },{"./ReactDOMComponent":43,"./ReactDescriptor":56,"./ReactDescriptorValidator":57,"./mapObject":142,"./mergeInto":146}],42:[function(_dereq_,module,exports){ 7550 /** 7551 * Copyright 2013-2014 Facebook, Inc. 7552 * 7553 * Licensed under the Apache License, Version 2.0 (the "License"); 7554 * you may not use this file except in compliance with the License. 7555 * You may obtain a copy of the License at 7556 * 7557 * http://www.apache.org/licenses/LICENSE-2.0 7558 * 7559 * Unless required by applicable law or agreed to in writing, software 7560 * distributed under the License is distributed on an "AS IS" BASIS, 7561 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 7562 * See the License for the specific language governing permissions and 7563 * limitations under the License. 7476 },{"./ReactElement":58,"./ReactElementValidator":59,"./ReactLegacyElement":67,"./mapObject":148}],44:[function(_dereq_,module,exports){ 7477 /** 7478 * Copyright 2013-2014, Facebook, Inc. 7479 * All rights reserved. 7480 * 7481 * This source code is licensed under the BSD-style license found in the 7482 * LICENSE file in the root directory of this source tree. An additional grant 7483 * of patent rights can be found in the PATENTS file in the same directory. 7564 7484 * 7565 7485 * @providesModule ReactDOMButton … … 7571 7491 var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin"); 7572 7492 var ReactCompositeComponent = _dereq_("./ReactCompositeComponent"); 7493 var ReactElement = _dereq_("./ReactElement"); 7573 7494 var ReactDOM = _dereq_("./ReactDOM"); 7574 7495 7575 7496 var keyMirror = _dereq_("./keyMirror"); 7576 7497 7577 // Store a reference to the <button> `ReactDOMComponent`. 7578 var button = React DOM.button;7498 // Store a reference to the <button> `ReactDOMComponent`. TODO: use string 7499 var button = ReactElement.createFactory(ReactDOM.button.type); 7579 7500 7580 7501 var mouseListenerNames = keyMirror({ … … 7618 7539 module.exports = ReactDOMButton; 7619 7540 7620 },{"./AutoFocusMixin":1,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./keyMirror":140}],43:[function(_dereq_,module,exports){ 7621 /** 7622 * Copyright 2013-2014 Facebook, Inc. 7623 * 7624 * Licensed under the Apache License, Version 2.0 (the "License"); 7625 * you may not use this file except in compliance with the License. 7626 * You may obtain a copy of the License at 7627 * 7628 * http://www.apache.org/licenses/LICENSE-2.0 7629 * 7630 * Unless required by applicable law or agreed to in writing, software 7631 * distributed under the License is distributed on an "AS IS" BASIS, 7632 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 7633 * See the License for the specific language governing permissions and 7634 * limitations under the License. 7541 },{"./AutoFocusMixin":2,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58,"./keyMirror":146}],45:[function(_dereq_,module,exports){ 7542 /** 7543 * Copyright 2013-2014, Facebook, Inc. 7544 * All rights reserved. 7545 * 7546 * This source code is licensed under the BSD-style license found in the 7547 * LICENSE file in the root directory of this source tree. An additional grant 7548 * of patent rights can be found in the PATENTS file in the same directory. 7635 7549 * 7636 7550 * @providesModule ReactDOMComponent … … 7650 7564 var ReactPerf = _dereq_("./ReactPerf"); 7651 7565 7566 var assign = _dereq_("./Object.assign"); 7652 7567 var escapeTextForBrowser = _dereq_("./escapeTextForBrowser"); 7653 7568 var invariant = _dereq_("./invariant"); 7569 var isEventSupported = _dereq_("./isEventSupported"); 7654 7570 var keyOf = _dereq_("./keyOf"); 7655 var merge = _dereq_("./merge"); 7656 var mixInto = _dereq_("./mixInto"); 7571 var monitorCodeUse = _dereq_("./monitorCodeUse"); 7657 7572 7658 7573 var deleteListener = ReactBrowserEventEmitter.deleteListener; … … 7679 7594 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.' 7680 7595 ) : invariant(props.children == null || props.dangerouslySetInnerHTML == null)); 7596 if ("production" !== "development") { 7597 if (props.contentEditable && props.children != null) { 7598 console.warn( 7599 'A component is `contentEditable` and contains `children` managed by ' + 7600 'React. It is now your responsibility to guarantee that none of those '+ 7601 'nodes are unexpectedly modified or duplicated. This is probably not ' + 7602 'intentional.' 7603 ); 7604 } 7605 } 7681 7606 ("production" !== "development" ? invariant( 7682 7607 props.style == null || typeof props.style === 'object', … … 7687 7612 7688 7613 function putListener(id, registrationName, listener, transaction) { 7614 if ("production" !== "development") { 7615 // IE8 has no API for event capturing and the `onScroll` event doesn't 7616 // bubble. 7617 if (registrationName === 'onScroll' && 7618 !isEventSupported('scroll', true)) { 7619 monitorCodeUse('react_no_scroll_event'); 7620 console.warn('This browser doesn\'t support the `onScroll` event'); 7621 } 7622 } 7689 7623 var container = ReactMount.findReactContainerForID(id); 7690 7624 if (container) { … … 7701 7635 } 7702 7636 7703 7704 /** 7637 // For HTML, certain tags should omit their close tag. We keep a whitelist for 7638 // those special cased tags. 7639 7640 var omittedCloseTags = { 7641 'area': true, 7642 'base': true, 7643 'br': true, 7644 'col': true, 7645 'embed': true, 7646 'hr': true, 7647 'img': true, 7648 'input': true, 7649 'keygen': true, 7650 'link': true, 7651 'meta': true, 7652 'param': true, 7653 'source': true, 7654 'track': true, 7655 'wbr': true 7656 // NOTE: menuitem's close tag should be omitted, but that causes problems. 7657 }; 7658 7659 // We accept any tag to be rendered but since this gets injected into abitrary 7660 // HTML, we want to make sure that it's a safe tag. 7661 // http://www.w3.org/TR/REC-xml/#NT-Name 7662 7663 var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/; // Simplified subset 7664 var validatedTagCache = {}; 7665 var hasOwnProperty = {}.hasOwnProperty; 7666 7667 function validateDangerousTag(tag) { 7668 if (!hasOwnProperty.call(validatedTagCache, tag)) { 7669 ("production" !== "development" ? invariant(VALID_TAG_REGEX.test(tag), 'Invalid tag: %s', tag) : invariant(VALID_TAG_REGEX.test(tag))); 7670 validatedTagCache[tag] = true; 7671 } 7672 } 7673 7674 /** 7675 * Creates a new React class that is idempotent and capable of containing other 7676 * React components. It accepts event listeners and DOM properties that are 7677 * valid according to `DOMProperty`. 7678 * 7679 * - Event listeners: `onClick`, `onMouseDown`, etc. 7680 * - DOM properties: `className`, `name`, `title`, etc. 7681 * 7682 * The `style` property functions differently from the DOM API. It accepts an 7683 * object mapping of style properties to values. 7684 * 7705 7685 * @constructor ReactDOMComponent 7706 7686 * @extends ReactComponent 7707 7687 * @extends ReactMultiChild 7708 7688 */ 7709 function ReactDOMComponent(tag , omitClose) {7710 this._tagOpen = '<' + tag;7711 this._tag Close = omitClose ? '' : '</' + tag + '>';7689 function ReactDOMComponent(tag) { 7690 validateDangerousTag(tag); 7691 this._tag = tag; 7712 7692 this.tagName = tag.toUpperCase(); 7713 7693 } 7694 7695 ReactDOMComponent.displayName = 'ReactDOMComponent'; 7714 7696 7715 7697 ReactDOMComponent.Mixin = { … … 7736 7718 ); 7737 7719 assertValidProps(this.props); 7720 var closeTag = omittedCloseTags[this._tag] ? '' : '</' + this._tag + '>'; 7738 7721 return ( 7739 7722 this._createOpenTagMarkupAndPutListeners(transaction) + 7740 7723 this._createContentMarkup(transaction) + 7741 this._tagClose7724 closeTag 7742 7725 ); 7743 7726 } … … 7758 7741 _createOpenTagMarkupAndPutListeners: function(transaction) { 7759 7742 var props = this.props; 7760 var ret = this._tagOpen;7743 var ret = '<' + this._tag; 7761 7744 7762 7745 for (var propKey in props) { … … 7773 7756 if (propKey === STYLE) { 7774 7757 if (propValue) { 7775 propValue = props.style = merge(props.style);7758 propValue = props.style = assign({}, props.style); 7776 7759 } 7777 7760 propValue = CSSPropertyOperations.createMarkupForStyles(propValue); … … 7826 7809 }, 7827 7810 7828 receiveComponent: function(next Descriptor, transaction) {7829 if (next Descriptor === this._descriptor&&7830 next Descriptor._owner != null) {7831 // Since descriptors are immutable after the owner is rendered,7811 receiveComponent: function(nextElement, transaction) { 7812 if (nextElement === this._currentElement && 7813 nextElement._owner != null) { 7814 // Since elements are immutable after the owner is rendered, 7832 7815 // we can do a cheap identity compare here to determine if this is a 7833 7816 // superfluous reconcile. It's possible for state to be mutable but such 7834 7817 // change should trigger an update of the owner which would recreate 7835 // the descriptor. We explicitly check for the existence of an owner since7836 // it's possible for a descriptorcreated outside a composite to be7818 // the element. We explicitly check for the existence of an owner since 7819 // it's possible for a element created outside a composite to be 7837 7820 // deeply mutated and reused. 7838 7821 return; … … 7841 7824 ReactComponent.Mixin.receiveComponent.call( 7842 7825 this, 7843 next Descriptor,7826 nextElement, 7844 7827 transaction 7845 7828 ); … … 7851 7834 * 7852 7835 * @param {ReactReconcileTransaction} transaction 7853 * @param {React Descriptor} prevDescriptor7836 * @param {ReactElement} prevElement 7854 7837 * @internal 7855 7838 * @overridable … … 7858 7841 'ReactDOMComponent', 7859 7842 'updateComponent', 7860 function(transaction, prev Descriptor) {7861 assertValidProps(this._ descriptor.props);7843 function(transaction, prevElement) { 7844 assertValidProps(this._currentElement.props); 7862 7845 ReactComponent.Mixin.updateComponent.call( 7863 7846 this, 7864 7847 transaction, 7865 prev Descriptor7848 prevElement 7866 7849 ); 7867 this._updateDOMProperties(prev Descriptor.props, transaction);7868 this._updateDOMChildren(prev Descriptor.props, transaction);7850 this._updateDOMProperties(prevElement.props, transaction); 7851 this._updateDOMChildren(prevElement.props, transaction); 7869 7852 } 7870 7853 ), … … 7922 7905 if (propKey === STYLE) { 7923 7906 if (nextProp) { 7924 nextProp = nextProps.style = merge(nextProp);7907 nextProp = nextProps.style = assign({}, nextProp); 7925 7908 } 7926 7909 if (lastProp) { … … 8031 8014 }; 8032 8015 8033 mixInto(ReactDOMComponent, ReactComponent.Mixin); 8034 mixInto(ReactDOMComponent, ReactDOMComponent.Mixin); 8035 mixInto(ReactDOMComponent, ReactMultiChild.Mixin); 8036 mixInto(ReactDOMComponent, ReactBrowserComponentMixin); 8016 assign( 8017 ReactDOMComponent.prototype, 8018 ReactComponent.Mixin, 8019 ReactDOMComponent.Mixin, 8020 ReactMultiChild.Mixin, 8021 ReactBrowserComponentMixin 8022 ); 8037 8023 8038 8024 module.exports = ReactDOMComponent; 8039 8025 8040 },{"./CSSPropertyOperations":5,"./DOMProperty":11,"./DOMPropertyOperations":12,"./ReactBrowserComponentMixin":30,"./ReactBrowserEventEmitter":31,"./ReactComponent":35,"./ReactMount":67,"./ReactMultiChild":68,"./ReactPerf":71,"./escapeTextForBrowser":118,"./invariant":134,"./keyOf":141,"./merge":144,"./mixInto":147}],44:[function(_dereq_,module,exports){ 8041 /** 8042 * Copyright 2013-2014 Facebook, Inc. 8043 * 8044 * Licensed under the Apache License, Version 2.0 (the "License"); 8045 * you may not use this file except in compliance with the License. 8046 * You may obtain a copy of the License at 8047 * 8048 * http://www.apache.org/licenses/LICENSE-2.0 8049 * 8050 * Unless required by applicable law or agreed to in writing, software 8051 * distributed under the License is distributed on an "AS IS" BASIS, 8052 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8053 * See the License for the specific language governing permissions and 8054 * limitations under the License. 8026 },{"./CSSPropertyOperations":6,"./DOMProperty":12,"./DOMPropertyOperations":13,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactBrowserEventEmitter":33,"./ReactComponent":37,"./ReactMount":70,"./ReactMultiChild":71,"./ReactPerf":75,"./escapeTextForBrowser":123,"./invariant":140,"./isEventSupported":141,"./keyOf":147,"./monitorCodeUse":150}],46:[function(_dereq_,module,exports){ 8027 /** 8028 * Copyright 2013-2014, Facebook, Inc. 8029 * All rights reserved. 8030 * 8031 * This source code is licensed under the BSD-style license found in the 8032 * LICENSE file in the root directory of this source tree. An additional grant 8033 * of patent rights can be found in the PATENTS file in the same directory. 8055 8034 * 8056 8035 * @providesModule ReactDOMForm … … 8063 8042 var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin"); 8064 8043 var ReactCompositeComponent = _dereq_("./ReactCompositeComponent"); 8044 var ReactElement = _dereq_("./ReactElement"); 8065 8045 var ReactDOM = _dereq_("./ReactDOM"); 8066 8046 8067 // Store a reference to the <form> `ReactDOMComponent`. 8068 var form = React DOM.form;8047 // Store a reference to the <form> `ReactDOMComponent`. TODO: use string 8048 var form = ReactElement.createFactory(ReactDOM.form.type); 8069 8049 8070 8050 /** … … 8083 8063 // `jshint` fails to parse JSX so in order for linting to work in the open 8084 8064 // source repo, we need to just use `ReactDOM.form`. 8085 return this.transferPropsTo(form(null, this.props.children));8065 return form(this.props); 8086 8066 }, 8087 8067 … … 8094 8074 module.exports = ReactDOMForm; 8095 8075 8096 },{"./EventConstants":16,"./LocalEventTrapMixin":26,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41}],45:[function(_dereq_,module,exports){ 8097 /** 8098 * Copyright 2013-2014 Facebook, Inc. 8099 * 8100 * Licensed under the Apache License, Version 2.0 (the "License"); 8101 * you may not use this file except in compliance with the License. 8102 * You may obtain a copy of the License at 8103 * 8104 * http://www.apache.org/licenses/LICENSE-2.0 8105 * 8106 * Unless required by applicable law or agreed to in writing, software 8107 * distributed under the License is distributed on an "AS IS" BASIS, 8108 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8109 * See the License for the specific language governing permissions and 8110 * limitations under the License. 8076 },{"./EventConstants":17,"./LocalEventTrapMixin":27,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58}],47:[function(_dereq_,module,exports){ 8077 /** 8078 * Copyright 2013-2014, Facebook, Inc. 8079 * All rights reserved. 8080 * 8081 * This source code is licensed under the BSD-style license found in the 8082 * LICENSE file in the root directory of this source tree. An additional grant 8083 * of patent rights can be found in the PATENTS file in the same directory. 8111 8084 * 8112 8085 * @providesModule ReactDOMIDOperations … … 8285 8258 module.exports = ReactDOMIDOperations; 8286 8259 8287 },{"./CSSPropertyOperations":5,"./DOMChildrenOperations":10,"./DOMPropertyOperations":12,"./ReactMount":67,"./ReactPerf":71,"./invariant":134,"./setInnerHTML":152}],46:[function(_dereq_,module,exports){ 8288 /** 8289 * Copyright 2013-2014 Facebook, Inc. 8290 * 8291 * Licensed under the Apache License, Version 2.0 (the "License"); 8292 * you may not use this file except in compliance with the License. 8293 * You may obtain a copy of the License at 8294 * 8295 * http://www.apache.org/licenses/LICENSE-2.0 8296 * 8297 * Unless required by applicable law or agreed to in writing, software 8298 * distributed under the License is distributed on an "AS IS" BASIS, 8299 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8300 * See the License for the specific language governing permissions and 8301 * limitations under the License. 8260 },{"./CSSPropertyOperations":6,"./DOMChildrenOperations":11,"./DOMPropertyOperations":13,"./ReactMount":70,"./ReactPerf":75,"./invariant":140,"./setInnerHTML":154}],48:[function(_dereq_,module,exports){ 8261 /** 8262 * Copyright 2013-2014, Facebook, Inc. 8263 * All rights reserved. 8264 * 8265 * This source code is licensed under the BSD-style license found in the 8266 * LICENSE file in the root directory of this source tree. An additional grant 8267 * of patent rights can be found in the PATENTS file in the same directory. 8302 8268 * 8303 8269 * @providesModule ReactDOMImg … … 8310 8276 var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin"); 8311 8277 var ReactCompositeComponent = _dereq_("./ReactCompositeComponent"); 8278 var ReactElement = _dereq_("./ReactElement"); 8312 8279 var ReactDOM = _dereq_("./ReactDOM"); 8313 8280 8314 // Store a reference to the <img> `ReactDOMComponent`. 8315 var img = React DOM.img;8281 // Store a reference to the <img> `ReactDOMComponent`. TODO: use string 8282 var img = ReactElement.createFactory(ReactDOM.img.type); 8316 8283 8317 8284 /** … … 8339 8306 module.exports = ReactDOMImg; 8340 8307 8341 },{"./EventConstants":16,"./LocalEventTrapMixin":26,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41}],47:[function(_dereq_,module,exports){ 8342 /** 8343 * Copyright 2013-2014 Facebook, Inc. 8344 * 8345 * Licensed under the Apache License, Version 2.0 (the "License"); 8346 * you may not use this file except in compliance with the License. 8347 * You may obtain a copy of the License at 8348 * 8349 * http://www.apache.org/licenses/LICENSE-2.0 8350 * 8351 * Unless required by applicable law or agreed to in writing, software 8352 * distributed under the License is distributed on an "AS IS" BASIS, 8353 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8354 * See the License for the specific language governing permissions and 8355 * limitations under the License. 8308 },{"./EventConstants":17,"./LocalEventTrapMixin":27,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58}],49:[function(_dereq_,module,exports){ 8309 /** 8310 * Copyright 2013-2014, Facebook, Inc. 8311 * All rights reserved. 8312 * 8313 * This source code is licensed under the BSD-style license found in the 8314 * LICENSE file in the root directory of this source tree. An additional grant 8315 * of patent rights can be found in the PATENTS file in the same directory. 8356 8316 * 8357 8317 * @providesModule ReactDOMInput … … 8365 8325 var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin"); 8366 8326 var ReactCompositeComponent = _dereq_("./ReactCompositeComponent"); 8327 var ReactElement = _dereq_("./ReactElement"); 8367 8328 var ReactDOM = _dereq_("./ReactDOM"); 8368 8329 var ReactMount = _dereq_("./ReactMount"); 8369 8330 var ReactUpdates = _dereq_("./ReactUpdates"); 8331 8332 var assign = _dereq_("./Object.assign"); 8370 8333 var invariant = _dereq_("./invariant"); 8371 var merge = _dereq_("./merge"); 8372 8373 // Store a reference to the <input> `ReactDOMComponent`. 8374 var input = ReactDOM.input; 8334 8335 // Store a reference to the <input> `ReactDOMComponent`. TODO: use string 8336 var input = ReactElement.createFactory(ReactDOM.input.type); 8375 8337 8376 8338 var instancesByReactID = {}; 8339 8340 function forceUpdateIfMounted() { 8341 /*jshint validthis:true */ 8342 if (this.isMounted()) { 8343 this.forceUpdate(); 8344 } 8345 } 8377 8346 8378 8347 /** … … 8400 8369 var defaultValue = this.props.defaultValue; 8401 8370 return { 8402 checked: this.props.defaultChecked || false,8403 value: defaultValue != null ? defaultValue : null8371 initialChecked: this.props.defaultChecked || false, 8372 initialValue: defaultValue != null ? defaultValue : null 8404 8373 }; 8405 },8406 8407 shouldComponentUpdate: function() {8408 // Defer any updates to this component during the `onChange` handler.8409 return !this._isChanging;8410 8374 }, 8411 8375 8412 8376 render: function() { 8413 8377 // Clone `this.props` so we don't mutate the input. 8414 var props = merge(this.props);8378 var props = assign({}, this.props); 8415 8379 8416 8380 props.defaultChecked = null; … … 8418 8382 8419 8383 var value = LinkedValueUtils.getValue(this); 8420 props.value = value != null ? value : this.state. value;8384 props.value = value != null ? value : this.state.initialValue; 8421 8385 8422 8386 var checked = LinkedValueUtils.getChecked(this); 8423 props.checked = checked != null ? checked : this.state. checked;8387 props.checked = checked != null ? checked : this.state.initialChecked; 8424 8388 8425 8389 props.onChange = this._handleChange; … … 8461 8425 var onChange = LinkedValueUtils.getOnChange(this); 8462 8426 if (onChange) { 8463 this._isChanging = true;8464 8427 returnValue = onChange.call(this, event); 8465 this._isChanging = false; 8466 } 8467 this.setState({ 8468 checked: event.target.checked, 8469 value: event.target.value 8470 }); 8428 } 8429 // Here we use asap to wait until all updates have propagated, which 8430 // is important when using controlled components within layers: 8431 // https://github.com/facebook/react/issues/1698 8432 ReactUpdates.asap(forceUpdateIfMounted, this); 8471 8433 8472 8434 var name = this.props.name; … … 8506 8468 otherID 8507 8469 ) : invariant(otherInstance)); 8508 // In some cases, this will actually change the `checked` state value. 8509 // In other cases, there's no change but this forces a reconcile upon 8510 // which componentDidUpdate will reset the DOM property to whatever it 8511 // should be. 8512 otherInstance.setState({ 8513 checked: false 8514 }); 8470 // If this is a controlled radio button group, forcing the input that 8471 // was previously checked to update will cause it to be come re-checked 8472 // as appropriate. 8473 ReactUpdates.asap(forceUpdateIfMounted, otherInstance); 8515 8474 } 8516 8475 } … … 8523 8482 module.exports = ReactDOMInput; 8524 8483 8525 },{"./AutoFocusMixin":1,"./DOMPropertyOperations":12,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./ReactMount":67,"./invariant":134,"./merge":144}],48:[function(_dereq_,module,exports){ 8526 /** 8527 * Copyright 2013-2014 Facebook, Inc. 8528 * 8529 * Licensed under the Apache License, Version 2.0 (the "License"); 8530 * you may not use this file except in compliance with the License. 8531 * You may obtain a copy of the License at 8532 * 8533 * http://www.apache.org/licenses/LICENSE-2.0 8534 * 8535 * Unless required by applicable law or agreed to in writing, software 8536 * distributed under the License is distributed on an "AS IS" BASIS, 8537 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8538 * See the License for the specific language governing permissions and 8539 * limitations under the License. 8484 },{"./AutoFocusMixin":2,"./DOMPropertyOperations":13,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58,"./ReactMount":70,"./ReactUpdates":91,"./invariant":140}],50:[function(_dereq_,module,exports){ 8485 /** 8486 * Copyright 2013-2014, Facebook, Inc. 8487 * All rights reserved. 8488 * 8489 * This source code is licensed under the BSD-style license found in the 8490 * LICENSE file in the root directory of this source tree. An additional grant 8491 * of patent rights can be found in the PATENTS file in the same directory. 8540 8492 * 8541 8493 * @providesModule ReactDOMOption … … 8546 8498 var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin"); 8547 8499 var ReactCompositeComponent = _dereq_("./ReactCompositeComponent"); 8500 var ReactElement = _dereq_("./ReactElement"); 8548 8501 var ReactDOM = _dereq_("./ReactDOM"); 8549 8502 8550 8503 var warning = _dereq_("./warning"); 8551 8504 8552 // Store a reference to the <option> `ReactDOMComponent`. 8553 var option = React DOM.option;8505 // Store a reference to the <option> `ReactDOMComponent`. TODO: use string 8506 var option = ReactElement.createFactory(ReactDOM.option.type); 8554 8507 8555 8508 /** … … 8580 8533 module.exports = ReactDOMOption; 8581 8534 8582 },{"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./warning":158}],49:[function(_dereq_,module,exports){ 8583 /** 8584 * Copyright 2013-2014 Facebook, Inc. 8585 * 8586 * Licensed under the Apache License, Version 2.0 (the "License"); 8587 * you may not use this file except in compliance with the License. 8588 * You may obtain a copy of the License at 8589 * 8590 * http://www.apache.org/licenses/LICENSE-2.0 8591 * 8592 * Unless required by applicable law or agreed to in writing, software 8593 * distributed under the License is distributed on an "AS IS" BASIS, 8594 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8595 * See the License for the specific language governing permissions and 8596 * limitations under the License. 8535 },{"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58,"./warning":160}],51:[function(_dereq_,module,exports){ 8536 /** 8537 * Copyright 2013-2014, Facebook, Inc. 8538 * All rights reserved. 8539 * 8540 * This source code is licensed under the BSD-style license found in the 8541 * LICENSE file in the root directory of this source tree. An additional grant 8542 * of patent rights can be found in the PATENTS file in the same directory. 8597 8543 * 8598 8544 * @providesModule ReactDOMSelect … … 8605 8551 var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin"); 8606 8552 var ReactCompositeComponent = _dereq_("./ReactCompositeComponent"); 8553 var ReactElement = _dereq_("./ReactElement"); 8607 8554 var ReactDOM = _dereq_("./ReactDOM"); 8608 8609 var merge = _dereq_("./merge"); 8610 8611 // Store a reference to the <select> `ReactDOMComponent`. 8612 var select = ReactDOM.select; 8555 var ReactUpdates = _dereq_("./ReactUpdates"); 8556 8557 var assign = _dereq_("./Object.assign"); 8558 8559 // Store a reference to the <select> `ReactDOMComponent`. TODO: use string 8560 var select = ReactElement.createFactory(ReactDOM.select.type); 8561 8562 function updateWithPendingValueIfMounted() { 8563 /*jshint validthis:true */ 8564 if (this.isMounted()) { 8565 this.setState({value: this._pendingValue}); 8566 this._pendingValue = 0; 8567 } 8568 } 8613 8569 8614 8570 /** … … 8697 8653 }, 8698 8654 8655 componentWillMount: function() { 8656 this._pendingValue = null; 8657 }, 8658 8699 8659 componentWillReceiveProps: function(nextProps) { 8700 8660 if (!this.props.multiple && nextProps.multiple) { … … 8705 8665 }, 8706 8666 8707 shouldComponentUpdate: function() {8708 // Defer any updates to this component during the `onChange` handler.8709 return !this._isChanging;8710 },8711 8712 8667 render: function() { 8713 8668 // Clone `this.props` so we don't mutate the input. 8714 var props = merge(this.props);8669 var props = assign({}, this.props); 8715 8670 8716 8671 props.onChange = this._handleChange; … … 8737 8692 var onChange = LinkedValueUtils.getOnChange(this); 8738 8693 if (onChange) { 8739 this._isChanging = true;8740 8694 returnValue = onChange.call(this, event); 8741 this._isChanging = false;8742 8695 } 8743 8696 … … 8755 8708 } 8756 8709 8757 this.setState({value: selectedValue}); 8710 this._pendingValue = selectedValue; 8711 ReactUpdates.asap(updateWithPendingValueIfMounted, this); 8758 8712 return returnValue; 8759 8713 } … … 8763 8717 module.exports = ReactDOMSelect; 8764 8718 8765 },{"./AutoFocusMixin":1,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./merge":144}],50:[function(_dereq_,module,exports){ 8766 /** 8767 * Copyright 2013-2014 Facebook, Inc. 8768 * 8769 * Licensed under the Apache License, Version 2.0 (the "License"); 8770 * you may not use this file except in compliance with the License. 8771 * You may obtain a copy of the License at 8772 * 8773 * http://www.apache.org/licenses/LICENSE-2.0 8774 * 8775 * Unless required by applicable law or agreed to in writing, software 8776 * distributed under the License is distributed on an "AS IS" BASIS, 8777 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8778 * See the License for the specific language governing permissions and 8779 * limitations under the License. 8719 },{"./AutoFocusMixin":2,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58,"./ReactUpdates":91}],52:[function(_dereq_,module,exports){ 8720 /** 8721 * Copyright 2013-2014, Facebook, Inc. 8722 * All rights reserved. 8723 * 8724 * This source code is licensed under the BSD-style license found in the 8725 * LICENSE file in the root directory of this source tree. An additional grant 8726 * of patent rights can be found in the PATENTS file in the same directory. 8780 8727 * 8781 8728 * @providesModule ReactDOMSelection … … 8836 8783 */ 8837 8784 function getModernOffsets(node) { 8838 var selection = window.getSelection ();8839 8840 if ( selection.rangeCount === 0) {8785 var selection = window.getSelection && window.getSelection(); 8786 8787 if (!selection || selection.rangeCount === 0) { 8841 8788 return null; 8842 8789 } … … 8880 8827 detectionRange.setEnd(focusNode, focusOffset); 8881 8828 var isBackward = detectionRange.collapsed; 8882 detectionRange.detach();8883 8829 8884 8830 return { … … 8927 8873 */ 8928 8874 function setModernOffsets(node, offsets) { 8875 if (!window.getSelection) { 8876 return; 8877 } 8878 8929 8879 var selection = window.getSelection(); 8930 8931 8880 var length = node[getTextContentAccessor()].length; 8932 8881 var start = Math.min(offsets.start, length); … … 8957 8906 selection.addRange(range); 8958 8907 } 8959 8960 range.detach();8961 8908 } 8962 8909 } … … 8979 8926 module.exports = ReactDOMSelection; 8980 8927 8981 },{"./ExecutionEnvironment":22,"./getNodeForCharacterOffset":127,"./getTextContentAccessor":129}],51:[function(_dereq_,module,exports){ 8982 /** 8983 * Copyright 2013-2014 Facebook, Inc. 8984 * 8985 * Licensed under the Apache License, Version 2.0 (the "License"); 8986 * you may not use this file except in compliance with the License. 8987 * You may obtain a copy of the License at 8988 * 8989 * http://www.apache.org/licenses/LICENSE-2.0 8990 * 8991 * Unless required by applicable law or agreed to in writing, software 8992 * distributed under the License is distributed on an "AS IS" BASIS, 8993 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8994 * See the License for the specific language governing permissions and 8995 * limitations under the License. 8928 },{"./ExecutionEnvironment":23,"./getNodeForCharacterOffset":133,"./getTextContentAccessor":135}],53:[function(_dereq_,module,exports){ 8929 /** 8930 * Copyright 2013-2014, Facebook, Inc. 8931 * All rights reserved. 8932 * 8933 * This source code is licensed under the BSD-style license found in the 8934 * LICENSE file in the root directory of this source tree. An additional grant 8935 * of patent rights can be found in the PATENTS file in the same directory. 8996 8936 * 8997 8937 * @providesModule ReactDOMTextarea … … 9005 8945 var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin"); 9006 8946 var ReactCompositeComponent = _dereq_("./ReactCompositeComponent"); 8947 var ReactElement = _dereq_("./ReactElement"); 9007 8948 var ReactDOM = _dereq_("./ReactDOM"); 9008 8949 var ReactUpdates = _dereq_("./ReactUpdates"); 8950 8951 var assign = _dereq_("./Object.assign"); 9009 8952 var invariant = _dereq_("./invariant"); 9010 var merge = _dereq_("./merge");9011 8953 9012 8954 var warning = _dereq_("./warning"); 9013 8955 9014 // Store a reference to the <textarea> `ReactDOMComponent`. 9015 var textarea = ReactDOM.textarea; 8956 // Store a reference to the <textarea> `ReactDOMComponent`. TODO: use string 8957 var textarea = ReactElement.createFactory(ReactDOM.textarea.type); 8958 8959 function forceUpdateIfMounted() { 8960 /*jshint validthis:true */ 8961 if (this.isMounted()) { 8962 this.forceUpdate(); 8963 } 8964 } 9016 8965 9017 8966 /** … … 9074 9023 }, 9075 9024 9076 shouldComponentUpdate: function() {9077 // Defer any updates to this component during the `onChange` handler.9078 return !this._isChanging;9079 },9080 9081 9025 render: function() { 9082 9026 // Clone `this.props` so we don't mutate the input. 9083 var props = merge(this.props);9027 var props = assign({}, this.props); 9084 9028 9085 9029 ("production" !== "development" ? invariant( … … 9111 9055 var onChange = LinkedValueUtils.getOnChange(this); 9112 9056 if (onChange) { 9113 this._isChanging = true;9114 9057 returnValue = onChange.call(this, event); 9115 this._isChanging = false; 9116 } 9117 this.setState({value: event.target.value}); 9058 } 9059 ReactUpdates.asap(forceUpdateIfMounted, this); 9118 9060 return returnValue; 9119 9061 } … … 9123 9065 module.exports = ReactDOMTextarea; 9124 9066 9125 },{"./AutoFocusMixin":1,"./DOMPropertyOperations":12,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./invariant":134,"./merge":144,"./warning":158}],52:[function(_dereq_,module,exports){ 9126 /** 9127 * Copyright 2013-2014 Facebook, Inc. 9128 * 9129 * Licensed under the Apache License, Version 2.0 (the "License"); 9130 * you may not use this file except in compliance with the License. 9131 * You may obtain a copy of the License at 9132 * 9133 * http://www.apache.org/licenses/LICENSE-2.0 9134 * 9135 * Unless required by applicable law or agreed to in writing, software 9136 * distributed under the License is distributed on an "AS IS" BASIS, 9137 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 9138 * See the License for the specific language governing permissions and 9139 * limitations under the License. 9067 },{"./AutoFocusMixin":2,"./DOMPropertyOperations":13,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":58,"./ReactUpdates":91,"./invariant":140,"./warning":160}],54:[function(_dereq_,module,exports){ 9068 /** 9069 * Copyright 2013-2014, Facebook, Inc. 9070 * All rights reserved. 9071 * 9072 * This source code is licensed under the BSD-style license found in the 9073 * LICENSE file in the root directory of this source tree. An additional grant 9074 * of patent rights can be found in the PATENTS file in the same directory. 9140 9075 * 9141 9076 * @providesModule ReactDefaultBatchingStrategy … … 9147 9082 var Transaction = _dereq_("./Transaction"); 9148 9083 9084 var assign = _dereq_("./Object.assign"); 9149 9085 var emptyFunction = _dereq_("./emptyFunction"); 9150 var mixInto = _dereq_("./mixInto");9151 9086 9152 9087 var RESET_BATCHED_UPDATES = { … … 9168 9103 } 9169 9104 9170 mixInto(ReactDefaultBatchingStrategyTransaction, Transaction.Mixin); 9171 mixInto(ReactDefaultBatchingStrategyTransaction, { 9172 getTransactionWrappers: function() { 9173 return TRANSACTION_WRAPPERS; 9174 } 9175 }); 9105 assign( 9106 ReactDefaultBatchingStrategyTransaction.prototype, 9107 Transaction.Mixin, 9108 { 9109 getTransactionWrappers: function() { 9110 return TRANSACTION_WRAPPERS; 9111 } 9112 } 9113 ); 9176 9114 9177 9115 var transaction = new ReactDefaultBatchingStrategyTransaction(); … … 9200 9138 module.exports = ReactDefaultBatchingStrategy; 9201 9139 9202 },{"./ReactUpdates":87,"./Transaction":104,"./emptyFunction":116,"./mixInto":147}],53:[function(_dereq_,module,exports){ 9203 /** 9204 * Copyright 2013-2014 Facebook, Inc. 9205 * 9206 * Licensed under the Apache License, Version 2.0 (the "License"); 9207 * you may not use this file except in compliance with the License. 9208 * You may obtain a copy of the License at 9209 * 9210 * http://www.apache.org/licenses/LICENSE-2.0 9211 * 9212 * Unless required by applicable law or agreed to in writing, software 9213 * distributed under the License is distributed on an "AS IS" BASIS, 9214 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 9215 * See the License for the specific language governing permissions and 9216 * limitations under the License. 9140 },{"./Object.assign":29,"./ReactUpdates":91,"./Transaction":107,"./emptyFunction":121}],55:[function(_dereq_,module,exports){ 9141 /** 9142 * Copyright 2013-2014, Facebook, Inc. 9143 * All rights reserved. 9144 * 9145 * This source code is licensed under the BSD-style license found in the 9146 * LICENSE file in the root directory of this source tree. An additional grant 9147 * of patent rights can be found in the PATENTS file in the same directory. 9217 9148 * 9218 9149 * @providesModule ReactDefaultInjection … … 9234 9165 _dereq_("./ReactComponentBrowserEnvironment"); 9235 9166 var ReactDefaultBatchingStrategy = _dereq_("./ReactDefaultBatchingStrategy"); 9236 var ReactDOM = _dereq_("./ReactDOM");9167 var ReactDOMComponent = _dereq_("./ReactDOMComponent"); 9237 9168 var ReactDOMButton = _dereq_("./ReactDOMButton"); 9238 9169 var ReactDOMForm = _dereq_("./ReactDOMForm"); … … 9279 9210 }); 9280 9211 9281 ReactInjection.DOM.injectComponentClasses({ 9282 button: ReactDOMButton, 9283 form: ReactDOMForm, 9284 img: ReactDOMImg, 9285 input: ReactDOMInput, 9286 option: ReactDOMOption, 9287 select: ReactDOMSelect, 9288 textarea: ReactDOMTextarea, 9289 9290 html: createFullPageComponent(ReactDOM.html), 9291 head: createFullPageComponent(ReactDOM.head), 9292 body: createFullPageComponent(ReactDOM.body) 9212 ReactInjection.NativeComponent.injectGenericComponentClass( 9213 ReactDOMComponent 9214 ); 9215 9216 ReactInjection.NativeComponent.injectComponentClasses({ 9217 'button': ReactDOMButton, 9218 'form': ReactDOMForm, 9219 'img': ReactDOMImg, 9220 'input': ReactDOMInput, 9221 'option': ReactDOMOption, 9222 'select': ReactDOMSelect, 9223 'textarea': ReactDOMTextarea, 9224 9225 'html': createFullPageComponent('html'), 9226 'head': createFullPageComponent('head'), 9227 'body': createFullPageComponent('body') 9293 9228 }); 9294 9229 … … 9300 9235 ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig); 9301 9236 9302 ReactInjection.EmptyComponent.injectEmptyComponent( ReactDOM.noscript);9237 ReactInjection.EmptyComponent.injectEmptyComponent('noscript'); 9303 9238 9304 9239 ReactInjection.Updates.injectReconcileTransaction( … … 9330 9265 }; 9331 9266 9332 },{"./BeforeInputEventPlugin":2,"./ChangeEventPlugin":7,"./ClientReactRootIndex":8,"./CompositionEventPlugin":9,"./DefaultEventPluginOrder":14,"./EnterLeaveEventPlugin":15,"./ExecutionEnvironment":22,"./HTMLDOMPropertyConfig":23,"./MobileSafariClickEventPlugin":27,"./ReactBrowserComponentMixin":30,"./ReactComponentBrowserEnvironment":36,"./ReactDOM":41,"./ReactDOMButton":42,"./ReactDOMForm":44,"./ReactDOMImg":46,"./ReactDOMInput":47,"./ReactDOMOption":48,"./ReactDOMSelect":49,"./ReactDOMTextarea":51,"./ReactDefaultBatchingStrategy":52,"./ReactDefaultPerf":54,"./ReactEventListener":61,"./ReactInjection":62,"./ReactInstanceHandles":64,"./ReactMount":67,"./SVGDOMPropertyConfig":89,"./SelectEventPlugin":90,"./ServerReactRootIndex":91,"./SimpleEventPlugin":92,"./createFullPageComponent":112}],54:[function(_dereq_,module,exports){ 9333 /** 9334 * Copyright 2013-2014 Facebook, Inc. 9335 * 9336 * Licensed under the Apache License, Version 2.0 (the "License"); 9337 * you may not use this file except in compliance with the License. 9338 * You may obtain a copy of the License at 9339 * 9340 * http://www.apache.org/licenses/LICENSE-2.0 9341 * 9342 * Unless required by applicable law or agreed to in writing, software 9343 * distributed under the License is distributed on an "AS IS" BASIS, 9344 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 9345 * See the License for the specific language governing permissions and 9346 * limitations under the License. 9267 },{"./BeforeInputEventPlugin":3,"./ChangeEventPlugin":8,"./ClientReactRootIndex":9,"./CompositionEventPlugin":10,"./DefaultEventPluginOrder":15,"./EnterLeaveEventPlugin":16,"./ExecutionEnvironment":23,"./HTMLDOMPropertyConfig":24,"./MobileSafariClickEventPlugin":28,"./ReactBrowserComponentMixin":32,"./ReactComponentBrowserEnvironment":38,"./ReactDOMButton":44,"./ReactDOMComponent":45,"./ReactDOMForm":46,"./ReactDOMImg":48,"./ReactDOMInput":49,"./ReactDOMOption":50,"./ReactDOMSelect":51,"./ReactDOMTextarea":53,"./ReactDefaultBatchingStrategy":54,"./ReactDefaultPerf":56,"./ReactEventListener":63,"./ReactInjection":64,"./ReactInstanceHandles":66,"./ReactMount":70,"./SVGDOMPropertyConfig":92,"./SelectEventPlugin":93,"./ServerReactRootIndex":94,"./SimpleEventPlugin":95,"./createFullPageComponent":116}],56:[function(_dereq_,module,exports){ 9268 /** 9269 * Copyright 2013-2014, Facebook, Inc. 9270 * All rights reserved. 9271 * 9272 * This source code is licensed under the BSD-style license found in the 9273 * LICENSE file in the root directory of this source tree. An additional grant 9274 * of patent rights can be found in the PATENTS file in the same directory. 9347 9275 * 9348 9276 * @providesModule ReactDefaultPerf … … 9423 9351 }, 9424 9352 9425 printWasted: function(measurements) { 9426 measurements = measurements || ReactDefaultPerf._allMeasurements; 9353 getMeasurementsSummaryMap: function(measurements) { 9427 9354 var summary = ReactDefaultPerfAnalysis.getInclusiveSummary( 9428 9355 measurements, 9429 9356 true 9430 9357 ); 9431 console.table(summary.map(function(item) {9358 return summary.map(function(item) { 9432 9359 return { 9433 9360 'Owner > component': item.componentName, … … 9435 9362 'Instances': item.count 9436 9363 }; 9437 })); 9364 }); 9365 }, 9366 9367 printWasted: function(measurements) { 9368 measurements = measurements || ReactDefaultPerf._allMeasurements; 9369 console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements)); 9438 9370 console.log( 9439 9371 'Total time:', … … 9593 9525 module.exports = ReactDefaultPerf; 9594 9526 9595 },{"./DOMProperty":11,"./ReactDefaultPerfAnalysis":55,"./ReactMount":67,"./ReactPerf":71,"./performanceNow":151}],55:[function(_dereq_,module,exports){ 9596 /** 9597 * Copyright 2013-2014 Facebook, Inc. 9598 * 9599 * Licensed under the Apache License, Version 2.0 (the "License"); 9600 * you may not use this file except in compliance with the License. 9601 * You may obtain a copy of the License at 9602 * 9603 * http://www.apache.org/licenses/LICENSE-2.0 9604 * 9605 * Unless required by applicable law or agreed to in writing, software 9606 * distributed under the License is distributed on an "AS IS" BASIS, 9607 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 9608 * See the License for the specific language governing permissions and 9609 * limitations under the License. 9527 },{"./DOMProperty":12,"./ReactDefaultPerfAnalysis":57,"./ReactMount":70,"./ReactPerf":75,"./performanceNow":153}],57:[function(_dereq_,module,exports){ 9528 /** 9529 * Copyright 2013-2014, Facebook, Inc. 9530 * All rights reserved. 9531 * 9532 * This source code is licensed under the BSD-style license found in the 9533 * LICENSE file in the root directory of this source tree. An additional grant 9534 * of patent rights can be found in the PATENTS file in the same directory. 9610 9535 * 9611 9536 * @providesModule ReactDefaultPerfAnalysis 9612 9537 */ 9613 9538 9614 var merge = _dereq_("./merge");9539 var assign = _dereq_("./Object.assign"); 9615 9540 9616 9541 // Don't try to save users less than 1.2ms (a number I made up) … … 9667 9592 for (var i = 0; i < measurements.length; i++) { 9668 9593 var measurement = measurements[i]; 9669 var allIDs = merge(measurement.exclusive, measurement.inclusive); 9594 var allIDs = assign( 9595 {}, 9596 measurement.exclusive, 9597 measurement.inclusive 9598 ); 9670 9599 9671 9600 for (var id in allIDs) { … … 9715 9644 for (var i = 0; i < measurements.length; i++) { 9716 9645 var measurement = measurements[i]; 9717 var allIDs = merge(measurement.exclusive, measurement.inclusive); 9646 var allIDs = assign( 9647 {}, 9648 measurement.exclusive, 9649 measurement.inclusive 9650 ); 9718 9651 var cleanComponents; 9719 9652 … … 9770 9703 var cleanComponents = {}; 9771 9704 var dirtyLeafIDs = Object.keys(measurement.writes); 9772 var allIDs = merge(measurement.exclusive, measurement.inclusive);9705 var allIDs = assign({}, measurement.exclusive, measurement.inclusive); 9773 9706 9774 9707 for (var id in allIDs) { 9775 9708 var isDirty = false; 9776 // For each component that rendered, see if a component that trigger d9709 // For each component that rendered, see if a component that triggered 9777 9710 // a DOM op is in its subtree. 9778 9711 for (var i = 0; i < dirtyLeafIDs.length; i++) { … … 9798 9731 module.exports = ReactDefaultPerfAnalysis; 9799 9732 9800 },{"./merge":144}],56:[function(_dereq_,module,exports){ 9801 /** 9802 * Copyright 2014 Facebook, Inc. 9803 * 9804 * Licensed under the Apache License, Version 2.0 (the "License"); 9805 * you may not use this file except in compliance with the License. 9806 * You may obtain a copy of the License at 9807 * 9808 * http://www.apache.org/licenses/LICENSE-2.0 9809 * 9810 * Unless required by applicable law or agreed to in writing, software 9811 * distributed under the License is distributed on an "AS IS" BASIS, 9812 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 9813 * See the License for the specific language governing permissions and 9814 * limitations under the License. 9815 * 9816 * @providesModule ReactDescriptor 9733 },{"./Object.assign":29}],58:[function(_dereq_,module,exports){ 9734 /** 9735 * Copyright 2014, Facebook, Inc. 9736 * All rights reserved. 9737 * 9738 * This source code is licensed under the BSD-style license found in the 9739 * LICENSE file in the root directory of this source tree. An additional grant 9740 * of patent rights can be found in the PATENTS file in the same directory. 9741 * 9742 * @providesModule ReactElement 9817 9743 */ 9818 9744 … … 9822 9748 var ReactCurrentOwner = _dereq_("./ReactCurrentOwner"); 9823 9749 9824 var merge = _dereq_("./merge");9825 9750 var warning = _dereq_("./warning"); 9751 9752 var RESERVED_PROPS = { 9753 key: true, 9754 ref: true 9755 }; 9826 9756 9827 9757 /** … … 9866 9796 * 9867 9797 * @internal 9868 * @param {object} descriptor9798 * @param {object} element 9869 9799 */ 9870 9800 function defineMutationMembrane(prototype) { … … 9883 9813 9884 9814 /** 9885 * Transfer static properties from the source to the target. Functions are 9886 * rebound to have this reflect the original source. 9887 */ 9888 function proxyStaticMethods(target, source) { 9889 if (typeof source !== 'function') { 9890 return; 9891 } 9892 for (var key in source) { 9893 if (source.hasOwnProperty(key)) { 9894 var value = source[key]; 9895 if (typeof value === 'function') { 9896 var bound = value.bind(source); 9897 // Copy any properties defined on the function, such as `isRequired` on 9898 // a PropTypes validator. (mergeInto refuses to work on functions.) 9899 for (var k in value) { 9900 if (value.hasOwnProperty(k)) { 9901 bound[k] = value[k]; 9902 } 9903 } 9904 target[key] = bound; 9905 } else { 9906 target[key] = value; 9815 * Base constructor for all React elements. This is only used to make this 9816 * work with a dynamic instanceof check. Nothing should live on this prototype. 9817 * 9818 * @param {*} type 9819 * @param {string|object} ref 9820 * @param {*} key 9821 * @param {*} props 9822 * @internal 9823 */ 9824 var ReactElement = function(type, key, ref, owner, context, props) { 9825 // Built-in properties that belong on the element 9826 this.type = type; 9827 this.key = key; 9828 this.ref = ref; 9829 9830 // Record the component responsible for creating this element. 9831 this._owner = owner; 9832 9833 // TODO: Deprecate withContext, and then the context becomes accessible 9834 // through the owner. 9835 this._context = context; 9836 9837 if ("production" !== "development") { 9838 // The validation flag and props are currently mutative. We put them on 9839 // an external backing store so that we can freeze the whole object. 9840 // This can be replaced with a WeakMap once they are implemented in 9841 // commonly used development environments. 9842 this._store = { validated: false, props: props }; 9843 9844 // We're not allowed to set props directly on the object so we early 9845 // return and rely on the prototype membrane to forward to the backing 9846 // store. 9847 if (useMutationMembrane) { 9848 Object.freeze(this); 9849 return; 9850 } 9851 } 9852 9853 this.props = props; 9854 }; 9855 9856 // We intentionally don't expose the function on the constructor property. 9857 // ReactElement should be indistinguishable from a plain object. 9858 ReactElement.prototype = { 9859 _isReactElement: true 9860 }; 9861 9862 if ("production" !== "development") { 9863 defineMutationMembrane(ReactElement.prototype); 9864 } 9865 9866 ReactElement.createElement = function(type, config, children) { 9867 var propName; 9868 9869 // Reserved names are extracted 9870 var props = {}; 9871 9872 var key = null; 9873 var ref = null; 9874 9875 if (config != null) { 9876 ref = config.ref === undefined ? null : config.ref; 9877 if ("production" !== "development") { 9878 ("production" !== "development" ? warning( 9879 config.key !== null, 9880 'createElement(...): Encountered component with a `key` of null. In ' + 9881 'a future version, this will be treated as equivalent to the string ' + 9882 '\'null\'; instead, provide an explicit key or use undefined.' 9883 ) : null); 9884 } 9885 // TODO: Change this back to `config.key === undefined` 9886 key = config.key == null ? null : '' + config.key; 9887 // Remaining properties are added to a new props object 9888 for (propName in config) { 9889 if (config.hasOwnProperty(propName) && 9890 !RESERVED_PROPS.hasOwnProperty(propName)) { 9891 props[propName] = config[propName]; 9907 9892 } 9908 9893 } 9909 9894 } 9910 } 9911 9912 /** 9913 * Base constructor for all React descriptors. This is only used to make this 9914 * work with a dynamic instanceof check. Nothing should live on this prototype. 9915 * 9916 * @param {*} type 9917 * @internal 9918 */ 9919 var ReactDescriptor = function() {}; 9920 9921 if ("production" !== "development") { 9922 defineMutationMembrane(ReactDescriptor.prototype); 9923 } 9924 9925 ReactDescriptor.createFactory = function(type) { 9926 9927 var descriptorPrototype = Object.create(ReactDescriptor.prototype); 9928 9929 var factory = function(props, children) { 9930 // For consistency we currently allocate a new object for every descriptor. 9931 // This protects the descriptor from being mutated by the original props 9932 // object being mutated. It also protects the original props object from 9933 // being mutated by children arguments and default props. This behavior 9934 // comes with a performance cost and could be deprecated in the future. 9935 // It could also be optimized with a smarter JSX transform. 9936 if (props == null) { 9937 props = {}; 9938 } else if (typeof props === 'object') { 9939 props = merge(props); 9940 } 9941 9942 // Children can be more than one argument, and those are transferred onto 9943 // the newly allocated props object. 9944 var childrenLength = arguments.length - 1; 9945 if (childrenLength === 1) { 9946 props.children = children; 9947 } else if (childrenLength > 1) { 9948 var childArray = Array(childrenLength); 9949 for (var i = 0; i < childrenLength; i++) { 9950 childArray[i] = arguments[i + 1]; 9895 9896 // Children can be more than one argument, and those are transferred onto 9897 // the newly allocated props object. 9898 var childrenLength = arguments.length - 2; 9899 if (childrenLength === 1) { 9900 props.children = children; 9901 } else if (childrenLength > 1) { 9902 var childArray = Array(childrenLength); 9903 for (var i = 0; i < childrenLength; i++) { 9904 childArray[i] = arguments[i + 2]; 9905 } 9906 props.children = childArray; 9907 } 9908 9909 // Resolve default props 9910 if (type.defaultProps) { 9911 var defaultProps = type.defaultProps; 9912 for (propName in defaultProps) { 9913 if (typeof props[propName] === 'undefined') { 9914 props[propName] = defaultProps[propName]; 9951 9915 } 9952 props.children = childArray; 9953 } 9954 9955 // Initialize the descriptor object 9956 var descriptor = Object.create(descriptorPrototype); 9957 9958 // Record the component responsible for creating this descriptor. 9959 descriptor._owner = ReactCurrentOwner.current; 9960 9961 // TODO: Deprecate withContext, and then the context becomes accessible 9962 // through the owner. 9963 descriptor._context = ReactContext.current; 9964 9965 if ("production" !== "development") { 9966 // The validation flag and props are currently mutative. We put them on 9967 // an external backing store so that we can freeze the whole object. 9968 // This can be replaced with a WeakMap once they are implemented in 9969 // commonly used development environments. 9970 descriptor._store = { validated: false, props: props }; 9971 9972 // We're not allowed to set props directly on the object so we early 9973 // return and rely on the prototype membrane to forward to the backing 9974 // store. 9975 if (useMutationMembrane) { 9976 Object.freeze(descriptor); 9977 return descriptor; 9978 } 9979 } 9980 9981 descriptor.props = props; 9982 return descriptor; 9983 }; 9984 9985 // Currently we expose the prototype of the descriptor so that 9986 // <Foo /> instanceof Foo works. This is controversial pattern. 9987 factory.prototype = descriptorPrototype; 9988 9916 } 9917 } 9918 9919 return new ReactElement( 9920 type, 9921 key, 9922 ref, 9923 ReactCurrentOwner.current, 9924 ReactContext.current, 9925 props 9926 ); 9927 }; 9928 9929 ReactElement.createFactory = function(type) { 9930 var factory = ReactElement.createElement.bind(null, type); 9989 9931 // Expose the type on the factory and the prototype so that it can be 9990 // easily accessed on descriptors. E.g. <Foo />.type === Foo.type and for 9991 // static methods like <Foo />.type.staticMethod(); 9992 // This should not be named constructor since this may not be the function 9993 // that created the descriptor, and it may not even be a constructor. 9932 // easily accessed on elements. E.g. <Foo />.type === Foo.type. 9933 // This should not be named `constructor` since this may not be the function 9934 // that created the element, and it may not even be a constructor. 9994 9935 factory.type = type; 9995 descriptorPrototype.type = type;9996 9997 proxyStaticMethods(factory, type);9998 9999 // Expose a unique constructor on the prototype is that this works with type10000 // systems that compare constructor properties: <Foo />.constructor === Foo10001 // This may be controversial since it requires a known factory function.10002 descriptorPrototype.constructor = factory;10003 10004 9936 return factory; 10005 10006 9937 }; 10007 9938 10008 ReactDescriptor.cloneAndReplaceProps = function(oldDescriptor, newProps) { 10009 var newDescriptor = Object.create(oldDescriptor.constructor.prototype); 10010 // It's important that this property order matches the hidden class of the 10011 // original descriptor to maintain perf. 10012 newDescriptor._owner = oldDescriptor._owner; 10013 newDescriptor._context = oldDescriptor._context; 9939 ReactElement.cloneAndReplaceProps = function(oldElement, newProps) { 9940 var newElement = new ReactElement( 9941 oldElement.type, 9942 oldElement.key, 9943 oldElement.ref, 9944 oldElement._owner, 9945 oldElement._context, 9946 newProps 9947 ); 10014 9948 10015 9949 if ("production" !== "development") { 10016 newDescriptor._store = { 10017 validated: oldDescriptor._store.validated, 10018 props: newProps 10019 }; 10020 if (useMutationMembrane) { 10021 Object.freeze(newDescriptor); 10022 return newDescriptor; 10023 } 10024 } 10025 10026 newDescriptor.props = newProps; 10027 return newDescriptor; 10028 }; 10029 10030 /** 10031 * Checks if a value is a valid descriptor constructor. 10032 * 10033 * @param {*} 10034 * @return {boolean} 10035 * @public 10036 */ 10037 ReactDescriptor.isValidFactory = function(factory) { 10038 return typeof factory === 'function' && 10039 factory.prototype instanceof ReactDescriptor; 9950 // If the key on the original is valid, then the clone is valid 9951 newElement._store.validated = oldElement._store.validated; 9952 } 9953 return newElement; 10040 9954 }; 10041 9955 … … 10045 9959 * @final 10046 9960 */ 10047 ReactDescriptor.isValidDescriptor = function(object) { 10048 return object instanceof ReactDescriptor; 9961 ReactElement.isValidElement = function(object) { 9962 // ReactTestUtils is often used outside of beforeEach where as React is 9963 // within it. This leads to two different instances of React on the same 9964 // page. To identify a element from a different React instance we use 9965 // a flag instead of an instanceof check. 9966 var isElement = !!(object && object._isReactElement); 9967 // if (isElement && !(object instanceof ReactElement)) { 9968 // This is an indicator that you're using multiple versions of React at the 9969 // same time. This will screw with ownership and stuff. Fix it, please. 9970 // TODO: We could possibly warn here. 9971 // } 9972 return isElement; 10049 9973 }; 10050 9974 10051 module.exports = ReactDescriptor; 10052 10053 },{"./ReactContext":39,"./ReactCurrentOwner":40,"./merge":144,"./warning":158}],57:[function(_dereq_,module,exports){ 10054 /** 10055 * Copyright 2014 Facebook, Inc. 10056 * 10057 * Licensed under the Apache License, Version 2.0 (the "License"); 10058 * you may not use this file except in compliance with the License. 10059 * You may obtain a copy of the License at 10060 * 10061 * http://www.apache.org/licenses/LICENSE-2.0 10062 * 10063 * Unless required by applicable law or agreed to in writing, software 10064 * distributed under the License is distributed on an "AS IS" BASIS, 10065 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10066 * See the License for the specific language governing permissions and 10067 * limitations under the License. 10068 * 10069 * @providesModule ReactDescriptorValidator 10070 */ 10071 10072 /** 10073 * ReactDescriptorValidator provides a wrapper around a descriptor factory 10074 * which validates the props passed to the descriptor. This is intended to be 9975 module.exports = ReactElement; 9976 9977 },{"./ReactContext":41,"./ReactCurrentOwner":42,"./warning":160}],59:[function(_dereq_,module,exports){ 9978 /** 9979 * Copyright 2014, Facebook, Inc. 9980 * All rights reserved. 9981 * 9982 * This source code is licensed under the BSD-style license found in the 9983 * LICENSE file in the root directory of this source tree. An additional grant 9984 * of patent rights can be found in the PATENTS file in the same directory. 9985 * 9986 * @providesModule ReactElementValidator 9987 */ 9988 9989 /** 9990 * ReactElementValidator provides a wrapper around a element factory 9991 * which validates the props passed to the element. This is intended to be 10075 9992 * used only in DEV and could be replaced by a static type checker for languages 10076 9993 * that support it. … … 10079 9996 "use strict"; 10080 9997 10081 var React Descriptor = _dereq_("./ReactDescriptor");9998 var ReactElement = _dereq_("./ReactElement"); 10082 9999 var ReactPropTypeLocations = _dereq_("./ReactPropTypeLocations"); 10083 10000 var ReactCurrentOwner = _dereq_("./ReactCurrentOwner"); … … 10122 10039 */ 10123 10040 function validateExplicitKey(component, parentType) { 10124 if (component._store.validated || component. props.key != null) {10041 if (component._store.validated || component.key != null) { 10125 10042 return; 10126 10043 } … … 10228 10145 for (var i = 0; i < component.length; i++) { 10229 10146 var child = component[i]; 10230 if (React Descriptor.isValidDescriptor(child)) {10147 if (ReactElement.isValidElement(child)) { 10231 10148 validateExplicitKey(child, parentType); 10232 10149 } 10233 10150 } 10234 } else if (React Descriptor.isValidDescriptor(component)) {10151 } else if (ReactElement.isValidElement(component)) { 10235 10152 // This component was passed in a valid location. 10236 10153 component._store.validated = true; … … 10278 10195 } 10279 10196 10280 var ReactDescriptorValidator = { 10281 10282 /** 10283 * Wraps a descriptor factory function in another function which validates 10284 * the props and context of the descriptor and warns about any failed type 10285 * checks. 10286 * 10287 * @param {function} factory The original descriptor factory 10288 * @param {object?} propTypes A prop type definition set 10289 * @param {object?} contextTypes A context type definition set 10290 * @return {object} The component descriptor, which may be invalid. 10291 * @private 10292 */ 10293 createFactory: function(factory, propTypes, contextTypes) { 10294 var validatedFactory = function(props, children) { 10295 var descriptor = factory.apply(this, arguments); 10296 10297 for (var i = 1; i < arguments.length; i++) { 10298 validateChildKeys(arguments[i], descriptor.type); 10299 } 10300 10301 var name = descriptor.type.displayName; 10302 if (propTypes) { 10303 checkPropTypes( 10304 name, 10305 propTypes, 10306 descriptor.props, 10307 ReactPropTypeLocations.prop 10308 ); 10309 } 10310 if (contextTypes) { 10311 checkPropTypes( 10312 name, 10313 contextTypes, 10314 descriptor._context, 10315 ReactPropTypeLocations.context 10316 ); 10317 } 10318 return descriptor; 10319 }; 10320 10321 validatedFactory.prototype = factory.prototype; 10322 validatedFactory.type = factory.type; 10323 10324 // Copy static properties 10325 for (var key in factory) { 10326 if (factory.hasOwnProperty(key)) { 10327 validatedFactory[key] = factory[key]; 10328 } 10329 } 10330 10197 var ReactElementValidator = { 10198 10199 createElement: function(type, props, children) { 10200 var element = ReactElement.createElement.apply(this, arguments); 10201 10202 // The result can be nullish if a mock or a custom function is used. 10203 // TODO: Drop this when these are no longer allowed as the type argument. 10204 if (element == null) { 10205 return element; 10206 } 10207 10208 for (var i = 2; i < arguments.length; i++) { 10209 validateChildKeys(arguments[i], type); 10210 } 10211 10212 var name = type.displayName; 10213 if (type.propTypes) { 10214 checkPropTypes( 10215 name, 10216 type.propTypes, 10217 element.props, 10218 ReactPropTypeLocations.prop 10219 ); 10220 } 10221 if (type.contextTypes) { 10222 checkPropTypes( 10223 name, 10224 type.contextTypes, 10225 element._context, 10226 ReactPropTypeLocations.context 10227 ); 10228 } 10229 return element; 10230 }, 10231 10232 createFactory: function(type) { 10233 var validatedFactory = ReactElementValidator.createElement.bind( 10234 null, 10235 type 10236 ); 10237 validatedFactory.type = type; 10331 10238 return validatedFactory; 10332 10239 } … … 10334 10241 }; 10335 10242 10336 module.exports = ReactDescriptorValidator; 10337 10338 },{"./ReactCurrentOwner":40,"./ReactDescriptor":56,"./ReactPropTypeLocations":74,"./monitorCodeUse":148}],58:[function(_dereq_,module,exports){ 10339 /** 10340 * Copyright 2014 Facebook, Inc. 10341 * 10342 * Licensed under the Apache License, Version 2.0 (the "License"); 10343 * you may not use this file except in compliance with the License. 10344 * You may obtain a copy of the License at 10345 * 10346 * http://www.apache.org/licenses/LICENSE-2.0 10347 * 10348 * Unless required by applicable law or agreed to in writing, software 10349 * distributed under the License is distributed on an "AS IS" BASIS, 10350 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10351 * See the License for the specific language governing permissions and 10352 * limitations under the License. 10243 module.exports = ReactElementValidator; 10244 10245 },{"./ReactCurrentOwner":42,"./ReactElement":58,"./ReactPropTypeLocations":78,"./monitorCodeUse":150}],60:[function(_dereq_,module,exports){ 10246 /** 10247 * Copyright 2014, Facebook, Inc. 10248 * All rights reserved. 10249 * 10250 * This source code is licensed under the BSD-style license found in the 10251 * LICENSE file in the root directory of this source tree. An additional grant 10252 * of patent rights can be found in the PATENTS file in the same directory. 10353 10253 * 10354 10254 * @providesModule ReactEmptyComponent … … 10356 10256 10357 10257 "use strict"; 10258 10259 var ReactElement = _dereq_("./ReactElement"); 10358 10260 10359 10261 var invariant = _dereq_("./invariant"); … … 10366 10268 var ReactEmptyComponentInjection = { 10367 10269 injectEmptyComponent: function(emptyComponent) { 10368 component = emptyComponent;10270 component = ReactElement.createFactory(emptyComponent); 10369 10271 } 10370 10272 }; … … 10416 10318 module.exports = ReactEmptyComponent; 10417 10319 10418 },{"./invariant":134}],59:[function(_dereq_,module,exports){ 10419 /** 10420 * Copyright 2013-2014 Facebook, Inc. 10421 * 10422 * Licensed under the Apache License, Version 2.0 (the "License"); 10423 * you may not use this file except in compliance with the License. 10424 * You may obtain a copy of the License at 10425 * 10426 * http://www.apache.org/licenses/LICENSE-2.0 10427 * 10428 * Unless required by applicable law or agreed to in writing, software 10429 * distributed under the License is distributed on an "AS IS" BASIS, 10430 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10431 * See the License for the specific language governing permissions and 10432 * limitations under the License. 10320 },{"./ReactElement":58,"./invariant":140}],61:[function(_dereq_,module,exports){ 10321 /** 10322 * Copyright 2013-2014, Facebook, Inc. 10323 * All rights reserved. 10324 * 10325 * This source code is licensed under the BSD-style license found in the 10326 * LICENSE file in the root directory of this source tree. An additional grant 10327 * of patent rights can be found in the PATENTS file in the same directory. 10433 10328 * 10434 10329 * @providesModule ReactErrorUtils … … 10455 10350 module.exports = ReactErrorUtils; 10456 10351 10457 },{}],60:[function(_dereq_,module,exports){ 10458 /** 10459 * Copyright 2013-2014 Facebook, Inc. 10460 * 10461 * Licensed under the Apache License, Version 2.0 (the "License"); 10462 * you may not use this file except in compliance with the License. 10463 * You may obtain a copy of the License at 10464 * 10465 * http://www.apache.org/licenses/LICENSE-2.0 10466 * 10467 * Unless required by applicable law or agreed to in writing, software 10468 * distributed under the License is distributed on an "AS IS" BASIS, 10469 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10470 * See the License for the specific language governing permissions and 10471 * limitations under the License. 10352 },{}],62:[function(_dereq_,module,exports){ 10353 /** 10354 * Copyright 2013-2014, Facebook, Inc. 10355 * All rights reserved. 10356 * 10357 * This source code is licensed under the BSD-style license found in the 10358 * LICENSE file in the root directory of this source tree. An additional grant 10359 * of patent rights can be found in the PATENTS file in the same directory. 10472 10360 * 10473 10361 * @providesModule ReactEventEmitterMixin … … 10512 10400 module.exports = ReactEventEmitterMixin; 10513 10401 10514 },{"./EventPluginHub":18}],61:[function(_dereq_,module,exports){ 10515 /** 10516 * Copyright 2013-2014 Facebook, Inc. 10517 * 10518 * Licensed under the Apache License, Version 2.0 (the "License"); 10519 * you may not use this file except in compliance with the License. 10520 * You may obtain a copy of the License at 10521 * 10522 * http://www.apache.org/licenses/LICENSE-2.0 10523 * 10524 * Unless required by applicable law or agreed to in writing, software 10525 * distributed under the License is distributed on an "AS IS" BASIS, 10526 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10527 * See the License for the specific language governing permissions and 10528 * limitations under the License. 10402 },{"./EventPluginHub":19}],63:[function(_dereq_,module,exports){ 10403 /** 10404 * Copyright 2013-2014, Facebook, Inc. 10405 * All rights reserved. 10406 * 10407 * This source code is licensed under the BSD-style license found in the 10408 * LICENSE file in the root directory of this source tree. An additional grant 10409 * of patent rights can be found in the PATENTS file in the same directory. 10529 10410 * 10530 10411 * @providesModule ReactEventListener … … 10541 10422 var ReactUpdates = _dereq_("./ReactUpdates"); 10542 10423 10424 var assign = _dereq_("./Object.assign"); 10543 10425 var getEventTarget = _dereq_("./getEventTarget"); 10544 10426 var getUnboundedScrollPosition = _dereq_("./getUnboundedScrollPosition"); 10545 var mixInto = _dereq_("./mixInto");10546 10427 10547 10428 /** … … 10569 10450 this.ancestors = []; 10570 10451 } 10571 mixInto(TopLevelCallbackBookKeeping, {10452 assign(TopLevelCallbackBookKeeping.prototype, { 10572 10453 destructor: function() { 10573 10454 this.topLevelType = null; … … 10703 10584 module.exports = ReactEventListener; 10704 10585 10705 },{"./EventListener":17,"./ExecutionEnvironment":22,"./PooledClass":28,"./ReactInstanceHandles":64,"./ReactMount":67,"./ReactUpdates":87,"./getEventTarget":125,"./getUnboundedScrollPosition":130,"./mixInto":147}],62:[function(_dereq_,module,exports){ 10706 /** 10707 * Copyright 2013-2014 Facebook, Inc. 10708 * 10709 * Licensed under the Apache License, Version 2.0 (the "License"); 10710 * you may not use this file except in compliance with the License. 10711 * You may obtain a copy of the License at 10712 * 10713 * http://www.apache.org/licenses/LICENSE-2.0 10714 * 10715 * Unless required by applicable law or agreed to in writing, software 10716 * distributed under the License is distributed on an "AS IS" BASIS, 10717 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10718 * See the License for the specific language governing permissions and 10719 * limitations under the License. 10586 },{"./EventListener":18,"./ExecutionEnvironment":23,"./Object.assign":29,"./PooledClass":30,"./ReactInstanceHandles":66,"./ReactMount":70,"./ReactUpdates":91,"./getEventTarget":131,"./getUnboundedScrollPosition":136}],64:[function(_dereq_,module,exports){ 10587 /** 10588 * Copyright 2013-2014, Facebook, Inc. 10589 * All rights reserved. 10590 * 10591 * This source code is licensed under the BSD-style license found in the 10592 * LICENSE file in the root directory of this source tree. An additional grant 10593 * of patent rights can be found in the PATENTS file in the same directory. 10720 10594 * 10721 10595 * @providesModule ReactInjection … … 10728 10602 var ReactComponent = _dereq_("./ReactComponent"); 10729 10603 var ReactCompositeComponent = _dereq_("./ReactCompositeComponent"); 10730 var ReactDOM = _dereq_("./ReactDOM");10731 10604 var ReactEmptyComponent = _dereq_("./ReactEmptyComponent"); 10732 10605 var ReactBrowserEventEmitter = _dereq_("./ReactBrowserEventEmitter"); 10606 var ReactNativeComponent = _dereq_("./ReactNativeComponent"); 10733 10607 var ReactPerf = _dereq_("./ReactPerf"); 10734 10608 var ReactRootIndex = _dereq_("./ReactRootIndex"); … … 10741 10615 EmptyComponent: ReactEmptyComponent.injection, 10742 10616 EventPluginHub: EventPluginHub.injection, 10743 DOM: ReactDOM.injection,10744 10617 EventEmitter: ReactBrowserEventEmitter.injection, 10618 NativeComponent: ReactNativeComponent.injection, 10745 10619 Perf: ReactPerf.injection, 10746 10620 RootIndex: ReactRootIndex.injection, … … 10750 10624 module.exports = ReactInjection; 10751 10625 10752 },{"./DOMProperty":11,"./EventPluginHub":18,"./ReactBrowserEventEmitter":31,"./ReactComponent":35,"./ReactCompositeComponent":38,"./ReactDOM":41,"./ReactEmptyComponent":58,"./ReactPerf":71,"./ReactRootIndex":78,"./ReactUpdates":87}],63:[function(_dereq_,module,exports){ 10753 /** 10754 * Copyright 2013-2014 Facebook, Inc. 10755 * 10756 * Licensed under the Apache License, Version 2.0 (the "License"); 10757 * you may not use this file except in compliance with the License. 10758 * You may obtain a copy of the License at 10759 * 10760 * http://www.apache.org/licenses/LICENSE-2.0 10761 * 10762 * Unless required by applicable law or agreed to in writing, software 10763 * distributed under the License is distributed on an "AS IS" BASIS, 10764 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10765 * See the License for the specific language governing permissions and 10766 * limitations under the License. 10626 },{"./DOMProperty":12,"./EventPluginHub":19,"./ReactBrowserEventEmitter":33,"./ReactComponent":37,"./ReactCompositeComponent":40,"./ReactEmptyComponent":60,"./ReactNativeComponent":73,"./ReactPerf":75,"./ReactRootIndex":82,"./ReactUpdates":91}],65:[function(_dereq_,module,exports){ 10627 /** 10628 * Copyright 2013-2014, Facebook, Inc. 10629 * All rights reserved. 10630 * 10631 * This source code is licensed under the BSD-style license found in the 10632 * LICENSE file in the root directory of this source tree. An additional grant 10633 * of patent rights can be found in the PATENTS file in the same directory. 10767 10634 * 10768 10635 * @providesModule ReactInputSelection … … 10893 10760 module.exports = ReactInputSelection; 10894 10761 10895 },{"./ReactDOMSelection":50,"./containsNode":109,"./focusNode":120,"./getActiveElement":122}],64:[function(_dereq_,module,exports){ 10896 /** 10897 * Copyright 2013-2014 Facebook, Inc. 10898 * 10899 * Licensed under the Apache License, Version 2.0 (the "License"); 10900 * you may not use this file except in compliance with the License. 10901 * You may obtain a copy of the License at 10902 * 10903 * http://www.apache.org/licenses/LICENSE-2.0 10904 * 10905 * Unless required by applicable law or agreed to in writing, software 10906 * distributed under the License is distributed on an "AS IS" BASIS, 10907 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10908 * See the License for the specific language governing permissions and 10909 * limitations under the License. 10762 },{"./ReactDOMSelection":52,"./containsNode":114,"./focusNode":125,"./getActiveElement":127}],66:[function(_dereq_,module,exports){ 10763 /** 10764 * Copyright 2013-2014, Facebook, Inc. 10765 * All rights reserved. 10766 * 10767 * This source code is licensed under the BSD-style license found in the 10768 * LICENSE file in the root directory of this source tree. An additional grant 10769 * of patent rights can be found in the PATENTS file in the same directory. 10910 10770 * 10911 10771 * @providesModule ReactInstanceHandles … … 11233 11093 module.exports = ReactInstanceHandles; 11234 11094 11235 },{"./ReactRootIndex":78,"./invariant":134}],65:[function(_dereq_,module,exports){ 11236 /** 11237 * Copyright 2013-2014 Facebook, Inc. 11238 * 11239 * Licensed under the Apache License, Version 2.0 (the "License"); 11240 * you may not use this file except in compliance with the License. 11241 * You may obtain a copy of the License at 11242 * 11243 * http://www.apache.org/licenses/LICENSE-2.0 11244 * 11245 * Unless required by applicable law or agreed to in writing, software 11246 * distributed under the License is distributed on an "AS IS" BASIS, 11247 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11248 * See the License for the specific language governing permissions and 11249 * limitations under the License. 11095 },{"./ReactRootIndex":82,"./invariant":140}],67:[function(_dereq_,module,exports){ 11096 /** 11097 * Copyright 2014, Facebook, Inc. 11098 * All rights reserved. 11099 * 11100 * This source code is licensed under the BSD-style license found in the 11101 * LICENSE file in the root directory of this source tree. An additional grant 11102 * of patent rights can be found in the PATENTS file in the same directory. 11103 * 11104 * @providesModule ReactLegacyElement 11105 */ 11106 11107 "use strict"; 11108 11109 var ReactCurrentOwner = _dereq_("./ReactCurrentOwner"); 11110 11111 var invariant = _dereq_("./invariant"); 11112 var monitorCodeUse = _dereq_("./monitorCodeUse"); 11113 var warning = _dereq_("./warning"); 11114 11115 var legacyFactoryLogs = {}; 11116 function warnForLegacyFactoryCall() { 11117 if (!ReactLegacyElementFactory._isLegacyCallWarningEnabled) { 11118 return; 11119 } 11120 var owner = ReactCurrentOwner.current; 11121 var name = owner && owner.constructor ? owner.constructor.displayName : ''; 11122 if (!name) { 11123 name = 'Something'; 11124 } 11125 if (legacyFactoryLogs.hasOwnProperty(name)) { 11126 return; 11127 } 11128 legacyFactoryLogs[name] = true; 11129 ("production" !== "development" ? warning( 11130 false, 11131 name + ' is calling a React component directly. ' + 11132 'Use a factory or JSX instead. See: http://fb.me/react-legacyfactory' 11133 ) : null); 11134 monitorCodeUse('react_legacy_factory_call', { version: 3, name: name }); 11135 } 11136 11137 function warnForPlainFunctionType(type) { 11138 var isReactClass = 11139 type.prototype && 11140 typeof type.prototype.mountComponent === 'function' && 11141 typeof type.prototype.receiveComponent === 'function'; 11142 if (isReactClass) { 11143 ("production" !== "development" ? warning( 11144 false, 11145 'Did not expect to get a React class here. Use `Component` instead ' + 11146 'of `Component.type` or `this.constructor`.' 11147 ) : null); 11148 } else { 11149 if (!type._reactWarnedForThisType) { 11150 try { 11151 type._reactWarnedForThisType = true; 11152 } catch (x) { 11153 // just incase this is a frozen object or some special object 11154 } 11155 monitorCodeUse( 11156 'react_non_component_in_jsx', 11157 { version: 3, name: type.name } 11158 ); 11159 } 11160 ("production" !== "development" ? warning( 11161 false, 11162 'This JSX uses a plain function. Only React components are ' + 11163 'valid in React\'s JSX transform.' 11164 ) : null); 11165 } 11166 } 11167 11168 function warnForNonLegacyFactory(type) { 11169 ("production" !== "development" ? warning( 11170 false, 11171 'Do not pass React.DOM.' + type.type + ' to JSX or createFactory. ' + 11172 'Use the string "' + type.type + '" instead.' 11173 ) : null); 11174 } 11175 11176 /** 11177 * Transfer static properties from the source to the target. Functions are 11178 * rebound to have this reflect the original source. 11179 */ 11180 function proxyStaticMethods(target, source) { 11181 if (typeof source !== 'function') { 11182 return; 11183 } 11184 for (var key in source) { 11185 if (source.hasOwnProperty(key)) { 11186 var value = source[key]; 11187 if (typeof value === 'function') { 11188 var bound = value.bind(source); 11189 // Copy any properties defined on the function, such as `isRequired` on 11190 // a PropTypes validator. 11191 for (var k in value) { 11192 if (value.hasOwnProperty(k)) { 11193 bound[k] = value[k]; 11194 } 11195 } 11196 target[key] = bound; 11197 } else { 11198 target[key] = value; 11199 } 11200 } 11201 } 11202 } 11203 11204 // We use an object instead of a boolean because booleans are ignored by our 11205 // mocking libraries when these factories gets mocked. 11206 var LEGACY_MARKER = {}; 11207 var NON_LEGACY_MARKER = {}; 11208 11209 var ReactLegacyElementFactory = {}; 11210 11211 ReactLegacyElementFactory.wrapCreateFactory = function(createFactory) { 11212 var legacyCreateFactory = function(type) { 11213 if (typeof type !== 'function') { 11214 // Non-function types cannot be legacy factories 11215 return createFactory(type); 11216 } 11217 11218 if (type.isReactNonLegacyFactory) { 11219 // This is probably a factory created by ReactDOM we unwrap it to get to 11220 // the underlying string type. It shouldn't have been passed here so we 11221 // warn. 11222 if ("production" !== "development") { 11223 warnForNonLegacyFactory(type); 11224 } 11225 return createFactory(type.type); 11226 } 11227 11228 if (type.isReactLegacyFactory) { 11229 // This is probably a legacy factory created by ReactCompositeComponent. 11230 // We unwrap it to get to the underlying class. 11231 return createFactory(type.type); 11232 } 11233 11234 if ("production" !== "development") { 11235 warnForPlainFunctionType(type); 11236 } 11237 11238 // Unless it's a legacy factory, then this is probably a plain function, 11239 // that is expecting to be invoked by JSX. We can just return it as is. 11240 return type; 11241 }; 11242 return legacyCreateFactory; 11243 }; 11244 11245 ReactLegacyElementFactory.wrapCreateElement = function(createElement) { 11246 var legacyCreateElement = function(type, props, children) { 11247 if (typeof type !== 'function') { 11248 // Non-function types cannot be legacy factories 11249 return createElement.apply(this, arguments); 11250 } 11251 11252 var args; 11253 11254 if (type.isReactNonLegacyFactory) { 11255 // This is probably a factory created by ReactDOM we unwrap it to get to 11256 // the underlying string type. It shouldn't have been passed here so we 11257 // warn. 11258 if ("production" !== "development") { 11259 warnForNonLegacyFactory(type); 11260 } 11261 args = Array.prototype.slice.call(arguments, 0); 11262 args[0] = type.type; 11263 return createElement.apply(this, args); 11264 } 11265 11266 if (type.isReactLegacyFactory) { 11267 // This is probably a legacy factory created by ReactCompositeComponent. 11268 // We unwrap it to get to the underlying class. 11269 if (type._isMockFunction) { 11270 // If this is a mock function, people will expect it to be called. We 11271 // will actually call the original mock factory function instead. This 11272 // future proofs unit testing that assume that these are classes. 11273 type.type._mockedReactClassConstructor = type; 11274 } 11275 args = Array.prototype.slice.call(arguments, 0); 11276 args[0] = type.type; 11277 return createElement.apply(this, args); 11278 } 11279 11280 if ("production" !== "development") { 11281 warnForPlainFunctionType(type); 11282 } 11283 11284 // This is being called with a plain function we should invoke it 11285 // immediately as if this was used with legacy JSX. 11286 return type.apply(null, Array.prototype.slice.call(arguments, 1)); 11287 }; 11288 return legacyCreateElement; 11289 }; 11290 11291 ReactLegacyElementFactory.wrapFactory = function(factory) { 11292 ("production" !== "development" ? invariant( 11293 typeof factory === 'function', 11294 'This is suppose to accept a element factory' 11295 ) : invariant(typeof factory === 'function')); 11296 var legacyElementFactory = function(config, children) { 11297 // This factory should not be called when JSX is used. Use JSX instead. 11298 if ("production" !== "development") { 11299 warnForLegacyFactoryCall(); 11300 } 11301 return factory.apply(this, arguments); 11302 }; 11303 proxyStaticMethods(legacyElementFactory, factory.type); 11304 legacyElementFactory.isReactLegacyFactory = LEGACY_MARKER; 11305 legacyElementFactory.type = factory.type; 11306 return legacyElementFactory; 11307 }; 11308 11309 // This is used to mark a factory that will remain. E.g. we're allowed to call 11310 // it as a function. However, you're not suppose to pass it to createElement 11311 // or createFactory, so it will warn you if you do. 11312 ReactLegacyElementFactory.markNonLegacyFactory = function(factory) { 11313 factory.isReactNonLegacyFactory = NON_LEGACY_MARKER; 11314 return factory; 11315 }; 11316 11317 // Checks if a factory function is actually a legacy factory pretending to 11318 // be a class. 11319 ReactLegacyElementFactory.isValidFactory = function(factory) { 11320 // TODO: This will be removed and moved into a class validator or something. 11321 return typeof factory === 'function' && 11322 factory.isReactLegacyFactory === LEGACY_MARKER; 11323 }; 11324 11325 ReactLegacyElementFactory.isValidClass = function(factory) { 11326 if ("production" !== "development") { 11327 ("production" !== "development" ? warning( 11328 false, 11329 'isValidClass is deprecated and will be removed in a future release. ' + 11330 'Use a more specific validator instead.' 11331 ) : null); 11332 } 11333 return ReactLegacyElementFactory.isValidFactory(factory); 11334 }; 11335 11336 ReactLegacyElementFactory._isLegacyCallWarningEnabled = true; 11337 11338 module.exports = ReactLegacyElementFactory; 11339 11340 },{"./ReactCurrentOwner":42,"./invariant":140,"./monitorCodeUse":150,"./warning":160}],68:[function(_dereq_,module,exports){ 11341 /** 11342 * Copyright 2013-2014, Facebook, Inc. 11343 * All rights reserved. 11344 * 11345 * This source code is licensed under the BSD-style license found in the 11346 * LICENSE file in the root directory of this source tree. An additional grant 11347 * of patent rights can be found in the PATENTS file in the same directory. 11250 11348 * 11251 11349 * @providesModule ReactLink … … 11313 11411 module.exports = ReactLink; 11314 11412 11315 },{"./React":29}],66:[function(_dereq_,module,exports){ 11316 /** 11317 * Copyright 2013-2014 Facebook, Inc. 11318 * 11319 * Licensed under the Apache License, Version 2.0 (the "License"); 11320 * you may not use this file except in compliance with the License. 11321 * You may obtain a copy of the License at 11322 * 11323 * http://www.apache.org/licenses/LICENSE-2.0 11324 * 11325 * Unless required by applicable law or agreed to in writing, software 11326 * distributed under the License is distributed on an "AS IS" BASIS, 11327 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11328 * See the License for the specific language governing permissions and 11329 * limitations under the License. 11413 },{"./React":31}],69:[function(_dereq_,module,exports){ 11414 /** 11415 * Copyright 2013-2014, Facebook, Inc. 11416 * All rights reserved. 11417 * 11418 * This source code is licensed under the BSD-style license found in the 11419 * LICENSE file in the root directory of this source tree. An additional grant 11420 * of patent rights can be found in the PATENTS file in the same directory. 11330 11421 * 11331 11422 * @providesModule ReactMarkupChecksum … … 11368 11459 module.exports = ReactMarkupChecksum; 11369 11460 11370 },{"./adler32":107}],67:[function(_dereq_,module,exports){ 11371 /** 11372 * Copyright 2013-2014 Facebook, Inc. 11373 * 11374 * Licensed under the Apache License, Version 2.0 (the "License"); 11375 * you may not use this file except in compliance with the License. 11376 * You may obtain a copy of the License at 11377 * 11378 * http://www.apache.org/licenses/LICENSE-2.0 11379 * 11380 * Unless required by applicable law or agreed to in writing, software 11381 * distributed under the License is distributed on an "AS IS" BASIS, 11382 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11383 * See the License for the specific language governing permissions and 11384 * limitations under the License. 11461 },{"./adler32":110}],70:[function(_dereq_,module,exports){ 11462 /** 11463 * Copyright 2013-2014, Facebook, Inc. 11464 * All rights reserved. 11465 * 11466 * This source code is licensed under the BSD-style license found in the 11467 * LICENSE file in the root directory of this source tree. An additional grant 11468 * of patent rights can be found in the PATENTS file in the same directory. 11385 11469 * 11386 11470 * @providesModule ReactMount … … 11392 11476 var ReactBrowserEventEmitter = _dereq_("./ReactBrowserEventEmitter"); 11393 11477 var ReactCurrentOwner = _dereq_("./ReactCurrentOwner"); 11394 var ReactDescriptor = _dereq_("./ReactDescriptor"); 11478 var ReactElement = _dereq_("./ReactElement"); 11479 var ReactLegacyElement = _dereq_("./ReactLegacyElement"); 11395 11480 var ReactInstanceHandles = _dereq_("./ReactInstanceHandles"); 11396 11481 var ReactPerf = _dereq_("./ReactPerf"); 11397 11482 11398 11483 var containsNode = _dereq_("./containsNode"); 11484 var deprecated = _dereq_("./deprecated"); 11399 11485 var getReactRootElementInContainer = _dereq_("./getReactRootElementInContainer"); 11400 11486 var instantiateReactComponent = _dereq_("./instantiateReactComponent"); … … 11402 11488 var shouldUpdateReactComponent = _dereq_("./shouldUpdateReactComponent"); 11403 11489 var warning = _dereq_("./warning"); 11490 11491 var createElement = ReactLegacyElement.wrapCreateElement( 11492 ReactElement.createElement 11493 ); 11404 11494 11405 11495 var SEPARATOR = ReactInstanceHandles.SEPARATOR; … … 11570 11660 * Any prior content inside `container` is destroyed in the process. 11571 11661 * 11572 * ReactMount.render Component(11662 * ReactMount.render( 11573 11663 * component, 11574 11664 * document.getElementById('container') … … 11676 11766 ) : null); 11677 11767 11678 var componentInstance = instantiateReactComponent(nextComponent );11768 var componentInstance = instantiateReactComponent(nextComponent, null); 11679 11769 var reactRootID = ReactMount._registerComponent( 11680 11770 componentInstance, … … 11704 11794 * latest React component. 11705 11795 * 11706 * @param {React Descriptor} nextDescriptor Component descriptorto render.11796 * @param {ReactElement} nextElement Component element to render. 11707 11797 * @param {DOMElement} container DOM element to render into. 11708 11798 * @param {?function} callback function triggered on completion 11709 11799 * @return {ReactComponent} Component instance rendered in `container`. 11710 11800 */ 11711 render Component: function(nextDescriptor, container, callback) {11801 render: function(nextElement, container, callback) { 11712 11802 ("production" !== "development" ? invariant( 11713 React Descriptor.isValidDescriptor(nextDescriptor),11714 'renderComponent(): Invalid component descriptor.%s',11803 ReactElement.isValidElement(nextElement), 11804 'renderComponent(): Invalid component element.%s', 11715 11805 ( 11716 ReactDescriptor.isValidFactory(nextDescriptor) ? 11806 typeof nextElement === 'string' ? 11807 ' Instead of passing an element string, make sure to instantiate ' + 11808 'it by passing it to React.createElement.' : 11809 ReactLegacyElement.isValidFactory(nextElement) ? 11717 11810 ' Instead of passing a component class, make sure to instantiate ' + 11718 'it first by calling it with props.' :11719 // Check if it quacks like a descriptor11720 typeof next Descriptor.props !== "undefined" ?11811 'it by passing it to React.createElement.' : 11812 // Check if it quacks like a element 11813 typeof nextElement.props !== "undefined" ? 11721 11814 ' This may be caused by unintentionally loading two independent ' + 11722 11815 'copies of React.' : 11723 11816 '' 11724 11817 ) 11725 ) : invariant(React Descriptor.isValidDescriptor(nextDescriptor)));11818 ) : invariant(ReactElement.isValidElement(nextElement))); 11726 11819 11727 11820 var prevComponent = instancesByReactRootID[getReactRootID(container)]; 11728 11821 11729 11822 if (prevComponent) { 11730 var prev Descriptor = prevComponent._descriptor;11731 if (shouldUpdateReactComponent(prev Descriptor, nextDescriptor)) {11823 var prevElement = prevComponent._currentElement; 11824 if (shouldUpdateReactComponent(prevElement, nextElement)) { 11732 11825 return ReactMount._updateRootComponent( 11733 11826 prevComponent, 11734 next Descriptor,11827 nextElement, 11735 11828 container, 11736 11829 callback … … 11748 11841 11749 11842 var component = ReactMount._renderNewRootComponent( 11750 next Descriptor,11843 nextElement, 11751 11844 container, 11752 11845 shouldReuseMarkup … … 11766 11859 */ 11767 11860 constructAndRenderComponent: function(constructor, props, container) { 11768 return ReactMount.renderComponent(constructor(props), container); 11861 var element = createElement(constructor, props); 11862 return ReactMount.render(element, container); 11769 11863 }, 11770 11864 … … 12025 12119 'findComponentRoot(..., %s): Unable to find element. This probably ' + 12026 12120 'means the DOM was unexpectedly mutated (e.g., by the browser), ' + 12027 'usually due to forgetting a <tbody> when using tables, nesting <p> ' + 12028 'or <a> tags, or using non-SVG elements in an <svg> parent. Try ' + 12029 'inspecting the child nodes of the element with React ID `%s`.', 12121 'usually due to forgetting a <tbody> when using tables, nesting tags ' + 12122 'like <form>, <p>, or <a>, or using non-SVG elements in an <svg> ' + 12123 'parent. ' + 12124 'Try inspecting the child nodes of the element with React ID `%s`.', 12030 12125 targetID, 12031 12126 ReactMount.getID(ancestorNode) … … 12049 12144 }; 12050 12145 12146 // Deprecations (remove for 0.13) 12147 ReactMount.renderComponent = deprecated( 12148 'ReactMount', 12149 'renderComponent', 12150 'render', 12151 this, 12152 ReactMount.render 12153 ); 12154 12051 12155 module.exports = ReactMount; 12052 12156 12053 },{"./DOMProperty":11,"./ReactBrowserEventEmitter":31,"./ReactCurrentOwner":40,"./ReactDescriptor":56,"./ReactInstanceHandles":64,"./ReactPerf":71,"./containsNode":109,"./getReactRootElementInContainer":128,"./instantiateReactComponent":133,"./invariant":134,"./shouldUpdateReactComponent":154,"./warning":158}],68:[function(_dereq_,module,exports){ 12054 /** 12055 * Copyright 2013-2014 Facebook, Inc. 12056 * 12057 * Licensed under the Apache License, Version 2.0 (the "License"); 12058 * you may not use this file except in compliance with the License. 12059 * You may obtain a copy of the License at 12060 * 12061 * http://www.apache.org/licenses/LICENSE-2.0 12062 * 12063 * Unless required by applicable law or agreed to in writing, software 12064 * distributed under the License is distributed on an "AS IS" BASIS, 12065 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12066 * See the License for the specific language governing permissions and 12067 * limitations under the License. 12157 },{"./DOMProperty":12,"./ReactBrowserEventEmitter":33,"./ReactCurrentOwner":42,"./ReactElement":58,"./ReactInstanceHandles":66,"./ReactLegacyElement":67,"./ReactPerf":75,"./containsNode":114,"./deprecated":120,"./getReactRootElementInContainer":134,"./instantiateReactComponent":139,"./invariant":140,"./shouldUpdateReactComponent":156,"./warning":160}],71:[function(_dereq_,module,exports){ 12158 /** 12159 * Copyright 2013-2014, Facebook, Inc. 12160 * All rights reserved. 12161 * 12162 * This source code is licensed under the BSD-style license found in the 12163 * LICENSE file in the root directory of this source tree. An additional grant 12164 * of patent rights can be found in the PATENTS file in the same directory. 12068 12165 * 12069 12166 * @providesModule ReactMultiChild … … 12249 12346 // The rendered children must be turned into instances as they're 12250 12347 // mounted. 12251 var childInstance = instantiateReactComponent(child );12348 var childInstance = instantiateReactComponent(child, null); 12252 12349 children[name] = childInstance; 12253 12350 // Inlined for performance, see `ReactInstanceHandles.createReactID`. … … 12340 12437 } 12341 12438 var prevChild = prevChildren && prevChildren[name]; 12342 var prev Descriptor = prevChild && prevChild._descriptor;12343 var next Descriptor= nextChildren[name];12344 if (shouldUpdateReactComponent(prev Descriptor, nextDescriptor)) {12439 var prevElement = prevChild && prevChild._currentElement; 12440 var nextElement = nextChildren[name]; 12441 if (shouldUpdateReactComponent(prevElement, nextElement)) { 12345 12442 this.moveChild(prevChild, nextIndex, lastIndex); 12346 12443 lastIndex = Math.max(prevChild._mountIndex, lastIndex); 12347 prevChild.receiveComponent(next Descriptor, transaction);12444 prevChild.receiveComponent(nextElement, transaction); 12348 12445 prevChild._mountIndex = nextIndex; 12349 12446 } else { … … 12354 12451 } 12355 12452 // The child must be instantiated before it's mounted. 12356 var nextChildInstance = instantiateReactComponent(nextDescriptor); 12453 var nextChildInstance = instantiateReactComponent( 12454 nextElement, 12455 null 12456 ); 12357 12457 this._mountChildByNameAtIndex( 12358 12458 nextChildInstance, name, nextIndex, transaction … … 12483 12583 module.exports = ReactMultiChild; 12484 12584 12485 },{"./ReactComponent":35,"./ReactMultiChildUpdateTypes":69,"./flattenChildren":119,"./instantiateReactComponent":133,"./shouldUpdateReactComponent":154}],69:[function(_dereq_,module,exports){ 12486 /** 12487 * Copyright 2013-2014 Facebook, Inc. 12488 * 12489 * Licensed under the Apache License, Version 2.0 (the "License"); 12490 * you may not use this file except in compliance with the License. 12491 * You may obtain a copy of the License at 12492 * 12493 * http://www.apache.org/licenses/LICENSE-2.0 12494 * 12495 * Unless required by applicable law or agreed to in writing, software 12496 * distributed under the License is distributed on an "AS IS" BASIS, 12497 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12498 * See the License for the specific language governing permissions and 12499 * limitations under the License. 12585 },{"./ReactComponent":37,"./ReactMultiChildUpdateTypes":72,"./flattenChildren":124,"./instantiateReactComponent":139,"./shouldUpdateReactComponent":156}],72:[function(_dereq_,module,exports){ 12586 /** 12587 * Copyright 2013-2014, Facebook, Inc. 12588 * All rights reserved. 12589 * 12590 * This source code is licensed under the BSD-style license found in the 12591 * LICENSE file in the root directory of this source tree. An additional grant 12592 * of patent rights can be found in the PATENTS file in the same directory. 12500 12593 * 12501 12594 * @providesModule ReactMultiChildUpdateTypes … … 12523 12616 module.exports = ReactMultiChildUpdateTypes; 12524 12617 12525 },{"./keyMirror":140}],70:[function(_dereq_,module,exports){ 12526 /** 12527 * Copyright 2013-2014 Facebook, Inc. 12528 * 12529 * Licensed under the Apache License, Version 2.0 (the "License"); 12530 * you may not use this file except in compliance with the License. 12531 * You may obtain a copy of the License at 12532 * 12533 * http://www.apache.org/licenses/LICENSE-2.0 12534 * 12535 * Unless required by applicable law or agreed to in writing, software 12536 * distributed under the License is distributed on an "AS IS" BASIS, 12537 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12538 * See the License for the specific language governing permissions and 12539 * limitations under the License. 12618 },{"./keyMirror":146}],73:[function(_dereq_,module,exports){ 12619 /** 12620 * Copyright 2014, Facebook, Inc. 12621 * All rights reserved. 12622 * 12623 * This source code is licensed under the BSD-style license found in the 12624 * LICENSE file in the root directory of this source tree. An additional grant 12625 * of patent rights can be found in the PATENTS file in the same directory. 12626 * 12627 * @providesModule ReactNativeComponent 12628 */ 12629 12630 "use strict"; 12631 12632 var assign = _dereq_("./Object.assign"); 12633 var invariant = _dereq_("./invariant"); 12634 12635 var genericComponentClass = null; 12636 // This registry keeps track of wrapper classes around native tags 12637 var tagToComponentClass = {}; 12638 12639 var ReactNativeComponentInjection = { 12640 // This accepts a class that receives the tag string. This is a catch all 12641 // that can render any kind of tag. 12642 injectGenericComponentClass: function(componentClass) { 12643 genericComponentClass = componentClass; 12644 }, 12645 // This accepts a keyed object with classes as values. Each key represents a 12646 // tag. That particular tag will use this class instead of the generic one. 12647 injectComponentClasses: function(componentClasses) { 12648 assign(tagToComponentClass, componentClasses); 12649 } 12650 }; 12651 12652 /** 12653 * Create an internal class for a specific tag. 12654 * 12655 * @param {string} tag The tag for which to create an internal instance. 12656 * @param {any} props The props passed to the instance constructor. 12657 * @return {ReactComponent} component The injected empty component. 12658 */ 12659 function createInstanceForTag(tag, props, parentType) { 12660 var componentClass = tagToComponentClass[tag]; 12661 if (componentClass == null) { 12662 ("production" !== "development" ? invariant( 12663 genericComponentClass, 12664 'There is no registered component for the tag %s', 12665 tag 12666 ) : invariant(genericComponentClass)); 12667 return new genericComponentClass(tag, props); 12668 } 12669 if (parentType === tag) { 12670 // Avoid recursion 12671 ("production" !== "development" ? invariant( 12672 genericComponentClass, 12673 'There is no registered component for the tag %s', 12674 tag 12675 ) : invariant(genericComponentClass)); 12676 return new genericComponentClass(tag, props); 12677 } 12678 // Unwrap legacy factories 12679 return new componentClass.type(props); 12680 } 12681 12682 var ReactNativeComponent = { 12683 createInstanceForTag: createInstanceForTag, 12684 injection: ReactNativeComponentInjection 12685 }; 12686 12687 module.exports = ReactNativeComponent; 12688 12689 },{"./Object.assign":29,"./invariant":140}],74:[function(_dereq_,module,exports){ 12690 /** 12691 * Copyright 2013-2014, Facebook, Inc. 12692 * All rights reserved. 12693 * 12694 * This source code is licensed under the BSD-style license found in the 12695 * LICENSE file in the root directory of this source tree. An additional grant 12696 * of patent rights can be found in the PATENTS file in the same directory. 12540 12697 * 12541 12698 * @providesModule ReactOwner … … 12684 12841 module.exports = ReactOwner; 12685 12842 12686 },{"./emptyObject":117,"./invariant":134}],71:[function(_dereq_,module,exports){ 12687 /** 12688 * Copyright 2013-2014 Facebook, Inc. 12689 * 12690 * Licensed under the Apache License, Version 2.0 (the "License"); 12691 * you may not use this file except in compliance with the License. 12692 * You may obtain a copy of the License at 12693 * 12694 * http://www.apache.org/licenses/LICENSE-2.0 12695 * 12696 * Unless required by applicable law or agreed to in writing, software 12697 * distributed under the License is distributed on an "AS IS" BASIS, 12698 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12699 * See the License for the specific language governing permissions and 12700 * limitations under the License. 12843 },{"./emptyObject":122,"./invariant":140}],75:[function(_dereq_,module,exports){ 12844 /** 12845 * Copyright 2013-2014, Facebook, Inc. 12846 * All rights reserved. 12847 * 12848 * This source code is licensed under the BSD-style license found in the 12849 * LICENSE file in the root directory of this source tree. An additional grant 12850 * of patent rights can be found in the PATENTS file in the same directory. 12701 12851 * 12702 12852 * @providesModule ReactPerf … … 12734 12884 if ("production" !== "development") { 12735 12885 var measuredFunc = null; 12736 returnfunction() {12886 var wrapper = function() { 12737 12887 if (ReactPerf.enableMeasure) { 12738 12888 if (!measuredFunc) { … … 12743 12893 return func.apply(this, arguments); 12744 12894 }; 12895 wrapper.displayName = objName + '_' + fnName; 12896 return wrapper; 12745 12897 } 12746 12898 return func; … … 12771 12923 module.exports = ReactPerf; 12772 12924 12773 },{}],72:[function(_dereq_,module,exports){ 12774 /** 12775 * Copyright 2013-2014 Facebook, Inc. 12776 * 12777 * Licensed under the Apache License, Version 2.0 (the "License"); 12778 * you may not use this file except in compliance with the License. 12779 * You may obtain a copy of the License at 12780 * 12781 * http://www.apache.org/licenses/LICENSE-2.0 12782 * 12783 * Unless required by applicable law or agreed to in writing, software 12784 * distributed under the License is distributed on an "AS IS" BASIS, 12785 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12786 * See the License for the specific language governing permissions and 12787 * limitations under the License. 12925 },{}],76:[function(_dereq_,module,exports){ 12926 /** 12927 * Copyright 2013-2014, Facebook, Inc. 12928 * All rights reserved. 12929 * 12930 * This source code is licensed under the BSD-style license found in the 12931 * LICENSE file in the root directory of this source tree. An additional grant 12932 * of patent rights can be found in the PATENTS file in the same directory. 12788 12933 * 12789 12934 * @providesModule ReactPropTransferer … … 12792 12937 "use strict"; 12793 12938 12939 var assign = _dereq_("./Object.assign"); 12794 12940 var emptyFunction = _dereq_("./emptyFunction"); 12795 12941 var invariant = _dereq_("./invariant"); 12796 12942 var joinClasses = _dereq_("./joinClasses"); 12797 var merge = _dereq_("./merge"); 12943 var warning = _dereq_("./warning"); 12944 12945 var didWarn = false; 12798 12946 12799 12947 /** … … 12818 12966 // second object's (`value`) keys. An object's style's existing `propA` would 12819 12967 // get overridden. Flip the order here. 12820 return merge(b, a);12968 return assign({}, b, a); 12821 12969 }); 12822 12970 … … 12835 12983 */ 12836 12984 className: createTransferStrategy(joinClasses), 12837 /**12838 * Never transfer the `key` prop.12839 */12840 key: emptyFunction,12841 /**12842 * Never transfer the `ref` prop.12843 */12844 ref: emptyFunction,12845 12985 /** 12846 12986 * Transfer the `style` prop (which is an object) by merging them. … … 12892 13032 */ 12893 13033 mergeProps: function(oldProps, newProps) { 12894 return transferInto( merge(oldProps), newProps);13034 return transferInto(assign({}, oldProps), newProps); 12895 13035 }, 12896 13036 … … 12908 13048 * This is usually used to pass down props to a returned root component. 12909 13049 * 12910 * @param {React Descriptor} descriptorComponent receiving the properties.12911 * @return {React Descriptor} The supplied `component`.13050 * @param {ReactElement} element Component receiving the properties. 13051 * @return {ReactElement} The supplied `component`. 12912 13052 * @final 12913 13053 * @protected 12914 13054 */ 12915 transferPropsTo: function( descriptor) {13055 transferPropsTo: function(element) { 12916 13056 ("production" !== "development" ? invariant( 12917 descriptor._owner === this,13057 element._owner === this, 12918 13058 '%s: You can\'t call transferPropsTo() on a component that you ' + 12919 13059 'don\'t own, %s. This usually means you are calling ' + 12920 13060 'transferPropsTo() on a component passed in as props or children.', 12921 13061 this.constructor.displayName, 12922 descriptor.type.displayName 12923 ) : invariant(descriptor._owner === this)); 12924 12925 // Because descriptors are immutable we have to merge into the existing 13062 typeof element.type === 'string' ? 13063 element.type : 13064 element.type.displayName 13065 ) : invariant(element._owner === this)); 13066 13067 if ("production" !== "development") { 13068 if (!didWarn) { 13069 didWarn = true; 13070 ("production" !== "development" ? warning( 13071 false, 13072 'transferPropsTo is deprecated. ' + 13073 'See http://fb.me/react-transferpropsto for more information.' 13074 ) : null); 13075 } 13076 } 13077 13078 // Because elements are immutable we have to merge into the existing 12926 13079 // props object rather than clone it. 12927 transferInto( descriptor.props, this.props);12928 12929 return descriptor;13080 transferInto(element.props, this.props); 13081 13082 return element; 12930 13083 } 12931 13084 … … 12935 13088 module.exports = ReactPropTransferer; 12936 13089 12937 },{"./emptyFunction":116,"./invariant":134,"./joinClasses":139,"./merge":144}],73:[function(_dereq_,module,exports){ 12938 /** 12939 * Copyright 2013-2014 Facebook, Inc. 12940 * 12941 * Licensed under the Apache License, Version 2.0 (the "License"); 12942 * you may not use this file except in compliance with the License. 12943 * You may obtain a copy of the License at 12944 * 12945 * http://www.apache.org/licenses/LICENSE-2.0 12946 * 12947 * Unless required by applicable law or agreed to in writing, software 12948 * distributed under the License is distributed on an "AS IS" BASIS, 12949 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12950 * See the License for the specific language governing permissions and 12951 * limitations under the License. 13090 },{"./Object.assign":29,"./emptyFunction":121,"./invariant":140,"./joinClasses":145,"./warning":160}],77:[function(_dereq_,module,exports){ 13091 /** 13092 * Copyright 2013-2014, Facebook, Inc. 13093 * All rights reserved. 13094 * 13095 * This source code is licensed under the BSD-style license found in the 13096 * LICENSE file in the root directory of this source tree. An additional grant 13097 * of patent rights can be found in the PATENTS file in the same directory. 12952 13098 * 12953 13099 * @providesModule ReactPropTypeLocationNames … … 12968 13114 module.exports = ReactPropTypeLocationNames; 12969 13115 12970 },{}],74:[function(_dereq_,module,exports){ 12971 /** 12972 * Copyright 2013-2014 Facebook, Inc. 12973 * 12974 * Licensed under the Apache License, Version 2.0 (the "License"); 12975 * you may not use this file except in compliance with the License. 12976 * You may obtain a copy of the License at 12977 * 12978 * http://www.apache.org/licenses/LICENSE-2.0 12979 * 12980 * Unless required by applicable law or agreed to in writing, software 12981 * distributed under the License is distributed on an "AS IS" BASIS, 12982 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12983 * See the License for the specific language governing permissions and 12984 * limitations under the License. 13116 },{}],78:[function(_dereq_,module,exports){ 13117 /** 13118 * Copyright 2013-2014, Facebook, Inc. 13119 * All rights reserved. 13120 * 13121 * This source code is licensed under the BSD-style license found in the 13122 * LICENSE file in the root directory of this source tree. An additional grant 13123 * of patent rights can be found in the PATENTS file in the same directory. 12985 13124 * 12986 13125 * @providesModule ReactPropTypeLocations … … 12999 13138 module.exports = ReactPropTypeLocations; 13000 13139 13001 },{"./keyMirror":140}],75:[function(_dereq_,module,exports){ 13002 /** 13003 * Copyright 2013-2014 Facebook, Inc. 13004 * 13005 * Licensed under the Apache License, Version 2.0 (the "License"); 13006 * you may not use this file except in compliance with the License. 13007 * You may obtain a copy of the License at 13008 * 13009 * http://www.apache.org/licenses/LICENSE-2.0 13010 * 13011 * Unless required by applicable law or agreed to in writing, software 13012 * distributed under the License is distributed on an "AS IS" BASIS, 13013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13014 * See the License for the specific language governing permissions and 13015 * limitations under the License. 13140 },{"./keyMirror":146}],79:[function(_dereq_,module,exports){ 13141 /** 13142 * Copyright 2013-2014, Facebook, Inc. 13143 * All rights reserved. 13144 * 13145 * This source code is licensed under the BSD-style license found in the 13146 * LICENSE file in the root directory of this source tree. An additional grant 13147 * of patent rights can be found in the PATENTS file in the same directory. 13016 13148 * 13017 13149 * @providesModule ReactPropTypes … … 13020 13152 "use strict"; 13021 13153 13022 var React Descriptor = _dereq_("./ReactDescriptor");13154 var ReactElement = _dereq_("./ReactElement"); 13023 13155 var ReactPropTypeLocationNames = _dereq_("./ReactPropTypeLocationNames"); 13024 13156 13157 var deprecated = _dereq_("./deprecated"); 13025 13158 var emptyFunction = _dereq_("./emptyFunction"); 13026 13159 … … 13074 13207 var ANONYMOUS = '<<anonymous>>'; 13075 13208 13209 var elementTypeChecker = createElementTypeChecker(); 13210 var nodeTypeChecker = createNodeChecker(); 13211 13076 13212 var ReactPropTypes = { 13077 13213 array: createPrimitiveTypeChecker('array'), … … 13084 13220 any: createAnyTypeChecker(), 13085 13221 arrayOf: createArrayOfTypeChecker, 13086 component: createComponentTypeChecker(),13222 element: elementTypeChecker, 13087 13223 instanceOf: createInstanceTypeChecker, 13224 node: nodeTypeChecker, 13088 13225 objectOf: createObjectOfTypeChecker, 13089 13226 oneOf: createEnumTypeChecker, 13090 13227 oneOfType: createUnionTypeChecker, 13091 renderable: createRenderableTypeChecker(), 13092 shape: createShapeTypeChecker 13228 shape: createShapeTypeChecker, 13229 13230 component: deprecated( 13231 'React.PropTypes', 13232 'component', 13233 'element', 13234 this, 13235 elementTypeChecker 13236 ), 13237 renderable: deprecated( 13238 'React.PropTypes', 13239 'renderable', 13240 'node', 13241 this, 13242 nodeTypeChecker 13243 ) 13093 13244 }; 13094 13245 … … 13160 13311 } 13161 13312 13162 function create ComponentTypeChecker() {13313 function createElementTypeChecker() { 13163 13314 function validate(props, propName, componentName, location) { 13164 if (!React Descriptor.isValidDescriptor(props[propName])) {13315 if (!ReactElement.isValidElement(props[propName])) { 13165 13316 var locationName = ReactPropTypeLocationNames[location]; 13166 13317 return new Error( 13167 13318 ("Invalid " + locationName + " `" + propName + "` supplied to ") + 13168 ("`" + componentName + "`, expected a React component.")13319 ("`" + componentName + "`, expected a ReactElement.") 13169 13320 ); 13170 13321 } … … 13247 13398 } 13248 13399 13249 function create RenderableTypeChecker() {13400 function createNodeChecker() { 13250 13401 function validate(props, propName, componentName, location) { 13251 if (!is Renderable(props[propName])) {13402 if (!isNode(props[propName])) { 13252 13403 var locationName = ReactPropTypeLocationNames[location]; 13253 13404 return new Error( 13254 13405 ("Invalid " + locationName + " `" + propName + "` supplied to ") + 13255 ("`" + componentName + "`, expected a renderable prop.")13406 ("`" + componentName + "`, expected a ReactNode.") 13256 13407 ); 13257 13408 } … … 13285 13436 } 13286 13437 13287 function is Renderable(propValue) {13438 function isNode(propValue) { 13288 13439 switch(typeof propValue) { 13289 // TODO: this was probably written with the assumption that we're not13290 // returning `this.props.component` directly from `render`. This is13291 // currently not supported but we should, to make it consistent.13292 13440 case 'number': 13293 13441 case 'string': … … 13297 13445 case 'object': 13298 13446 if (Array.isArray(propValue)) { 13299 return propValue.every(is Renderable);13447 return propValue.every(isNode); 13300 13448 } 13301 if (React Descriptor.isValidDescriptor(propValue)) {13449 if (ReactElement.isValidElement(propValue)) { 13302 13450 return true; 13303 13451 } 13304 13452 for (var k in propValue) { 13305 if (!is Renderable(propValue[k])) {13453 if (!isNode(propValue[k])) { 13306 13454 return false; 13307 13455 } … … 13344 13492 module.exports = ReactPropTypes; 13345 13493 13346 },{"./ReactDescriptor":56,"./ReactPropTypeLocationNames":73,"./emptyFunction":116}],76:[function(_dereq_,module,exports){ 13347 /** 13348 * Copyright 2013-2014 Facebook, Inc. 13349 * 13350 * Licensed under the Apache License, Version 2.0 (the "License"); 13351 * you may not use this file except in compliance with the License. 13352 * You may obtain a copy of the License at 13353 * 13354 * http://www.apache.org/licenses/LICENSE-2.0 13355 * 13356 * Unless required by applicable law or agreed to in writing, software 13357 * distributed under the License is distributed on an "AS IS" BASIS, 13358 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13359 * See the License for the specific language governing permissions and 13360 * limitations under the License. 13494 },{"./ReactElement":58,"./ReactPropTypeLocationNames":77,"./deprecated":120,"./emptyFunction":121}],80:[function(_dereq_,module,exports){ 13495 /** 13496 * Copyright 2013-2014, Facebook, Inc. 13497 * All rights reserved. 13498 * 13499 * This source code is licensed under the BSD-style license found in the 13500 * LICENSE file in the root directory of this source tree. An additional grant 13501 * of patent rights can be found in the PATENTS file in the same directory. 13361 13502 * 13362 13503 * @providesModule ReactPutListenerQueue … … 13368 13509 var ReactBrowserEventEmitter = _dereq_("./ReactBrowserEventEmitter"); 13369 13510 13370 var mixInto = _dereq_("./mixInto");13511 var assign = _dereq_("./Object.assign"); 13371 13512 13372 13513 function ReactPutListenerQueue() { … … 13374 13515 } 13375 13516 13376 mixInto(ReactPutListenerQueue, {13517 assign(ReactPutListenerQueue.prototype, { 13377 13518 enqueuePutListener: function(rootNodeID, propKey, propValue) { 13378 13519 this.listenersToPut.push({ … … 13407 13548 module.exports = ReactPutListenerQueue; 13408 13549 13409 },{"./PooledClass":28,"./ReactBrowserEventEmitter":31,"./mixInto":147}],77:[function(_dereq_,module,exports){ 13410 /** 13411 * Copyright 2013-2014 Facebook, Inc. 13412 * 13413 * Licensed under the Apache License, Version 2.0 (the "License"); 13414 * you may not use this file except in compliance with the License. 13415 * You may obtain a copy of the License at 13416 * 13417 * http://www.apache.org/licenses/LICENSE-2.0 13418 * 13419 * Unless required by applicable law or agreed to in writing, software 13420 * distributed under the License is distributed on an "AS IS" BASIS, 13421 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13422 * See the License for the specific language governing permissions and 13423 * limitations under the License. 13550 },{"./Object.assign":29,"./PooledClass":30,"./ReactBrowserEventEmitter":33}],81:[function(_dereq_,module,exports){ 13551 /** 13552 * Copyright 2013-2014, Facebook, Inc. 13553 * All rights reserved. 13554 * 13555 * This source code is licensed under the BSD-style license found in the 13556 * LICENSE file in the root directory of this source tree. An additional grant 13557 * of patent rights can be found in the PATENTS file in the same directory. 13424 13558 * 13425 13559 * @providesModule ReactReconcileTransaction … … 13436 13570 var Transaction = _dereq_("./Transaction"); 13437 13571 13438 var mixInto = _dereq_("./mixInto");13572 var assign = _dereq_("./Object.assign"); 13439 13573 13440 13574 /** … … 13584 13718 13585 13719 13586 mixInto(ReactReconcileTransaction, Transaction.Mixin); 13587 mixInto(ReactReconcileTransaction, Mixin); 13720 assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin); 13588 13721 13589 13722 PooledClass.addPoolingTo(ReactReconcileTransaction); … … 13591 13724 module.exports = ReactReconcileTransaction; 13592 13725 13593 },{"./CallbackQueue":6,"./PooledClass":28,"./ReactBrowserEventEmitter":31,"./ReactInputSelection":63,"./ReactPutListenerQueue":76,"./Transaction":104,"./mixInto":147}],78:[function(_dereq_,module,exports){ 13594 /** 13595 * Copyright 2013-2014 Facebook, Inc. 13596 * 13597 * Licensed under the Apache License, Version 2.0 (the "License"); 13598 * you may not use this file except in compliance with the License. 13599 * You may obtain a copy of the License at 13600 * 13601 * http://www.apache.org/licenses/LICENSE-2.0 13602 * 13603 * Unless required by applicable law or agreed to in writing, software 13604 * distributed under the License is distributed on an "AS IS" BASIS, 13605 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13606 * See the License for the specific language governing permissions and 13607 * limitations under the License. 13726 },{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactBrowserEventEmitter":33,"./ReactInputSelection":65,"./ReactPutListenerQueue":80,"./Transaction":107}],82:[function(_dereq_,module,exports){ 13727 /** 13728 * Copyright 2013-2014, Facebook, Inc. 13729 * All rights reserved. 13730 * 13731 * This source code is licensed under the BSD-style license found in the 13732 * LICENSE file in the root directory of this source tree. An additional grant 13733 * of patent rights can be found in the PATENTS file in the same directory. 13608 13734 * 13609 13735 * @providesModule ReactRootIndex … … 13629 13755 module.exports = ReactRootIndex; 13630 13756 13631 },{}],79:[function(_dereq_,module,exports){ 13632 /** 13633 * Copyright 2013-2014 Facebook, Inc. 13634 * 13635 * Licensed under the Apache License, Version 2.0 (the "License"); 13636 * you may not use this file except in compliance with the License. 13637 * You may obtain a copy of the License at 13638 * 13639 * http://www.apache.org/licenses/LICENSE-2.0 13640 * 13641 * Unless required by applicable law or agreed to in writing, software 13642 * distributed under the License is distributed on an "AS IS" BASIS, 13643 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13644 * See the License for the specific language governing permissions and 13645 * limitations under the License. 13757 },{}],83:[function(_dereq_,module,exports){ 13758 /** 13759 * Copyright 2013-2014, Facebook, Inc. 13760 * All rights reserved. 13761 * 13762 * This source code is licensed under the BSD-style license found in the 13763 * LICENSE file in the root directory of this source tree. An additional grant 13764 * of patent rights can be found in the PATENTS file in the same directory. 13646 13765 * 13647 13766 * @typechecks static-only … … 13650 13769 "use strict"; 13651 13770 13652 var React Descriptor = _dereq_("./ReactDescriptor");13771 var ReactElement = _dereq_("./ReactElement"); 13653 13772 var ReactInstanceHandles = _dereq_("./ReactInstanceHandles"); 13654 13773 var ReactMarkupChecksum = _dereq_("./ReactMarkupChecksum"); … … 13660 13779 13661 13780 /** 13662 * @param {React Component} component13781 * @param {ReactElement} element 13663 13782 * @return {string} the HTML markup 13664 13783 */ 13665 function render ComponentToString(component) {13784 function renderToString(element) { 13666 13785 ("production" !== "development" ? invariant( 13667 ReactDescriptor.isValidDescriptor(component), 13668 'renderComponentToString(): You must pass a valid ReactComponent.' 13669 ) : invariant(ReactDescriptor.isValidDescriptor(component))); 13670 13671 ("production" !== "development" ? invariant( 13672 !(arguments.length === 2 && typeof arguments[1] === 'function'), 13673 'renderComponentToString(): This function became synchronous and now ' + 13674 'returns the generated markup. Please remove the second parameter.' 13675 ) : invariant(!(arguments.length === 2 && typeof arguments[1] === 'function'))); 13786 ReactElement.isValidElement(element), 13787 'renderToString(): You must pass a valid ReactElement.' 13788 ) : invariant(ReactElement.isValidElement(element))); 13676 13789 13677 13790 var transaction; … … 13681 13794 13682 13795 return transaction.perform(function() { 13683 var componentInstance = instantiateReactComponent( component);13796 var componentInstance = instantiateReactComponent(element, null); 13684 13797 var markup = componentInstance.mountComponent(id, transaction, 0); 13685 13798 return ReactMarkupChecksum.addChecksumToMarkup(markup); … … 13691 13804 13692 13805 /** 13693 * @param {React Component} component13806 * @param {ReactElement} element 13694 13807 * @return {string} the HTML markup, without the extra React ID and checksum 13695 * (for generating static pages)13696 */ 13697 function render ComponentToStaticMarkup(component) {13808 * (for generating static pages) 13809 */ 13810 function renderToStaticMarkup(element) { 13698 13811 ("production" !== "development" ? invariant( 13699 React Descriptor.isValidDescriptor(component),13700 'render ComponentToStaticMarkup(): You must pass a valid ReactComponent.'13701 ) : invariant(React Descriptor.isValidDescriptor(component)));13812 ReactElement.isValidElement(element), 13813 'renderToStaticMarkup(): You must pass a valid ReactElement.' 13814 ) : invariant(ReactElement.isValidElement(element))); 13702 13815 13703 13816 var transaction; … … 13707 13820 13708 13821 return transaction.perform(function() { 13709 var componentInstance = instantiateReactComponent( component);13822 var componentInstance = instantiateReactComponent(element, null); 13710 13823 return componentInstance.mountComponent(id, transaction, 0); 13711 13824 }, null); … … 13716 13829 13717 13830 module.exports = { 13718 render ComponentToString: renderComponentToString,13719 render ComponentToStaticMarkup: renderComponentToStaticMarkup13831 renderToString: renderToString, 13832 renderToStaticMarkup: renderToStaticMarkup 13720 13833 }; 13721 13834 13722 },{"./ReactDescriptor":56,"./ReactInstanceHandles":64,"./ReactMarkupChecksum":66,"./ReactServerRenderingTransaction":80,"./instantiateReactComponent":133,"./invariant":134}],80:[function(_dereq_,module,exports){ 13723 /** 13724 * Copyright 2014 Facebook, Inc. 13725 * 13726 * Licensed under the Apache License, Version 2.0 (the "License"); 13727 * you may not use this file except in compliance with the License. 13728 * You may obtain a copy of the License at 13729 * 13730 * http://www.apache.org/licenses/LICENSE-2.0 13731 * 13732 * Unless required by applicable law or agreed to in writing, software 13733 * distributed under the License is distributed on an "AS IS" BASIS, 13734 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13735 * See the License for the specific language governing permissions and 13736 * limitations under the License. 13835 },{"./ReactElement":58,"./ReactInstanceHandles":66,"./ReactMarkupChecksum":69,"./ReactServerRenderingTransaction":84,"./instantiateReactComponent":139,"./invariant":140}],84:[function(_dereq_,module,exports){ 13836 /** 13837 * Copyright 2014, Facebook, Inc. 13838 * All rights reserved. 13839 * 13840 * This source code is licensed under the BSD-style license found in the 13841 * LICENSE file in the root directory of this source tree. An additional grant 13842 * of patent rights can be found in the PATENTS file in the same directory. 13737 13843 * 13738 13844 * @providesModule ReactServerRenderingTransaction … … 13747 13853 var Transaction = _dereq_("./Transaction"); 13748 13854 13855 var assign = _dereq_("./Object.assign"); 13749 13856 var emptyFunction = _dereq_("./emptyFunction"); 13750 var mixInto = _dereq_("./mixInto");13751 13857 13752 13858 /** … … 13830 13936 13831 13937 13832 mixInto(ReactServerRenderingTransaction, Transaction.Mixin); 13833 mixInto(ReactServerRenderingTransaction, Mixin); 13938 assign( 13939 ReactServerRenderingTransaction.prototype, 13940 Transaction.Mixin, 13941 Mixin 13942 ); 13834 13943 13835 13944 PooledClass.addPoolingTo(ReactServerRenderingTransaction); … … 13837 13946 module.exports = ReactServerRenderingTransaction; 13838 13947 13839 },{"./CallbackQueue":6,"./PooledClass":28,"./ReactPutListenerQueue":76,"./Transaction":104,"./emptyFunction":116,"./mixInto":147}],81:[function(_dereq_,module,exports){ 13840 /** 13841 * Copyright 2013-2014 Facebook, Inc. 13842 * 13843 * Licensed under the Apache License, Version 2.0 (the "License"); 13844 * you may not use this file except in compliance with the License. 13845 * You may obtain a copy of the License at 13846 * 13847 * http://www.apache.org/licenses/LICENSE-2.0 13848 * 13849 * Unless required by applicable law or agreed to in writing, software 13850 * distributed under the License is distributed on an "AS IS" BASIS, 13851 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13852 * See the License for the specific language governing permissions and 13853 * limitations under the License. 13948 },{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactPutListenerQueue":80,"./Transaction":107,"./emptyFunction":121}],85:[function(_dereq_,module,exports){ 13949 /** 13950 * Copyright 2013-2014, Facebook, Inc. 13951 * All rights reserved. 13952 * 13953 * This source code is licensed under the BSD-style license found in the 13954 * LICENSE file in the root directory of this source tree. An additional grant 13955 * of patent rights can be found in the PATENTS file in the same directory. 13854 13956 * 13855 13957 * @providesModule ReactStateSetters … … 13950 14052 module.exports = ReactStateSetters; 13951 14053 13952 },{}],82:[function(_dereq_,module,exports){ 13953 /** 13954 * Copyright 2013-2014 Facebook, Inc. 13955 * 13956 * Licensed under the Apache License, Version 2.0 (the "License"); 13957 * you may not use this file except in compliance with the License. 13958 * You may obtain a copy of the License at 13959 * 13960 * http://www.apache.org/licenses/LICENSE-2.0 13961 * 13962 * Unless required by applicable law or agreed to in writing, software 13963 * distributed under the License is distributed on an "AS IS" BASIS, 13964 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13965 * See the License for the specific language governing permissions and 13966 * limitations under the License. 14054 },{}],86:[function(_dereq_,module,exports){ 14055 /** 14056 * Copyright 2013-2014, Facebook, Inc. 14057 * All rights reserved. 14058 * 14059 * This source code is licensed under the BSD-style license found in the 14060 * LICENSE file in the root directory of this source tree. An additional grant 14061 * of patent rights can be found in the PATENTS file in the same directory. 13967 14062 * 13968 14063 * @providesModule ReactTestUtils … … 13975 14070 var EventPropagators = _dereq_("./EventPropagators"); 13976 14071 var React = _dereq_("./React"); 13977 var ReactDescriptor = _dereq_("./ReactDescriptor"); 13978 var ReactDOM = _dereq_("./ReactDOM"); 14072 var ReactElement = _dereq_("./ReactElement"); 13979 14073 var ReactBrowserEventEmitter = _dereq_("./ReactBrowserEventEmitter"); 13980 14074 var ReactMount = _dereq_("./ReactMount"); … … 13983 14077 var SyntheticEvent = _dereq_("./SyntheticEvent"); 13984 14078 13985 var mergeInto = _dereq_("./mergeInto"); 13986 var copyProperties = _dereq_("./copyProperties"); 14079 var assign = _dereq_("./Object.assign"); 13987 14080 13988 14081 var topLevelTypes = EventConstants.topLevelTypes; … … 14007 14100 // (and probably rename it eventually) if no problems arise. 14008 14101 // document.documentElement.appendChild(div); 14009 return React.render Component(instance, div);14010 }, 14011 14012 is Descriptor: function(descriptor) {14013 return React Descriptor.isValidDescriptor(descriptor);14014 }, 14015 14016 is DescriptorOfType: function(inst, convenienceConstructor) {14102 return React.render(instance, div); 14103 }, 14104 14105 isElement: function(element) { 14106 return ReactElement.isValidElement(element); 14107 }, 14108 14109 isElementOfType: function(inst, convenienceConstructor) { 14017 14110 return ( 14018 React Descriptor.isValidDescriptor(inst) &&14111 ReactElement.isValidElement(inst) && 14019 14112 inst.type === convenienceConstructor.type 14020 14113 ); … … 14025 14118 }, 14026 14119 14027 isDOMComponent Descriptor: function(inst) {14120 isDOMComponentElement: function(inst) { 14028 14121 return !!(inst && 14029 React Descriptor.isValidDescriptor(inst) &&14122 ReactElement.isValidElement(inst) && 14030 14123 !!inst.tagName); 14031 14124 }, … … 14041 14134 }, 14042 14135 14043 isCompositeComponent Descriptor: function(inst) {14044 if (!React Descriptor.isValidDescriptor(inst)) {14136 isCompositeComponentElement: function(inst) { 14137 if (!ReactElement.isValidElement(inst)) { 14045 14138 return false; 14046 14139 } … … 14054 14147 }, 14055 14148 14056 isCompositeComponent DescriptorWithType: function(inst, type) {14057 return !!(ReactTestUtils.isCompositeComponent Descriptor(inst) &&14149 isCompositeComponentElementWithType: function(inst, type) { 14150 return !!(ReactTestUtils.isCompositeComponentElement(inst) && 14058 14151 (inst.constructor === type)); 14059 14152 }, … … 14191 14284 */ 14192 14285 mockComponent: function(module, mockTagName) { 14193 var ConvenienceConstructor = React.createClass({ 14286 mockTagName = mockTagName || module.mockTagName || "div"; 14287 14288 var ConvenienceConstructor = React.createClass({displayName: 'ConvenienceConstructor', 14194 14289 render: function() { 14195 var mockTagName = mockTagName || module.mockTagName || "div"; 14196 return ReactDOM[mockTagName](null, this.props.children); 14290 return React.createElement( 14291 mockTagName, 14292 null, 14293 this.props.children 14294 ); 14197 14295 } 14198 14296 }); 14199 14297 14200 copyProperties(module, ConvenienceConstructor);14201 14298 module.mockImplementation(ConvenienceConstructor); 14299 14300 module.type = ConvenienceConstructor.type; 14301 module.isReactLegacyFactory = true; 14202 14302 14203 14303 return this; … … 14275 14375 fakeNativeEvent 14276 14376 ); 14277 mergeInto(event, eventData);14377 assign(event, eventData); 14278 14378 EventPropagators.accumulateTwoPhaseDispatches(event); 14279 14379 … … 14331 14431 return function(domComponentOrNode, nativeEventData) { 14332 14432 var fakeNativeEvent = new Event(eventType); 14333 mergeInto(fakeNativeEvent, nativeEventData);14433 assign(fakeNativeEvent, nativeEventData); 14334 14434 if (ReactTestUtils.isDOMComponent(domComponentOrNode)) { 14335 14435 ReactTestUtils.simulateNativeEventOnDOMComponent( … … 14364 14464 module.exports = ReactTestUtils; 14365 14465 14366 },{"./EventConstants":16,"./EventPluginHub":18,"./EventPropagators":21,"./React":29,"./ReactBrowserEventEmitter":31,"./ReactDOM":41,"./ReactDescriptor":56,"./ReactMount":67,"./ReactTextComponent":83,"./ReactUpdates":87,"./SyntheticEvent":96,"./copyProperties":110,"./mergeInto":146}],83:[function(_dereq_,module,exports){ 14367 /** 14368 * Copyright 2013-2014 Facebook, Inc. 14369 * 14370 * Licensed under the Apache License, Version 2.0 (the "License"); 14371 * you may not use this file except in compliance with the License. 14372 * You may obtain a copy of the License at 14373 * 14374 * http://www.apache.org/licenses/LICENSE-2.0 14375 * 14376 * Unless required by applicable law or agreed to in writing, software 14377 * distributed under the License is distributed on an "AS IS" BASIS, 14378 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14379 * See the License for the specific language governing permissions and 14380 * limitations under the License. 14466 },{"./EventConstants":17,"./EventPluginHub":19,"./EventPropagators":22,"./Object.assign":29,"./React":31,"./ReactBrowserEventEmitter":33,"./ReactElement":58,"./ReactMount":70,"./ReactTextComponent":87,"./ReactUpdates":91,"./SyntheticEvent":99}],87:[function(_dereq_,module,exports){ 14467 /** 14468 * Copyright 2013-2014, Facebook, Inc. 14469 * All rights reserved. 14470 * 14471 * This source code is licensed under the BSD-style license found in the 14472 * LICENSE file in the root directory of this source tree. An additional grant 14473 * of patent rights can be found in the PATENTS file in the same directory. 14381 14474 * 14382 14475 * @providesModule ReactTextComponent … … 14387 14480 14388 14481 var DOMPropertyOperations = _dereq_("./DOMPropertyOperations"); 14389 var ReactBrowserComponentMixin = _dereq_("./ReactBrowserComponentMixin");14390 14482 var ReactComponent = _dereq_("./ReactComponent"); 14391 var ReactDescriptor = _dereq_("./ReactDescriptor"); 14392 14483 var ReactElement = _dereq_("./ReactElement"); 14484 14485 var assign = _dereq_("./Object.assign"); 14393 14486 var escapeTextForBrowser = _dereq_("./escapeTextForBrowser"); 14394 var mixInto = _dereq_("./mixInto");14395 14487 14396 14488 /** … … 14409 14501 * @internal 14410 14502 */ 14411 var ReactTextComponent = function( descriptor) {14412 this.construct(descriptor);14503 var ReactTextComponent = function(props) { 14504 // This constructor and it's argument is currently used by mocks. 14413 14505 }; 14414 14506 14415 mixInto(ReactTextComponent, ReactComponent.Mixin); 14416 mixInto(ReactTextComponent, ReactBrowserComponentMixin); 14417 mixInto(ReactTextComponent, { 14507 assign(ReactTextComponent.prototype, ReactComponent.Mixin, { 14418 14508 14419 14509 /** … … 14471 14561 }); 14472 14562 14473 module.exports = ReactDescriptor.createFactory(ReactTextComponent); 14474 14475 },{"./DOMPropertyOperations":12,"./ReactBrowserComponentMixin":30,"./ReactComponent":35,"./ReactDescriptor":56,"./escapeTextForBrowser":118,"./mixInto":147}],84:[function(_dereq_,module,exports){ 14476 /** 14477 * Copyright 2013-2014 Facebook, Inc. 14478 * 14479 * Licensed under the Apache License, Version 2.0 (the "License"); 14480 * you may not use this file except in compliance with the License. 14481 * You may obtain a copy of the License at 14482 * 14483 * http://www.apache.org/licenses/LICENSE-2.0 14484 * 14485 * Unless required by applicable law or agreed to in writing, software14486 * distributed under the License is distributed on an "AS IS" BASIS,14487 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14488 * See the License for the specific language governing permissions and14489 * limitations under the License.14563 var ReactTextComponentFactory = function(text) { 14564 // Bypass validation and configuration 14565 return new ReactElement(ReactTextComponent, null, null, null, null, text); 14566 }; 14567 14568 ReactTextComponentFactory.type = ReactTextComponent; 14569 14570 module.exports = ReactTextComponentFactory; 14571 14572 },{"./DOMPropertyOperations":13,"./Object.assign":29,"./ReactComponent":37,"./ReactElement":58,"./escapeTextForBrowser":123}],88:[function(_dereq_,module,exports){ 14573 /** 14574 * Copyright 2013-2014, Facebook, Inc. 14575 * All rights reserved. 14576 * 14577 * This source code is licensed under the BSD-style license found in the 14578 * LICENSE file in the root directory of this source tree. An additional grant 14579 * of patent rights can be found in the PATENTS file in the same directory. 14490 14580 * 14491 14581 * @typechecks static-only … … 14513 14603 /** 14514 14604 * When you're adding or removing children some may be added or removed in the 14515 * same render pass. We want otshow *both* since we want to simultaneously14605 * same render pass. We want to show *both* since we want to simultaneously 14516 14606 * animate elements in and out. This function takes a previous set of keys 14517 14607 * and a new set of keys and merges them with its best guess of the correct … … 14581 14671 module.exports = ReactTransitionChildMapping; 14582 14672 14583 },{"./ReactChildren":34}],85:[function(_dereq_,module,exports){ 14584 /** 14585 * Copyright 2013-2014 Facebook, Inc. 14586 * 14587 * Licensed under the Apache License, Version 2.0 (the "License"); 14588 * you may not use this file except in compliance with the License. 14589 * You may obtain a copy of the License at 14590 * 14591 * http://www.apache.org/licenses/LICENSE-2.0 14592 * 14593 * Unless required by applicable law or agreed to in writing, software 14594 * distributed under the License is distributed on an "AS IS" BASIS, 14595 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14596 * See the License for the specific language governing permissions and 14597 * limitations under the License. 14673 },{"./ReactChildren":36}],89:[function(_dereq_,module,exports){ 14674 /** 14675 * Copyright 2013-2014, Facebook, Inc. 14676 * All rights reserved. 14677 * 14678 * This source code is licensed under the BSD-style license found in the 14679 * LICENSE file in the root directory of this source tree. An additional grant 14680 * of patent rights can be found in the PATENTS file in the same directory. 14598 14681 * 14599 14682 * @providesModule ReactTransitionEvents … … 14699 14782 module.exports = ReactTransitionEvents; 14700 14783 14701 },{"./ExecutionEnvironment":22}],86:[function(_dereq_,module,exports){ 14702 /** 14703 * Copyright 2013-2014 Facebook, Inc. 14704 * 14705 * Licensed under the Apache License, Version 2.0 (the "License"); 14706 * you may not use this file except in compliance with the License. 14707 * You may obtain a copy of the License at 14708 * 14709 * http://www.apache.org/licenses/LICENSE-2.0 14710 * 14711 * Unless required by applicable law or agreed to in writing, software 14712 * distributed under the License is distributed on an "AS IS" BASIS, 14713 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14714 * See the License for the specific language governing permissions and 14715 * limitations under the License. 14784 },{"./ExecutionEnvironment":23}],90:[function(_dereq_,module,exports){ 14785 /** 14786 * Copyright 2013-2014, Facebook, Inc. 14787 * All rights reserved. 14788 * 14789 * This source code is licensed under the BSD-style license found in the 14790 * LICENSE file in the root directory of this source tree. An additional grant 14791 * of patent rights can be found in the PATENTS file in the same directory. 14716 14792 * 14717 14793 * @providesModule ReactTransitionGroup … … 14723 14799 var ReactTransitionChildMapping = _dereq_("./ReactTransitionChildMapping"); 14724 14800 14801 var assign = _dereq_("./Object.assign"); 14725 14802 var cloneWithProps = _dereq_("./cloneWithProps"); 14726 14803 var emptyFunction = _dereq_("./emptyFunction"); 14727 var merge = _dereq_("./merge");14728 14804 14729 14805 var ReactTransitionGroup = React.createClass({ … … 14731 14807 14732 14808 propTypes: { 14733 component: React.PropTypes. func,14809 component: React.PropTypes.any, 14734 14810 childFactory: React.PropTypes.func 14735 14811 }, … … 14737 14813 getDefaultProps: function() { 14738 14814 return { 14739 component: React.DOM.span,14815 component: 'span', 14740 14816 childFactory: emptyFunction.thatReturnsArgument 14741 14817 }; … … 14861 14937 this.performEnter(key); 14862 14938 } else { 14863 var newChildren = merge(this.state.children);14939 var newChildren = assign({}, this.state.children); 14864 14940 delete newChildren[key]; 14865 14941 this.setState({children: newChildren}); … … 14885 14961 } 14886 14962 } 14887 return this.transferPropsTo(this.props.component(null, childrenToRender)); 14963 return React.createElement( 14964 this.props.component, 14965 this.props, 14966 childrenToRender 14967 ); 14888 14968 } 14889 14969 }); … … 14891 14971 module.exports = ReactTransitionGroup; 14892 14972 14893 },{"./React":29,"./ReactTransitionChildMapping":84,"./cloneWithProps":108,"./emptyFunction":116,"./merge":144}],87:[function(_dereq_,module,exports){ 14894 /** 14895 * Copyright 2013-2014 Facebook, Inc. 14896 * 14897 * Licensed under the Apache License, Version 2.0 (the "License"); 14898 * you may not use this file except in compliance with the License. 14899 * You may obtain a copy of the License at 14900 * 14901 * http://www.apache.org/licenses/LICENSE-2.0 14902 * 14903 * Unless required by applicable law or agreed to in writing, software 14904 * distributed under the License is distributed on an "AS IS" BASIS, 14905 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14906 * See the License for the specific language governing permissions and 14907 * limitations under the License. 14973 },{"./Object.assign":29,"./React":31,"./ReactTransitionChildMapping":88,"./cloneWithProps":113,"./emptyFunction":121}],91:[function(_dereq_,module,exports){ 14974 /** 14975 * Copyright 2013-2014, Facebook, Inc. 14976 * All rights reserved. 14977 * 14978 * This source code is licensed under the BSD-style license found in the 14979 * LICENSE file in the root directory of this source tree. An additional grant 14980 * of patent rights can be found in the PATENTS file in the same directory. 14908 14981 * 14909 14982 * @providesModule ReactUpdates … … 14918 14991 var Transaction = _dereq_("./Transaction"); 14919 14992 14993 var assign = _dereq_("./Object.assign"); 14920 14994 var invariant = _dereq_("./invariant"); 14921 var mixInto = _dereq_("./mixInto");14922 14995 var warning = _dereq_("./warning"); 14923 14996 14924 14997 var dirtyComponents = []; 14998 var asapCallbackQueue = CallbackQueue.getPooled(); 14999 var asapEnqueued = false; 14925 15000 14926 15001 var batchingStrategy = null; … … 14967 15042 this.reinitializeTransaction(); 14968 15043 this.dirtyComponentsLength = null; 14969 this.callbackQueue = CallbackQueue.getPooled( null);15044 this.callbackQueue = CallbackQueue.getPooled(); 14970 15045 this.reconcileTransaction = 14971 15046 ReactUpdates.ReactReconcileTransaction.getPooled(); 14972 15047 } 14973 15048 14974 mixInto(ReactUpdatesFlushTransaction, Transaction.Mixin); 14975 mixInto(ReactUpdatesFlushTransaction, { 15049 assign( 15050 ReactUpdatesFlushTransaction.prototype, 15051 Transaction.Mixin, { 14976 15052 getTransactionWrappers: function() { 14977 15053 return TRANSACTION_WRAPPERS; … … 15064 15140 // array and perform any updates enqueued by mount-ready handlers (i.e., 15065 15141 // componentDidUpdate) but we need to check here too in order to catch 15066 // updates enqueued by setState callbacks. 15067 while (dirtyComponents.length) { 15068 var transaction = ReactUpdatesFlushTransaction.getPooled(); 15069 transaction.perform(runBatchedUpdates, null, transaction); 15070 ReactUpdatesFlushTransaction.release(transaction); 15142 // updates enqueued by setState callbacks and asap calls. 15143 while (dirtyComponents.length || asapEnqueued) { 15144 if (dirtyComponents.length) { 15145 var transaction = ReactUpdatesFlushTransaction.getPooled(); 15146 transaction.perform(runBatchedUpdates, null, transaction); 15147 ReactUpdatesFlushTransaction.release(transaction); 15148 } 15149 15150 if (asapEnqueued) { 15151 asapEnqueued = false; 15152 var queue = asapCallbackQueue; 15153 asapCallbackQueue = CallbackQueue.getPooled(); 15154 queue.notifyAll(); 15155 CallbackQueue.release(queue); 15156 } 15071 15157 } 15072 15158 } … … 15113 15199 } 15114 15200 } 15201 } 15202 15203 /** 15204 * Enqueue a callback to be run at the end of the current batching cycle. Throws 15205 * if no updates are currently being performed. 15206 */ 15207 function asap(callback, context) { 15208 ("production" !== "development" ? invariant( 15209 batchingStrategy.isBatchingUpdates, 15210 'ReactUpdates.asap: Can\'t enqueue an asap callback in a context where' + 15211 'updates are not being batched.' 15212 ) : invariant(batchingStrategy.isBatchingUpdates)); 15213 asapCallbackQueue.enqueue(callback, context); 15214 asapEnqueued = true; 15115 15215 } 15116 15216 … … 15153 15253 enqueueUpdate: enqueueUpdate, 15154 15254 flushBatchedUpdates: flushBatchedUpdates, 15155 injection: ReactUpdatesInjection 15255 injection: ReactUpdatesInjection, 15256 asap: asap 15156 15257 }; 15157 15258 15158 15259 module.exports = ReactUpdates; 15159 15260 15160 },{"./CallbackQueue":6,"./PooledClass":28,"./ReactCurrentOwner":40,"./ReactPerf":71,"./Transaction":104,"./invariant":134,"./mixInto":147,"./warning":158}],88:[function(_dereq_,module,exports){ 15161 /** 15162 * Copyright 2013-2014 Facebook, Inc. 15163 * 15164 * Licensed under the Apache License, Version 2.0 (the "License"); 15165 * you may not use this file except in compliance with the License. 15166 * You may obtain a copy of the License at 15167 * 15168 * http://www.apache.org/licenses/LICENSE-2.0 15169 * 15170 * Unless required by applicable law or agreed to in writing, software 15171 * distributed under the License is distributed on an "AS IS" BASIS, 15172 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15173 * See the License for the specific language governing permissions and 15174 * limitations under the License. 15175 * 15176 * @providesModule ReactWithAddons 15177 */ 15178 15179 /** 15180 * This module exists purely in the open source project, and is meant as a way 15181 * to create a separate standalone build of React. This build has "addons", or 15182 * functionality we've built and think might be useful but doesn't have a good 15183 * place to live inside React core. 15184 */ 15185 15186 "use strict"; 15187 15188 var LinkedStateMixin = _dereq_("./LinkedStateMixin"); 15189 var React = _dereq_("./React"); 15190 var ReactComponentWithPureRenderMixin = 15191 _dereq_("./ReactComponentWithPureRenderMixin"); 15192 var ReactCSSTransitionGroup = _dereq_("./ReactCSSTransitionGroup"); 15193 var ReactTransitionGroup = _dereq_("./ReactTransitionGroup"); 15194 15195 var cx = _dereq_("./cx"); 15196 var cloneWithProps = _dereq_("./cloneWithProps"); 15197 var update = _dereq_("./update"); 15198 15199 React.addons = { 15200 CSSTransitionGroup: ReactCSSTransitionGroup, 15201 LinkedStateMixin: LinkedStateMixin, 15202 PureRenderMixin: ReactComponentWithPureRenderMixin, 15203 TransitionGroup: ReactTransitionGroup, 15204 15205 classSet: cx, 15206 cloneWithProps: cloneWithProps, 15207 update: update 15208 }; 15209 15210 if ("production" !== "development") { 15211 React.addons.Perf = _dereq_("./ReactDefaultPerf"); 15212 React.addons.TestUtils = _dereq_("./ReactTestUtils"); 15213 } 15214 15215 module.exports = React; 15216 15217 15218 },{"./LinkedStateMixin":24,"./React":29,"./ReactCSSTransitionGroup":32,"./ReactComponentWithPureRenderMixin":37,"./ReactDefaultPerf":54,"./ReactTestUtils":82,"./ReactTransitionGroup":86,"./cloneWithProps":108,"./cx":114,"./update":157}],89:[function(_dereq_,module,exports){ 15219 /** 15220 * Copyright 2013-2014 Facebook, Inc. 15221 * 15222 * Licensed under the Apache License, Version 2.0 (the "License"); 15223 * you may not use this file except in compliance with the License. 15224 * You may obtain a copy of the License at 15225 * 15226 * http://www.apache.org/licenses/LICENSE-2.0 15227 * 15228 * Unless required by applicable law or agreed to in writing, software 15229 * distributed under the License is distributed on an "AS IS" BASIS, 15230 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15231 * See the License for the specific language governing permissions and 15232 * limitations under the License. 15261 },{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactCurrentOwner":42,"./ReactPerf":75,"./Transaction":107,"./invariant":140,"./warning":160}],92:[function(_dereq_,module,exports){ 15262 /** 15263 * Copyright 2013-2014, Facebook, Inc. 15264 * All rights reserved. 15265 * 15266 * This source code is licensed under the BSD-style license found in the 15267 * LICENSE file in the root directory of this source tree. An additional grant 15268 * of patent rights can be found in the PATENTS file in the same directory. 15233 15269 * 15234 15270 * @providesModule SVGDOMPropertyConfig … … 15315 15351 module.exports = SVGDOMPropertyConfig; 15316 15352 15317 },{"./DOMProperty":11}],90:[function(_dereq_,module,exports){ 15318 /** 15319 * Copyright 2013-2014 Facebook, Inc. 15320 * 15321 * Licensed under the Apache License, Version 2.0 (the "License"); 15322 * you may not use this file except in compliance with the License. 15323 * You may obtain a copy of the License at 15324 * 15325 * http://www.apache.org/licenses/LICENSE-2.0 15326 * 15327 * Unless required by applicable law or agreed to in writing, software 15328 * distributed under the License is distributed on an "AS IS" BASIS, 15329 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15330 * See the License for the specific language governing permissions and 15331 * limitations under the License. 15353 },{"./DOMProperty":12}],93:[function(_dereq_,module,exports){ 15354 /** 15355 * Copyright 2013-2014, Facebook, Inc. 15356 * All rights reserved. 15357 * 15358 * This source code is licensed under the BSD-style license found in the 15359 * LICENSE file in the root directory of this source tree. An additional grant 15360 * of patent rights can be found in the PATENTS file in the same directory. 15332 15361 * 15333 15362 * @providesModule SelectEventPlugin … … 15387 15416 end: node.selectionEnd 15388 15417 }; 15418 } else if (window.getSelection) { 15419 var selection = window.getSelection(); 15420 return { 15421 anchorNode: selection.anchorNode, 15422 anchorOffset: selection.anchorOffset, 15423 focusNode: selection.focusNode, 15424 focusOffset: selection.focusOffset 15425 }; 15389 15426 } else if (document.selection) { 15390 15427 var range = document.selection.createRange(); … … 15394 15431 top: range.boundingTop, 15395 15432 left: range.boundingLeft 15396 };15397 } else {15398 var selection = window.getSelection();15399 return {15400 anchorNode: selection.anchorNode,15401 anchorOffset: selection.anchorOffset,15402 focusNode: selection.focusNode,15403 focusOffset: selection.focusOffset15404 15433 }; 15405 15434 } … … 15517 15546 module.exports = SelectEventPlugin; 15518 15547 15519 },{"./EventConstants":16,"./EventPropagators":21,"./ReactInputSelection":63,"./SyntheticEvent":96,"./getActiveElement":122,"./isTextInputElement":137,"./keyOf":141,"./shallowEqual":153}],91:[function(_dereq_,module,exports){ 15520 /** 15521 * Copyright 2013-2014 Facebook, Inc. 15522 * 15523 * Licensed under the Apache License, Version 2.0 (the "License"); 15524 * you may not use this file except in compliance with the License. 15525 * You may obtain a copy of the License at 15526 * 15527 * http://www.apache.org/licenses/LICENSE-2.0 15528 * 15529 * Unless required by applicable law or agreed to in writing, software 15530 * distributed under the License is distributed on an "AS IS" BASIS, 15531 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15532 * See the License for the specific language governing permissions and 15533 * limitations under the License. 15548 },{"./EventConstants":17,"./EventPropagators":22,"./ReactInputSelection":65,"./SyntheticEvent":99,"./getActiveElement":127,"./isTextInputElement":143,"./keyOf":147,"./shallowEqual":155}],94:[function(_dereq_,module,exports){ 15549 /** 15550 * Copyright 2013-2014, Facebook, Inc. 15551 * All rights reserved. 15552 * 15553 * This source code is licensed under the BSD-style license found in the 15554 * LICENSE file in the root directory of this source tree. An additional grant 15555 * of patent rights can be found in the PATENTS file in the same directory. 15534 15556 * 15535 15557 * @providesModule ServerReactRootIndex … … 15555 15577 module.exports = ServerReactRootIndex; 15556 15578 15557 },{}],92:[function(_dereq_,module,exports){ 15558 /** 15559 * Copyright 2013-2014 Facebook, Inc. 15560 * 15561 * Licensed under the Apache License, Version 2.0 (the "License"); 15562 * you may not use this file except in compliance with the License. 15563 * You may obtain a copy of the License at 15564 * 15565 * http://www.apache.org/licenses/LICENSE-2.0 15566 * 15567 * Unless required by applicable law or agreed to in writing, software 15568 * distributed under the License is distributed on an "AS IS" BASIS, 15569 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15570 * See the License for the specific language governing permissions and 15571 * limitations under the License. 15579 },{}],95:[function(_dereq_,module,exports){ 15580 /** 15581 * Copyright 2013-2014, Facebook, Inc. 15582 * All rights reserved. 15583 * 15584 * This source code is licensed under the BSD-style license found in the 15585 * LICENSE file in the root directory of this source tree. An additional grant 15586 * of patent rights can be found in the PATENTS file in the same directory. 15572 15587 * 15573 15588 * @providesModule SimpleEventPlugin … … 15589 15604 var SyntheticWheelEvent = _dereq_("./SyntheticWheelEvent"); 15590 15605 15606 var getEventCharCode = _dereq_("./getEventCharCode"); 15607 15591 15608 var invariant = _dereq_("./invariant"); 15592 15609 var keyOf = _dereq_("./keyOf"); 15610 var warning = _dereq_("./warning"); 15593 15611 15594 15612 var topLevelTypes = EventConstants.topLevelTypes; … … 15857 15875 /** 15858 15876 * Same as the default implementation, except cancels the event when return 15859 * value is false. 15877 * value is false. This behavior will be disabled in a future release. 15860 15878 * 15861 15879 * @param {object} Event to be dispatched. … … 15865 15883 executeDispatch: function(event, listener, domID) { 15866 15884 var returnValue = EventPluginUtils.executeDispatch(event, listener, domID); 15885 15886 ("production" !== "development" ? warning( 15887 typeof returnValue !== 'boolean', 15888 'Returning `false` from an event handler is deprecated and will be ' + 15889 'ignored in a future release. Instead, manually call ' + 15890 'e.stopPropagation() or e.preventDefault(), as appropriate.' 15891 ) : null); 15892 15867 15893 if (returnValue === false) { 15868 15894 event.stopPropagation(); … … 15901 15927 case topLevelTypes.topKeyPress: 15902 15928 // FireFox creates a keypress event for function keys too. This removes 15903 // the unwanted keypress events. 15904 if (nativeEvent.charCode === 0) { 15929 // the unwanted keypress events. Enter is however both printable and 15930 // non-printable. One would expect Tab to be as well (but it isn't). 15931 if (getEventCharCode(nativeEvent) === 0) { 15905 15932 return null; 15906 15933 } … … 15976 16003 module.exports = SimpleEventPlugin; 15977 16004 15978 },{"./EventConstants":16,"./EventPluginUtils":20,"./EventPropagators":21,"./SyntheticClipboardEvent":93,"./SyntheticDragEvent":95,"./SyntheticEvent":96,"./SyntheticFocusEvent":97,"./SyntheticKeyboardEvent":99,"./SyntheticMouseEvent":100,"./SyntheticTouchEvent":101,"./SyntheticUIEvent":102,"./SyntheticWheelEvent":103,"./invariant":134,"./keyOf":141}],93:[function(_dereq_,module,exports){ 15979 /** 15980 * Copyright 2013-2014 Facebook, Inc. 15981 * 15982 * Licensed under the Apache License, Version 2.0 (the "License"); 15983 * you may not use this file except in compliance with the License. 15984 * You may obtain a copy of the License at 15985 * 15986 * http://www.apache.org/licenses/LICENSE-2.0 15987 * 15988 * Unless required by applicable law or agreed to in writing, software 15989 * distributed under the License is distributed on an "AS IS" BASIS, 15990 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15991 * See the License for the specific language governing permissions and 15992 * limitations under the License. 16005 },{"./EventConstants":17,"./EventPluginUtils":21,"./EventPropagators":22,"./SyntheticClipboardEvent":96,"./SyntheticDragEvent":98,"./SyntheticEvent":99,"./SyntheticFocusEvent":100,"./SyntheticKeyboardEvent":102,"./SyntheticMouseEvent":103,"./SyntheticTouchEvent":104,"./SyntheticUIEvent":105,"./SyntheticWheelEvent":106,"./getEventCharCode":128,"./invariant":140,"./keyOf":147,"./warning":160}],96:[function(_dereq_,module,exports){ 16006 /** 16007 * Copyright 2013-2014, Facebook, Inc. 16008 * All rights reserved. 16009 * 16010 * This source code is licensed under the BSD-style license found in the 16011 * LICENSE file in the root directory of this source tree. An additional grant 16012 * of patent rights can be found in the PATENTS file in the same directory. 15993 16013 * 15994 16014 * @providesModule SyntheticClipboardEvent … … 16029 16049 16030 16050 16031 },{"./SyntheticEvent":96}],94:[function(_dereq_,module,exports){ 16032 /** 16033 * Copyright 2013-2014 Facebook, Inc. 16034 * 16035 * Licensed under the Apache License, Version 2.0 (the "License"); 16036 * you may not use this file except in compliance with the License. 16037 * You may obtain a copy of the License at 16038 * 16039 * http://www.apache.org/licenses/LICENSE-2.0 16040 * 16041 * Unless required by applicable law or agreed to in writing, software 16042 * distributed under the License is distributed on an "AS IS" BASIS, 16043 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16044 * See the License for the specific language governing permissions and 16045 * limitations under the License. 16051 },{"./SyntheticEvent":99}],97:[function(_dereq_,module,exports){ 16052 /** 16053 * Copyright 2013-2014, Facebook, Inc. 16054 * All rights reserved. 16055 * 16056 * This source code is licensed under the BSD-style license found in the 16057 * LICENSE file in the root directory of this source tree. An additional grant 16058 * of patent rights can be found in the PATENTS file in the same directory. 16046 16059 * 16047 16060 * @providesModule SyntheticCompositionEvent … … 16082 16095 16083 16096 16084 },{"./SyntheticEvent":96}],95:[function(_dereq_,module,exports){ 16085 /** 16086 * Copyright 2013-2014 Facebook, Inc. 16087 * 16088 * Licensed under the Apache License, Version 2.0 (the "License"); 16089 * you may not use this file except in compliance with the License. 16090 * You may obtain a copy of the License at 16091 * 16092 * http://www.apache.org/licenses/LICENSE-2.0 16093 * 16094 * Unless required by applicable law or agreed to in writing, software 16095 * distributed under the License is distributed on an "AS IS" BASIS, 16096 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16097 * See the License for the specific language governing permissions and 16098 * limitations under the License. 16097 },{"./SyntheticEvent":99}],98:[function(_dereq_,module,exports){ 16098 /** 16099 * Copyright 2013-2014, Facebook, Inc. 16100 * All rights reserved. 16101 * 16102 * This source code is licensed under the BSD-style license found in the 16103 * LICENSE file in the root directory of this source tree. An additional grant 16104 * of patent rights can be found in the PATENTS file in the same directory. 16099 16105 * 16100 16106 * @providesModule SyntheticDragEvent … … 16128 16134 module.exports = SyntheticDragEvent; 16129 16135 16130 },{"./SyntheticMouseEvent":100}],96:[function(_dereq_,module,exports){ 16131 /** 16132 * Copyright 2013-2014 Facebook, Inc. 16133 * 16134 * Licensed under the Apache License, Version 2.0 (the "License"); 16135 * you may not use this file except in compliance with the License. 16136 * You may obtain a copy of the License at 16137 * 16138 * http://www.apache.org/licenses/LICENSE-2.0 16139 * 16140 * Unless required by applicable law or agreed to in writing, software 16141 * distributed under the License is distributed on an "AS IS" BASIS, 16142 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16143 * See the License for the specific language governing permissions and 16144 * limitations under the License. 16136 },{"./SyntheticMouseEvent":103}],99:[function(_dereq_,module,exports){ 16137 /** 16138 * Copyright 2013-2014, Facebook, Inc. 16139 * All rights reserved. 16140 * 16141 * This source code is licensed under the BSD-style license found in the 16142 * LICENSE file in the root directory of this source tree. An additional grant 16143 * of patent rights can be found in the PATENTS file in the same directory. 16145 16144 * 16146 16145 * @providesModule SyntheticEvent … … 16152 16151 var PooledClass = _dereq_("./PooledClass"); 16153 16152 16153 var assign = _dereq_("./Object.assign"); 16154 16154 var emptyFunction = _dereq_("./emptyFunction"); 16155 16155 var getEventTarget = _dereq_("./getEventTarget"); 16156 var merge = _dereq_("./merge");16157 var mergeInto = _dereq_("./mergeInto");16158 16156 16159 16157 /** … … 16222 16220 } 16223 16221 16224 mergeInto(SyntheticEvent.prototype, {16222 assign(SyntheticEvent.prototype, { 16225 16223 16226 16224 preventDefault: function() { … … 16280 16278 16281 16279 var prototype = Object.create(Super.prototype); 16282 mergeInto(prototype, Class.prototype);16280 assign(prototype, Class.prototype); 16283 16281 Class.prototype = prototype; 16284 16282 Class.prototype.constructor = Class; 16285 16283 16286 Class.Interface = merge(Super.Interface, Interface);16284 Class.Interface = assign({}, Super.Interface, Interface); 16287 16285 Class.augmentClass = Super.augmentClass; 16288 16286 … … 16294 16292 module.exports = SyntheticEvent; 16295 16293 16296 },{"./PooledClass":28,"./emptyFunction":116,"./getEventTarget":125,"./merge":144,"./mergeInto":146}],97:[function(_dereq_,module,exports){ 16297 /** 16298 * Copyright 2013-2014 Facebook, Inc. 16299 * 16300 * Licensed under the Apache License, Version 2.0 (the "License"); 16301 * you may not use this file except in compliance with the License. 16302 * You may obtain a copy of the License at 16303 * 16304 * http://www.apache.org/licenses/LICENSE-2.0 16305 * 16306 * Unless required by applicable law or agreed to in writing, software 16307 * distributed under the License is distributed on an "AS IS" BASIS, 16308 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16309 * See the License for the specific language governing permissions and 16310 * limitations under the License. 16294 },{"./Object.assign":29,"./PooledClass":30,"./emptyFunction":121,"./getEventTarget":131}],100:[function(_dereq_,module,exports){ 16295 /** 16296 * Copyright 2013-2014, Facebook, Inc. 16297 * All rights reserved. 16298 * 16299 * This source code is licensed under the BSD-style license found in the 16300 * LICENSE file in the root directory of this source tree. An additional grant 16301 * of patent rights can be found in the PATENTS file in the same directory. 16311 16302 * 16312 16303 * @providesModule SyntheticFocusEvent … … 16340 16331 module.exports = SyntheticFocusEvent; 16341 16332 16342 },{"./SyntheticUIEvent":10 2}],98:[function(_dereq_,module,exports){16333 },{"./SyntheticUIEvent":105}],101:[function(_dereq_,module,exports){ 16343 16334 /** 16344 16335 * Copyright 2013 Facebook, Inc. 16345 * 16346 * Licensed under the Apache License, Version 2.0 (the "License"); 16347 * you may not use this file except in compliance with the License. 16348 * You may obtain a copy of the License at 16349 * 16350 * http://www.apache.org/licenses/LICENSE-2.0 16351 * 16352 * Unless required by applicable law or agreed to in writing, software 16353 * distributed under the License is distributed on an "AS IS" BASIS, 16354 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16355 * See the License for the specific language governing permissions and 16356 * limitations under the License. 16336 * All rights reserved. 16337 * 16338 * This source code is licensed under the BSD-style license found in the 16339 * LICENSE file in the root directory of this source tree. An additional grant 16340 * of patent rights can be found in the PATENTS file in the same directory. 16357 16341 * 16358 16342 * @providesModule SyntheticInputEvent … … 16394 16378 16395 16379 16396 },{"./SyntheticEvent":96}],99:[function(_dereq_,module,exports){ 16397 /** 16398 * Copyright 2013-2014 Facebook, Inc. 16399 * 16400 * Licensed under the Apache License, Version 2.0 (the "License"); 16401 * you may not use this file except in compliance with the License. 16402 * You may obtain a copy of the License at 16403 * 16404 * http://www.apache.org/licenses/LICENSE-2.0 16405 * 16406 * Unless required by applicable law or agreed to in writing, software 16407 * distributed under the License is distributed on an "AS IS" BASIS, 16408 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16409 * See the License for the specific language governing permissions and 16410 * limitations under the License. 16380 },{"./SyntheticEvent":99}],102:[function(_dereq_,module,exports){ 16381 /** 16382 * Copyright 2013-2014, Facebook, Inc. 16383 * All rights reserved. 16384 * 16385 * This source code is licensed under the BSD-style license found in the 16386 * LICENSE file in the root directory of this source tree. An additional grant 16387 * of patent rights can be found in the PATENTS file in the same directory. 16411 16388 * 16412 16389 * @providesModule SyntheticKeyboardEvent … … 16418 16395 var SyntheticUIEvent = _dereq_("./SyntheticUIEvent"); 16419 16396 16397 var getEventCharCode = _dereq_("./getEventCharCode"); 16420 16398 var getEventKey = _dereq_("./getEventKey"); 16421 16399 var getEventModifierState = _dereq_("./getEventModifierState"); … … 16440 16418 // the actual printable character. 16441 16419 16442 // KeyPress is deprecated but its replacement is not yet final and not16443 // implemented in any major browser. 16420 // KeyPress is deprecated, but its replacement is not yet final and not 16421 // implemented in any major browser. Only KeyPress has charCode. 16444 16422 if (event.type === 'keypress') { 16445 // IE8 does not implement "charCode", but "keyCode" has the correct value. 16446 return 'charCode' in event ? event.charCode : event.keyCode; 16423 return getEventCharCode(event); 16447 16424 } 16448 16425 return 0; … … 16463 16440 which: function(event) { 16464 16441 // `which` is an alias for either `keyCode` or `charCode` depending on the 16465 // type of the event. There is no need to determine the type of the event 16466 // as `keyCode` and `charCode` are either aliased or default to zero. 16467 return event.keyCode || event.charCode; 16442 // type of the event. 16443 if (event.type === 'keypress') { 16444 return getEventCharCode(event); 16445 } 16446 if (event.type === 'keydown' || event.type === 'keyup') { 16447 return event.keyCode; 16448 } 16449 return 0; 16468 16450 } 16469 16451 }; … … 16483 16465 module.exports = SyntheticKeyboardEvent; 16484 16466 16485 },{"./SyntheticUIEvent":102,"./getEventKey":123,"./getEventModifierState":124}],100:[function(_dereq_,module,exports){ 16486 /** 16487 * Copyright 2013-2014 Facebook, Inc. 16488 * 16489 * Licensed under the Apache License, Version 2.0 (the "License"); 16490 * you may not use this file except in compliance with the License. 16491 * You may obtain a copy of the License at 16492 * 16493 * http://www.apache.org/licenses/LICENSE-2.0 16494 * 16495 * Unless required by applicable law or agreed to in writing, software 16496 * distributed under the License is distributed on an "AS IS" BASIS, 16497 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16498 * See the License for the specific language governing permissions and 16499 * limitations under the License. 16467 },{"./SyntheticUIEvent":105,"./getEventCharCode":128,"./getEventKey":129,"./getEventModifierState":130}],103:[function(_dereq_,module,exports){ 16468 /** 16469 * Copyright 2013-2014, Facebook, Inc. 16470 * All rights reserved. 16471 * 16472 * This source code is licensed under the BSD-style license found in the 16473 * LICENSE file in the root directory of this source tree. An additional grant 16474 * of patent rights can be found in the PATENTS file in the same directory. 16500 16475 * 16501 16476 * @providesModule SyntheticMouseEvent … … 16573 16548 module.exports = SyntheticMouseEvent; 16574 16549 16575 },{"./SyntheticUIEvent":102,"./ViewportMetrics":105,"./getEventModifierState":124}],101:[function(_dereq_,module,exports){ 16576 /** 16577 * Copyright 2013-2014 Facebook, Inc. 16578 * 16579 * Licensed under the Apache License, Version 2.0 (the "License"); 16580 * you may not use this file except in compliance with the License. 16581 * You may obtain a copy of the License at 16582 * 16583 * http://www.apache.org/licenses/LICENSE-2.0 16584 * 16585 * Unless required by applicable law or agreed to in writing, software 16586 * distributed under the License is distributed on an "AS IS" BASIS, 16587 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16588 * See the License for the specific language governing permissions and 16589 * limitations under the License. 16550 },{"./SyntheticUIEvent":105,"./ViewportMetrics":108,"./getEventModifierState":130}],104:[function(_dereq_,module,exports){ 16551 /** 16552 * Copyright 2013-2014, Facebook, Inc. 16553 * All rights reserved. 16554 * 16555 * This source code is licensed under the BSD-style license found in the 16556 * LICENSE file in the root directory of this source tree. An additional grant 16557 * of patent rights can be found in the PATENTS file in the same directory. 16590 16558 * 16591 16559 * @providesModule SyntheticTouchEvent … … 16628 16596 module.exports = SyntheticTouchEvent; 16629 16597 16630 },{"./SyntheticUIEvent":102,"./getEventModifierState":124}],102:[function(_dereq_,module,exports){ 16631 /** 16632 * Copyright 2013-2014 Facebook, Inc. 16633 * 16634 * Licensed under the Apache License, Version 2.0 (the "License"); 16635 * you may not use this file except in compliance with the License. 16636 * You may obtain a copy of the License at 16637 * 16638 * http://www.apache.org/licenses/LICENSE-2.0 16639 * 16640 * Unless required by applicable law or agreed to in writing, software 16641 * distributed under the License is distributed on an "AS IS" BASIS, 16642 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16643 * See the License for the specific language governing permissions and 16644 * limitations under the License. 16598 },{"./SyntheticUIEvent":105,"./getEventModifierState":130}],105:[function(_dereq_,module,exports){ 16599 /** 16600 * Copyright 2013-2014, Facebook, Inc. 16601 * All rights reserved. 16602 * 16603 * This source code is licensed under the BSD-style license found in the 16604 * LICENSE file in the root directory of this source tree. An additional grant 16605 * of patent rights can be found in the PATENTS file in the same directory. 16645 16606 * 16646 16607 * @providesModule SyntheticUIEvent … … 16697 16658 module.exports = SyntheticUIEvent; 16698 16659 16699 },{"./SyntheticEvent":96,"./getEventTarget":125}],103:[function(_dereq_,module,exports){ 16700 /** 16701 * Copyright 2013-2014 Facebook, Inc. 16702 * 16703 * Licensed under the Apache License, Version 2.0 (the "License"); 16704 * you may not use this file except in compliance with the License. 16705 * You may obtain a copy of the License at 16706 * 16707 * http://www.apache.org/licenses/LICENSE-2.0 16708 * 16709 * Unless required by applicable law or agreed to in writing, software 16710 * distributed under the License is distributed on an "AS IS" BASIS, 16711 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16712 * See the License for the specific language governing permissions and 16713 * limitations under the License. 16660 },{"./SyntheticEvent":99,"./getEventTarget":131}],106:[function(_dereq_,module,exports){ 16661 /** 16662 * Copyright 2013-2014, Facebook, Inc. 16663 * All rights reserved. 16664 * 16665 * This source code is licensed under the BSD-style license found in the 16666 * LICENSE file in the root directory of this source tree. An additional grant 16667 * of patent rights can be found in the PATENTS file in the same directory. 16714 16668 * 16715 16669 * @providesModule SyntheticWheelEvent … … 16765 16719 module.exports = SyntheticWheelEvent; 16766 16720 16767 },{"./SyntheticMouseEvent":100}],104:[function(_dereq_,module,exports){ 16768 /** 16769 * Copyright 2013-2014 Facebook, Inc. 16770 * 16771 * Licensed under the Apache License, Version 2.0 (the "License"); 16772 * you may not use this file except in compliance with the License. 16773 * You may obtain a copy of the License at 16774 * 16775 * http://www.apache.org/licenses/LICENSE-2.0 16776 * 16777 * Unless required by applicable law or agreed to in writing, software 16778 * distributed under the License is distributed on an "AS IS" BASIS, 16779 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16780 * See the License for the specific language governing permissions and 16781 * limitations under the License. 16721 },{"./SyntheticMouseEvent":103}],107:[function(_dereq_,module,exports){ 16722 /** 16723 * Copyright 2013-2014, Facebook, Inc. 16724 * All rights reserved. 16725 * 16726 * This source code is licensed under the BSD-style license found in the 16727 * LICENSE file in the root directory of this source tree. An additional grant 16728 * of patent rights can be found in the PATENTS file in the same directory. 16782 16729 * 16783 16730 * @providesModule Transaction … … 17011 16958 module.exports = Transaction; 17012 16959 17013 },{"./invariant":134}],105:[function(_dereq_,module,exports){ 17014 /** 17015 * Copyright 2013-2014 Facebook, Inc. 17016 * 17017 * Licensed under the Apache License, Version 2.0 (the "License"); 17018 * you may not use this file except in compliance with the License. 17019 * You may obtain a copy of the License at 17020 * 17021 * http://www.apache.org/licenses/LICENSE-2.0 17022 * 17023 * Unless required by applicable law or agreed to in writing, software 17024 * distributed under the License is distributed on an "AS IS" BASIS, 17025 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17026 * See the License for the specific language governing permissions and 17027 * limitations under the License. 16960 },{"./invariant":140}],108:[function(_dereq_,module,exports){ 16961 /** 16962 * Copyright 2013-2014, Facebook, Inc. 16963 * All rights reserved. 16964 * 16965 * This source code is licensed under the BSD-style license found in the 16966 * LICENSE file in the root directory of this source tree. An additional grant 16967 * of patent rights can be found in the PATENTS file in the same directory. 17028 16968 * 17029 16969 * @providesModule ViewportMetrics … … 17050 16990 module.exports = ViewportMetrics; 17051 16991 17052 },{"./getUnboundedScrollPosition":130}],106:[function(_dereq_,module,exports){ 17053 /** 17054 * Copyright 2013-2014 Facebook, Inc. 17055 * 17056 * Licensed under the Apache License, Version 2.0 (the "License"); 17057 * you may not use this file except in compliance with the License. 17058 * You may obtain a copy of the License at 17059 * 17060 * http://www.apache.org/licenses/LICENSE-2.0 17061 * 17062 * Unless required by applicable law or agreed to in writing, software 17063 * distributed under the License is distributed on an "AS IS" BASIS, 17064 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17065 * See the License for the specific language governing permissions and 17066 * limitations under the License. 17067 * 17068 * @providesModule accumulate 16992 },{"./getUnboundedScrollPosition":136}],109:[function(_dereq_,module,exports){ 16993 /** 16994 * Copyright 2014, Facebook, Inc. 16995 * All rights reserved. 16996 * 16997 * This source code is licensed under the BSD-style license found in the 16998 * LICENSE file in the root directory of this source tree. An additional grant 16999 * of patent rights can be found in the PATENTS file in the same directory. 17000 * 17001 * @providesModule accumulateInto 17069 17002 */ 17070 17003 … … 17074 17007 17075 17008 /** 17076 * Accumulates items that must not be null or undefined. 17077 * 17078 * This is used to conserve memory by avoiding array allocations. 17009 * 17010 * Accumulates items that must not be null or undefined into the first one. This 17011 * is used to conserve memory by avoiding array allocations, and thus sacrifices 17012 * API cleanness. Since `current` can be null before being passed in and not 17013 * null after this function, make sure to assign it back to `current`: 17014 * 17015 * `a = accumulateInto(a, b);` 17016 * 17017 * This API should be sparingly used. Try `accumulate` for something cleaner. 17079 17018 * 17080 17019 * @return {*|array<*>} An accumulation of items. 17081 17020 */ 17082 function accumulate(current, next) { 17021 17022 function accumulateInto(current, next) { 17083 17023 ("production" !== "development" ? invariant( 17084 17024 next != null, 17085 'accumulate (...): Accumulated items must benot be null or undefined.'17025 'accumulateInto(...): Accumulated items must not be null or undefined.' 17086 17026 ) : invariant(next != null)); 17087 17027 if (current == null) { 17088 17028 return next; 17089 } else { 17090 // Both are not empty. Warning: Never call x.concat(y) when you are not 17091 // certain that x is an Array (x could be a string with concat method). 17092 var currentIsArray = Array.isArray(current); 17093 var nextIsArray = Array.isArray(next); 17094 if (currentIsArray) { 17095 return current.concat(next); 17096 } else { 17097 if (nextIsArray) { 17098 return [current].concat(next); 17099 } else { 17100 return [current, next]; 17101 } 17102 } 17103 } 17104 } 17105 17106 module.exports = accumulate; 17107 17108 },{"./invariant":134}],107:[function(_dereq_,module,exports){ 17109 /** 17110 * Copyright 2013-2014 Facebook, Inc. 17111 * 17112 * Licensed under the Apache License, Version 2.0 (the "License"); 17113 * you may not use this file except in compliance with the License. 17114 * You may obtain a copy of the License at 17115 * 17116 * http://www.apache.org/licenses/LICENSE-2.0 17117 * 17118 * Unless required by applicable law or agreed to in writing, software 17119 * distributed under the License is distributed on an "AS IS" BASIS, 17120 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17121 * See the License for the specific language governing permissions and 17122 * limitations under the License. 17029 } 17030 17031 // Both are not empty. Warning: Never call x.concat(y) when you are not 17032 // certain that x is an Array (x could be a string with concat method). 17033 var currentIsArray = Array.isArray(current); 17034 var nextIsArray = Array.isArray(next); 17035 17036 if (currentIsArray && nextIsArray) { 17037 current.push.apply(current, next); 17038 return current; 17039 } 17040 17041 if (currentIsArray) { 17042 current.push(next); 17043 return current; 17044 } 17045 17046 if (nextIsArray) { 17047 // A bit too dangerous to mutate `next`. 17048 return [current].concat(next); 17049 } 17050 17051 return [current, next]; 17052 } 17053 17054 module.exports = accumulateInto; 17055 17056 },{"./invariant":140}],110:[function(_dereq_,module,exports){ 17057 /** 17058 * Copyright 2013-2014, Facebook, Inc. 17059 * All rights reserved. 17060 * 17061 * This source code is licensed under the BSD-style license found in the 17062 * LICENSE file in the root directory of this source tree. An additional grant 17063 * of patent rights can be found in the PATENTS file in the same directory. 17123 17064 * 17124 17065 * @providesModule adler32 … … 17133 17074 // This is a clean-room implementation of adler32 designed for detecting 17134 17075 // if markup is not what we expect it to be. It does not need to be 17135 // cryptographically strong, only reasonabl egood at detecting if markup17076 // cryptographically strong, only reasonably good at detecting if markup 17136 17077 // generated on the server is different than that on the client. 17137 17078 function adler32(data) { … … 17147 17088 module.exports = adler32; 17148 17089 17149 },{}],108:[function(_dereq_,module,exports){ 17150 /** 17151 * Copyright 2013-2014 Facebook, Inc. 17152 * 17153 * Licensed under the Apache License, Version 2.0 (the "License"); 17154 * you may not use this file except in compliance with the License. 17155 * You may obtain a copy of the License at 17156 * 17157 * http://www.apache.org/licenses/LICENSE-2.0 17158 * 17159 * Unless required by applicable law or agreed to in writing, software 17160 * distributed under the License is distributed on an "AS IS" BASIS, 17161 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17162 * See the License for the specific language governing permissions and 17163 * limitations under the License. 17090 },{}],111:[function(_dereq_,module,exports){ 17091 /** 17092 * Copyright 2013-2014, Facebook, Inc. 17093 * All rights reserved. 17094 * 17095 * This source code is licensed under the BSD-style license found in the 17096 * LICENSE file in the root directory of this source tree. An additional grant 17097 * of patent rights can be found in the PATENTS file in the same directory. 17098 * 17099 * @providesModule camelize 17100 * @typechecks 17101 */ 17102 17103 var _hyphenPattern = /-(.)/g; 17104 17105 /** 17106 * Camelcases a hyphenated string, for example: 17107 * 17108 * > camelize('background-color') 17109 * < "backgroundColor" 17110 * 17111 * @param {string} string 17112 * @return {string} 17113 */ 17114 function camelize(string) { 17115 return string.replace(_hyphenPattern, function(_, character) { 17116 return character.toUpperCase(); 17117 }); 17118 } 17119 17120 module.exports = camelize; 17121 17122 },{}],112:[function(_dereq_,module,exports){ 17123 /** 17124 * Copyright 2014, Facebook, Inc. 17125 * All rights reserved. 17126 * 17127 * This source code is licensed under the BSD-style license found in the 17128 * LICENSE file in the root directory of this source tree. An additional grant 17129 * of patent rights can be found in the PATENTS file in the same directory. 17130 * 17131 * @providesModule camelizeStyleName 17132 * @typechecks 17133 */ 17134 17135 "use strict"; 17136 17137 var camelize = _dereq_("./camelize"); 17138 17139 var msPattern = /^-ms-/; 17140 17141 /** 17142 * Camelcases a hyphenated CSS property name, for example: 17143 * 17144 * > camelizeStyleName('background-color') 17145 * < "backgroundColor" 17146 * > camelizeStyleName('-moz-transition') 17147 * < "MozTransition" 17148 * > camelizeStyleName('-ms-transition') 17149 * < "msTransition" 17150 * 17151 * As Andi Smith suggests 17152 * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix 17153 * is converted to lowercase `ms`. 17154 * 17155 * @param {string} string 17156 * @return {string} 17157 */ 17158 function camelizeStyleName(string) { 17159 return camelize(string.replace(msPattern, 'ms-')); 17160 } 17161 17162 module.exports = camelizeStyleName; 17163 17164 },{"./camelize":111}],113:[function(_dereq_,module,exports){ 17165 /** 17166 * Copyright 2013-2014, Facebook, Inc. 17167 * All rights reserved. 17168 * 17169 * This source code is licensed under the BSD-style license found in the 17170 * LICENSE file in the root directory of this source tree. An additional grant 17171 * of patent rights can be found in the PATENTS file in the same directory. 17164 17172 * 17165 17173 * @typechecks … … 17169 17177 "use strict"; 17170 17178 17179 var ReactElement = _dereq_("./ReactElement"); 17171 17180 var ReactPropTransferer = _dereq_("./ReactPropTransferer"); 17172 17181 … … 17188 17197 if ("production" !== "development") { 17189 17198 ("production" !== "development" ? warning( 17190 !child. props.ref,17199 !child.ref, 17191 17200 'You are calling cloneWithProps() on a child with a ref. This is ' + 17192 17201 'dangerous because you\'re creating a new child which will not be ' + … … 17204 17213 17205 17214 // The current API doesn't retain _owner and _context, which is why this 17206 // doesn't use React Descriptor.cloneAndReplaceProps.17207 return child.constructor(newProps);17215 // doesn't use ReactElement.cloneAndReplaceProps. 17216 return ReactElement.createElement(child.type, newProps); 17208 17217 } 17209 17218 17210 17219 module.exports = cloneWithProps; 17211 17220 17212 },{"./ReactPropTransferer":72,"./keyOf":141,"./warning":158}],109:[function(_dereq_,module,exports){ 17213 /** 17214 * Copyright 2013-2014 Facebook, Inc. 17215 * 17216 * Licensed under the Apache License, Version 2.0 (the "License"); 17217 * you may not use this file except in compliance with the License. 17218 * You may obtain a copy of the License at 17219 * 17220 * http://www.apache.org/licenses/LICENSE-2.0 17221 * 17222 * Unless required by applicable law or agreed to in writing, software 17223 * distributed under the License is distributed on an "AS IS" BASIS, 17224 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17225 * See the License for the specific language governing permissions and 17226 * limitations under the License. 17221 },{"./ReactElement":58,"./ReactPropTransferer":76,"./keyOf":147,"./warning":160}],114:[function(_dereq_,module,exports){ 17222 /** 17223 * Copyright 2013-2014, Facebook, Inc. 17224 * All rights reserved. 17225 * 17226 * This source code is licensed under the BSD-style license found in the 17227 * LICENSE file in the root directory of this source tree. An additional grant 17228 * of patent rights can be found in the PATENTS file in the same directory. 17227 17229 * 17228 17230 * @providesModule containsNode … … 17261 17263 module.exports = containsNode; 17262 17264 17263 },{"./isTextNode":138}],110:[function(_dereq_,module,exports){ 17264 /** 17265 * Copyright 2013-2014 Facebook, Inc. 17266 * 17267 * Licensed under the Apache License, Version 2.0 (the "License"); 17268 * you may not use this file except in compliance with the License. 17269 * You may obtain a copy of the License at 17270 * 17271 * http://www.apache.org/licenses/LICENSE-2.0 17272 * 17273 * Unless required by applicable law or agreed to in writing, software 17274 * distributed under the License is distributed on an "AS IS" BASIS, 17275 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17276 * See the License for the specific language governing permissions and 17277 * limitations under the License. 17278 * 17279 * @providesModule copyProperties 17280 */ 17281 17282 /** 17283 * Copy properties from one or more objects (up to 5) into the first object. 17284 * This is a shallow copy. It mutates the first object and also returns it. 17285 * 17286 * NOTE: `arguments` has a very significant performance penalty, which is why 17287 * we don't support unlimited arguments. 17288 */ 17289 function copyProperties(obj, a, b, c, d, e, f) { 17290 obj = obj || {}; 17291 17292 if ("production" !== "development") { 17293 if (f) { 17294 throw new Error('Too many arguments passed to copyProperties'); 17295 } 17296 } 17297 17298 var args = [a, b, c, d, e]; 17299 var ii = 0, v; 17300 while (args[ii]) { 17301 v = args[ii++]; 17302 for (var k in v) { 17303 obj[k] = v[k]; 17304 } 17305 17306 // IE ignores toString in object iteration.. See: 17307 // webreflection.blogspot.com/2007/07/quick-fix-internet-explorer-and.html 17308 if (v.hasOwnProperty && v.hasOwnProperty('toString') && 17309 (typeof v.toString != 'undefined') && (obj.toString !== v.toString)) { 17310 obj.toString = v.toString; 17311 } 17312 } 17313 17314 return obj; 17315 } 17316 17317 module.exports = copyProperties; 17318 17319 },{}],111:[function(_dereq_,module,exports){ 17320 /** 17321 * Copyright 2013-2014 Facebook, Inc. 17322 * 17323 * Licensed under the Apache License, Version 2.0 (the "License"); 17324 * you may not use this file except in compliance with the License. 17325 * You may obtain a copy of the License at 17326 * 17327 * http://www.apache.org/licenses/LICENSE-2.0 17328 * 17329 * Unless required by applicable law or agreed to in writing, software 17330 * distributed under the License is distributed on an "AS IS" BASIS, 17331 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17332 * See the License for the specific language governing permissions and 17333 * limitations under the License. 17265 },{"./isTextNode":144}],115:[function(_dereq_,module,exports){ 17266 /** 17267 * Copyright 2013-2014, Facebook, Inc. 17268 * All rights reserved. 17269 * 17270 * This source code is licensed under the BSD-style license found in the 17271 * LICENSE file in the root directory of this source tree. An additional grant 17272 * of patent rights can be found in the PATENTS file in the same directory. 17334 17273 * 17335 17274 * @providesModule createArrayFrom … … 17410 17349 module.exports = createArrayFrom; 17411 17350 17412 },{"./toArray":155}],112:[function(_dereq_,module,exports){ 17413 /** 17414 * Copyright 2013-2014 Facebook, Inc. 17415 * 17416 * Licensed under the Apache License, Version 2.0 (the "License"); 17417 * you may not use this file except in compliance with the License. 17418 * You may obtain a copy of the License at 17419 * 17420 * http://www.apache.org/licenses/LICENSE-2.0 17421 * 17422 * Unless required by applicable law or agreed to in writing, software 17423 * distributed under the License is distributed on an "AS IS" BASIS, 17424 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17425 * See the License for the specific language governing permissions and 17426 * limitations under the License. 17351 },{"./toArray":157}],116:[function(_dereq_,module,exports){ 17352 /** 17353 * Copyright 2013-2014, Facebook, Inc. 17354 * All rights reserved. 17355 * 17356 * This source code is licensed under the BSD-style license found in the 17357 * LICENSE file in the root directory of this source tree. An additional grant 17358 * of patent rights can be found in the PATENTS file in the same directory. 17427 17359 * 17428 17360 * @providesModule createFullPageComponent … … 17434 17366 // Defeat circular references by requiring this directly. 17435 17367 var ReactCompositeComponent = _dereq_("./ReactCompositeComponent"); 17368 var ReactElement = _dereq_("./ReactElement"); 17436 17369 17437 17370 var invariant = _dereq_("./invariant"); … … 17445 17378 * management. So we just document it and throw in dangerous cases. 17446 17379 * 17447 * @param { function} componentClass convenience constructorto wrap17380 * @param {string} tag The tag to wrap 17448 17381 * @return {function} convenience constructor of new component 17449 17382 */ 17450 function createFullPageComponent(componentClass) { 17383 function createFullPageComponent(tag) { 17384 var elementFactory = ReactElement.createFactory(tag); 17385 17451 17386 var FullPageComponent = ReactCompositeComponent.createClass({ 17452 displayName: 'ReactFullPageComponent' + ( 17453 componentClass.type.displayName || '' 17454 ), 17387 displayName: 'ReactFullPageComponent' + tag, 17455 17388 17456 17389 componentWillUnmount: function() { … … 17466 17399 17467 17400 render: function() { 17468 return this.transferPropsTo(componentClass(null, this.props.children));17401 return elementFactory(this.props); 17469 17402 } 17470 17403 }); … … 17475 17408 module.exports = createFullPageComponent; 17476 17409 17477 },{"./ReactCompositeComponent":38,"./invariant":134}],113:[function(_dereq_,module,exports){ 17478 /** 17479 * Copyright 2013-2014 Facebook, Inc. 17480 * 17481 * Licensed under the Apache License, Version 2.0 (the "License"); 17482 * you may not use this file except in compliance with the License. 17483 * You may obtain a copy of the License at 17484 * 17485 * http://www.apache.org/licenses/LICENSE-2.0 17486 * 17487 * Unless required by applicable law or agreed to in writing, software 17488 * distributed under the License is distributed on an "AS IS" BASIS, 17489 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17490 * See the License for the specific language governing permissions and 17491 * limitations under the License. 17410 },{"./ReactCompositeComponent":40,"./ReactElement":58,"./invariant":140}],117:[function(_dereq_,module,exports){ 17411 /** 17412 * Copyright 2013-2014, Facebook, Inc. 17413 * All rights reserved. 17414 * 17415 * This source code is licensed under the BSD-style license found in the 17416 * LICENSE file in the root directory of this source tree. An additional grant 17417 * of patent rights can be found in the PATENTS file in the same directory. 17492 17418 * 17493 17419 * @providesModule createNodesFromMarkup … … 17570 17496 module.exports = createNodesFromMarkup; 17571 17497 17572 },{"./ExecutionEnvironment":22,"./createArrayFrom":111,"./getMarkupWrap":126,"./invariant":134}],114:[function(_dereq_,module,exports){ 17573 /** 17574 * Copyright 2013-2014 Facebook, Inc. 17575 * 17576 * Licensed under the Apache License, Version 2.0 (the "License"); 17577 * you may not use this file except in compliance with the License. 17578 * You may obtain a copy of the License at 17579 * 17580 * http://www.apache.org/licenses/LICENSE-2.0 17581 * 17582 * Unless required by applicable law or agreed to in writing, software 17583 * distributed under the License is distributed on an "AS IS" BASIS, 17584 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17585 * See the License for the specific language governing permissions and 17586 * limitations under the License. 17498 },{"./ExecutionEnvironment":23,"./createArrayFrom":115,"./getMarkupWrap":132,"./invariant":140}],118:[function(_dereq_,module,exports){ 17499 /** 17500 * Copyright 2013-2014, Facebook, Inc. 17501 * All rights reserved. 17502 * 17503 * This source code is licensed under the BSD-style license found in the 17504 * LICENSE file in the root directory of this source tree. An additional grant 17505 * of patent rights can be found in the PATENTS file in the same directory. 17587 17506 * 17588 17507 * @providesModule cx … … 17616 17535 module.exports = cx; 17617 17536 17618 },{}],115:[function(_dereq_,module,exports){ 17619 /** 17620 * Copyright 2013-2014 Facebook, Inc. 17621 * 17622 * Licensed under the Apache License, Version 2.0 (the "License"); 17623 * you may not use this file except in compliance with the License. 17624 * You may obtain a copy of the License at 17625 * 17626 * http://www.apache.org/licenses/LICENSE-2.0 17627 * 17628 * Unless required by applicable law or agreed to in writing, software 17629 * distributed under the License is distributed on an "AS IS" BASIS, 17630 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17631 * See the License for the specific language governing permissions and 17632 * limitations under the License. 17537 },{}],119:[function(_dereq_,module,exports){ 17538 /** 17539 * Copyright 2013-2014, Facebook, Inc. 17540 * All rights reserved. 17541 * 17542 * This source code is licensed under the BSD-style license found in the 17543 * LICENSE file in the root directory of this source tree. An additional grant 17544 * of patent rights can be found in the PATENTS file in the same directory. 17633 17545 * 17634 17546 * @providesModule dangerousStyleValue … … 17681 17593 module.exports = dangerousStyleValue; 17682 17594 17683 },{"./CSSProperty":4}],116:[function(_dereq_,module,exports){ 17684 /** 17685 * Copyright 2013-2014 Facebook, Inc. 17686 * 17687 * Licensed under the Apache License, Version 2.0 (the "License"); 17688 * you may not use this file except in compliance with the License. 17689 * You may obtain a copy of the License at 17690 * 17691 * http://www.apache.org/licenses/LICENSE-2.0 17692 * 17693 * Unless required by applicable law or agreed to in writing, software 17694 * distributed under the License is distributed on an "AS IS" BASIS, 17695 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17696 * See the License for the specific language governing permissions and 17697 * limitations under the License. 17595 },{"./CSSProperty":5}],120:[function(_dereq_,module,exports){ 17596 /** 17597 * Copyright 2013-2014, Facebook, Inc. 17598 * All rights reserved. 17599 * 17600 * This source code is licensed under the BSD-style license found in the 17601 * LICENSE file in the root directory of this source tree. An additional grant 17602 * of patent rights can be found in the PATENTS file in the same directory. 17603 * 17604 * @providesModule deprecated 17605 */ 17606 17607 var assign = _dereq_("./Object.assign"); 17608 var warning = _dereq_("./warning"); 17609 17610 /** 17611 * This will log a single deprecation notice per function and forward the call 17612 * on to the new API. 17613 * 17614 * @param {string} namespace The namespace of the call, eg 'React' 17615 * @param {string} oldName The old function name, eg 'renderComponent' 17616 * @param {string} newName The new function name, eg 'render' 17617 * @param {*} ctx The context this forwarded call should run in 17618 * @param {function} fn The function to forward on to 17619 * @return {*} Will be the value as returned from `fn` 17620 */ 17621 function deprecated(namespace, oldName, newName, ctx, fn) { 17622 var warned = false; 17623 if ("production" !== "development") { 17624 var newFn = function() { 17625 ("production" !== "development" ? warning( 17626 warned, 17627 (namespace + "." + oldName + " will be deprecated in a future version. ") + 17628 ("Use " + namespace + "." + newName + " instead.") 17629 ) : null); 17630 warned = true; 17631 return fn.apply(ctx, arguments); 17632 }; 17633 newFn.displayName = (namespace + "_" + oldName); 17634 // We need to make sure all properties of the original fn are copied over. 17635 // In particular, this is needed to support PropTypes 17636 return assign(newFn, fn); 17637 } 17638 17639 return fn; 17640 } 17641 17642 module.exports = deprecated; 17643 17644 },{"./Object.assign":29,"./warning":160}],121:[function(_dereq_,module,exports){ 17645 /** 17646 * Copyright 2013-2014, Facebook, Inc. 17647 * All rights reserved. 17648 * 17649 * This source code is licensed under the BSD-style license found in the 17650 * LICENSE file in the root directory of this source tree. An additional grant 17651 * of patent rights can be found in the PATENTS file in the same directory. 17698 17652 * 17699 17653 * @providesModule emptyFunction 17700 17654 */ 17701 17702 var copyProperties = _dereq_("./copyProperties");17703 17655 17704 17656 function makeEmptyFunction(arg) { … … 17715 17667 function emptyFunction() {} 17716 17668 17717 copyProperties(emptyFunction, { 17718 thatReturns: makeEmptyFunction, 17719 thatReturnsFalse: makeEmptyFunction(false), 17720 thatReturnsTrue: makeEmptyFunction(true), 17721 thatReturnsNull: makeEmptyFunction(null), 17722 thatReturnsThis: function() { return this; }, 17723 thatReturnsArgument: function(arg) { return arg; } 17724 }); 17669 emptyFunction.thatReturns = makeEmptyFunction; 17670 emptyFunction.thatReturnsFalse = makeEmptyFunction(false); 17671 emptyFunction.thatReturnsTrue = makeEmptyFunction(true); 17672 emptyFunction.thatReturnsNull = makeEmptyFunction(null); 17673 emptyFunction.thatReturnsThis = function() { return this; }; 17674 emptyFunction.thatReturnsArgument = function(arg) { return arg; }; 17725 17675 17726 17676 module.exports = emptyFunction; 17727 17677 17728 },{"./copyProperties":110}],117:[function(_dereq_,module,exports){ 17729 /** 17730 * Copyright 2013-2014 Facebook, Inc. 17731 * 17732 * Licensed under the Apache License, Version 2.0 (the "License"); 17733 * you may not use this file except in compliance with the License. 17734 * You may obtain a copy of the License at 17735 * 17736 * http://www.apache.org/licenses/LICENSE-2.0 17737 * 17738 * Unless required by applicable law or agreed to in writing, software 17739 * distributed under the License is distributed on an "AS IS" BASIS, 17740 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17741 * See the License for the specific language governing permissions and 17742 * limitations under the License. 17678 },{}],122:[function(_dereq_,module,exports){ 17679 /** 17680 * Copyright 2013-2014, Facebook, Inc. 17681 * All rights reserved. 17682 * 17683 * This source code is licensed under the BSD-style license found in the 17684 * LICENSE file in the root directory of this source tree. An additional grant 17685 * of patent rights can be found in the PATENTS file in the same directory. 17743 17686 * 17744 17687 * @providesModule emptyObject … … 17755 17698 module.exports = emptyObject; 17756 17699 17757 },{}],118:[function(_dereq_,module,exports){ 17758 /** 17759 * Copyright 2013-2014 Facebook, Inc. 17760 * 17761 * Licensed under the Apache License, Version 2.0 (the "License"); 17762 * you may not use this file except in compliance with the License. 17763 * You may obtain a copy of the License at 17764 * 17765 * http://www.apache.org/licenses/LICENSE-2.0 17766 * 17767 * Unless required by applicable law or agreed to in writing, software 17768 * distributed under the License is distributed on an "AS IS" BASIS, 17769 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17770 * See the License for the specific language governing permissions and 17771 * limitations under the License. 17700 },{}],123:[function(_dereq_,module,exports){ 17701 /** 17702 * Copyright 2013-2014, Facebook, Inc. 17703 * All rights reserved. 17704 * 17705 * This source code is licensed under the BSD-style license found in the 17706 * LICENSE file in the root directory of this source tree. An additional grant 17707 * of patent rights can be found in the PATENTS file in the same directory. 17772 17708 * 17773 17709 * @providesModule escapeTextForBrowser … … 17803 17739 module.exports = escapeTextForBrowser; 17804 17740 17805 },{}],119:[function(_dereq_,module,exports){ 17806 /** 17807 * Copyright 2013-2014 Facebook, Inc. 17808 * 17809 * Licensed under the Apache License, Version 2.0 (the "License"); 17810 * you may not use this file except in compliance with the License. 17811 * You may obtain a copy of the License at 17812 * 17813 * http://www.apache.org/licenses/LICENSE-2.0 17814 * 17815 * Unless required by applicable law or agreed to in writing, software 17816 * distributed under the License is distributed on an "AS IS" BASIS, 17817 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17818 * See the License for the specific language governing permissions and 17819 * limitations under the License. 17741 },{}],124:[function(_dereq_,module,exports){ 17742 /** 17743 * Copyright 2013-2014, Facebook, Inc. 17744 * All rights reserved. 17745 * 17746 * This source code is licensed under the BSD-style license found in the 17747 * LICENSE file in the root directory of this source tree. An additional grant 17748 * of patent rights can be found in the PATENTS file in the same directory. 17820 17749 * 17821 17750 * @providesModule flattenChildren … … 17823 17752 17824 17753 "use strict"; 17754 17755 var ReactTextComponent = _dereq_("./ReactTextComponent"); 17825 17756 17826 17757 var traverseAllChildren = _dereq_("./traverseAllChildren"); … … 17844 17775 ) : null); 17845 17776 if (keyUnique && child != null) { 17846 result[name] = child; 17777 var type = typeof child; 17778 var normalizedValue; 17779 17780 if (type === 'string') { 17781 normalizedValue = ReactTextComponent(child); 17782 } else if (type === 'number') { 17783 normalizedValue = ReactTextComponent('' + child); 17784 } else { 17785 normalizedValue = child; 17786 } 17787 17788 result[name] = normalizedValue; 17847 17789 } 17848 17790 } … … 17864 17806 module.exports = flattenChildren; 17865 17807 17866 },{"./traverseAllChildren":156,"./warning":158}],120:[function(_dereq_,module,exports){ 17867 /** 17868 * Copyright 2014 Facebook, Inc. 17869 * 17870 * Licensed under the Apache License, Version 2.0 (the "License"); 17871 * you may not use this file except in compliance with the License. 17872 * You may obtain a copy of the License at 17873 * 17874 * http://www.apache.org/licenses/LICENSE-2.0 17875 * 17876 * Unless required by applicable law or agreed to in writing, software 17877 * distributed under the License is distributed on an "AS IS" BASIS, 17878 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17879 * See the License for the specific language governing permissions and 17880 * limitations under the License. 17808 },{"./ReactTextComponent":87,"./traverseAllChildren":158,"./warning":160}],125:[function(_dereq_,module,exports){ 17809 /** 17810 * Copyright 2014, Facebook, Inc. 17811 * All rights reserved. 17812 * 17813 * This source code is licensed under the BSD-style license found in the 17814 * LICENSE file in the root directory of this source tree. An additional grant 17815 * of patent rights can be found in the PATENTS file in the same directory. 17881 17816 * 17882 17817 * @providesModule focusNode … … 17886 17821 17887 17822 /** 17888 * IE8 throws if an input/textarea is disabled and we try to focus it.17889 * Focus only when necessary.17890 *17891 17823 * @param {DOMElement} node input/textarea to focus 17892 17824 */ 17893 17825 function focusNode(node) { 17894 if (!node.disabled) { 17826 // IE8 can throw "Can't move focus to the control because it is invisible, 17827 // not enabled, or of a type that does not accept the focus." for all kinds of 17828 // reasons that are too expensive and fragile to test. 17829 try { 17895 17830 node.focus(); 17831 } catch(e) { 17896 17832 } 17897 17833 } … … 17899 17835 module.exports = focusNode; 17900 17836 17901 },{}],121:[function(_dereq_,module,exports){ 17902 /** 17903 * Copyright 2013-2014 Facebook, Inc. 17904 * 17905 * Licensed under the Apache License, Version 2.0 (the "License"); 17906 * you may not use this file except in compliance with the License. 17907 * You may obtain a copy of the License at 17908 * 17909 * http://www.apache.org/licenses/LICENSE-2.0 17910 * 17911 * Unless required by applicable law or agreed to in writing, software 17912 * distributed under the License is distributed on an "AS IS" BASIS, 17913 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17914 * See the License for the specific language governing permissions and 17915 * limitations under the License. 17837 },{}],126:[function(_dereq_,module,exports){ 17838 /** 17839 * Copyright 2013-2014, Facebook, Inc. 17840 * All rights reserved. 17841 * 17842 * This source code is licensed under the BSD-style license found in the 17843 * LICENSE file in the root directory of this source tree. An additional grant 17844 * of patent rights can be found in the PATENTS file in the same directory. 17916 17845 * 17917 17846 * @providesModule forEachAccumulated … … 17937 17866 module.exports = forEachAccumulated; 17938 17867 17939 },{}],122:[function(_dereq_,module,exports){ 17940 /** 17941 * Copyright 2013-2014 Facebook, Inc. 17942 * 17943 * Licensed under the Apache License, Version 2.0 (the "License"); 17944 * you may not use this file except in compliance with the License. 17945 * You may obtain a copy of the License at 17946 * 17947 * http://www.apache.org/licenses/LICENSE-2.0 17948 * 17949 * Unless required by applicable law or agreed to in writing, software 17950 * distributed under the License is distributed on an "AS IS" BASIS, 17951 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17952 * See the License for the specific language governing permissions and 17953 * limitations under the License. 17868 },{}],127:[function(_dereq_,module,exports){ 17869 /** 17870 * Copyright 2013-2014, Facebook, Inc. 17871 * All rights reserved. 17872 * 17873 * This source code is licensed under the BSD-style license found in the 17874 * LICENSE file in the root directory of this source tree. An additional grant 17875 * of patent rights can be found in the PATENTS file in the same directory. 17954 17876 * 17955 17877 * @providesModule getActiveElement … … 17973 17895 module.exports = getActiveElement; 17974 17896 17975 },{}],123:[function(_dereq_,module,exports){ 17976 /** 17977 * Copyright 2013-2014 Facebook, Inc. 17978 * 17979 * Licensed under the Apache License, Version 2.0 (the "License"); 17980 * you may not use this file except in compliance with the License. 17981 * You may obtain a copy of the License at 17982 * 17983 * http://www.apache.org/licenses/LICENSE-2.0 17984 * 17985 * Unless required by applicable law or agreed to in writing, software 17986 * distributed under the License is distributed on an "AS IS" BASIS, 17987 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17988 * See the License for the specific language governing permissions and 17989 * limitations under the License. 17897 },{}],128:[function(_dereq_,module,exports){ 17898 /** 17899 * Copyright 2013-2014, Facebook, Inc. 17900 * All rights reserved. 17901 * 17902 * This source code is licensed under the BSD-style license found in the 17903 * LICENSE file in the root directory of this source tree. An additional grant 17904 * of patent rights can be found in the PATENTS file in the same directory. 17905 * 17906 * @providesModule getEventCharCode 17907 * @typechecks static-only 17908 */ 17909 17910 "use strict"; 17911 17912 /** 17913 * `charCode` represents the actual "character code" and is safe to use with 17914 * `String.fromCharCode`. As such, only keys that correspond to printable 17915 * characters produce a valid `charCode`, the only exception to this is Enter. 17916 * The Tab-key is considered non-printable and does not have a `charCode`, 17917 * presumably because it does not produce a tab-character in browsers. 17918 * 17919 * @param {object} nativeEvent Native browser event. 17920 * @return {string} Normalized `charCode` property. 17921 */ 17922 function getEventCharCode(nativeEvent) { 17923 var charCode; 17924 var keyCode = nativeEvent.keyCode; 17925 17926 if ('charCode' in nativeEvent) { 17927 charCode = nativeEvent.charCode; 17928 17929 // FF does not set `charCode` for the Enter-key, check against `keyCode`. 17930 if (charCode === 0 && keyCode === 13) { 17931 charCode = 13; 17932 } 17933 } else { 17934 // IE8 does not implement `charCode`, but `keyCode` has the correct value. 17935 charCode = keyCode; 17936 } 17937 17938 // Some non-printable keys are reported in `charCode`/`keyCode`, discard them. 17939 // Must not discard the (non-)printable Enter-key. 17940 if (charCode >= 32 || charCode === 13) { 17941 return charCode; 17942 } 17943 17944 return 0; 17945 } 17946 17947 module.exports = getEventCharCode; 17948 17949 },{}],129:[function(_dereq_,module,exports){ 17950 /** 17951 * Copyright 2013-2014, Facebook, Inc. 17952 * All rights reserved. 17953 * 17954 * This source code is licensed under the BSD-style license found in the 17955 * LICENSE file in the root directory of this source tree. An additional grant 17956 * of patent rights can be found in the PATENTS file in the same directory. 17990 17957 * 17991 17958 * @providesModule getEventKey … … 17995 17962 "use strict"; 17996 17963 17997 var invariant = _dereq_("./invariant");17964 var getEventCharCode = _dereq_("./getEventCharCode"); 17998 17965 17999 17966 /** … … 18017 17984 18018 17985 /** 18019 * Translation from legacy ` which`/`keyCode` to HTML5 `key`17986 * Translation from legacy `keyCode` to HTML5 `key` 18020 17987 * Only special keys supported, all others depend on keyboard layout or browser 18021 17988 * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names … … 18069 18036 // Browser does not implement `key`, polyfill as much of it as we can. 18070 18037 if (nativeEvent.type === 'keypress') { 18071 // Create the character from the `charCode` ourselves and use as an almost 18072 // perfect replacement. 18073 var charCode = 'charCode' in nativeEvent ? 18074 nativeEvent.charCode : 18075 nativeEvent.keyCode; 18038 var charCode = getEventCharCode(nativeEvent); 18076 18039 18077 18040 // The enter-key is technically both printable and non-printable and can … … 18084 18047 return translateToKey[nativeEvent.keyCode] || 'Unidentified'; 18085 18048 } 18086 18087 ("production" !== "development" ? invariant(false, "Unexpected keyboard event type: %s", nativeEvent.type) : invariant(false)); 18049 return ''; 18088 18050 } 18089 18051 18090 18052 module.exports = getEventKey; 18091 18053 18092 },{"./ invariant":134}],124:[function(_dereq_,module,exports){18054 },{"./getEventCharCode":128}],130:[function(_dereq_,module,exports){ 18093 18055 /** 18094 18056 * Copyright 2013 Facebook, Inc. 18095 * 18096 * Licensed under the Apache License, Version 2.0 (the "License"); 18097 * you may not use this file except in compliance with the License. 18098 * You may obtain a copy of the License at 18099 * 18100 * http://www.apache.org/licenses/LICENSE-2.0 18101 * 18102 * Unless required by applicable law or agreed to in writing, software 18103 * distributed under the License is distributed on an "AS IS" BASIS, 18104 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18105 * See the License for the specific language governing permissions and 18106 * limitations under the License. 18057 * All rights reserved. 18058 * 18059 * This source code is licensed under the BSD-style license found in the 18060 * LICENSE file in the root directory of this source tree. An additional grant 18061 * of patent rights can be found in the PATENTS file in the same directory. 18107 18062 * 18108 18063 * @providesModule getEventModifierState … … 18144 18099 module.exports = getEventModifierState; 18145 18100 18146 },{}],125:[function(_dereq_,module,exports){ 18147 /** 18148 * Copyright 2013-2014 Facebook, Inc. 18149 * 18150 * Licensed under the Apache License, Version 2.0 (the "License"); 18151 * you may not use this file except in compliance with the License. 18152 * You may obtain a copy of the License at 18153 * 18154 * http://www.apache.org/licenses/LICENSE-2.0 18155 * 18156 * Unless required by applicable law or agreed to in writing, software 18157 * distributed under the License is distributed on an "AS IS" BASIS, 18158 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18159 * See the License for the specific language governing permissions and 18160 * limitations under the License. 18101 },{}],131:[function(_dereq_,module,exports){ 18102 /** 18103 * Copyright 2013-2014, Facebook, Inc. 18104 * All rights reserved. 18105 * 18106 * This source code is licensed under the BSD-style license found in the 18107 * LICENSE file in the root directory of this source tree. An additional grant 18108 * of patent rights can be found in the PATENTS file in the same directory. 18161 18109 * 18162 18110 * @providesModule getEventTarget … … 18182 18130 module.exports = getEventTarget; 18183 18131 18184 },{}],126:[function(_dereq_,module,exports){ 18185 /** 18186 * Copyright 2013-2014 Facebook, Inc. 18187 * 18188 * Licensed under the Apache License, Version 2.0 (the "License"); 18189 * you may not use this file except in compliance with the License. 18190 * You may obtain a copy of the License at 18191 * 18192 * http://www.apache.org/licenses/LICENSE-2.0 18193 * 18194 * Unless required by applicable law or agreed to in writing, software 18195 * distributed under the License is distributed on an "AS IS" BASIS, 18196 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18197 * See the License for the specific language governing permissions and 18198 * limitations under the License. 18132 },{}],132:[function(_dereq_,module,exports){ 18133 /** 18134 * Copyright 2013-2014, Facebook, Inc. 18135 * All rights reserved. 18136 * 18137 * This source code is licensed under the BSD-style license found in the 18138 * LICENSE file in the root directory of this source tree. An additional grant 18139 * of patent rights can be found in the PATENTS file in the same directory. 18199 18140 * 18200 18141 * @providesModule getMarkupWrap … … 18304 18245 module.exports = getMarkupWrap; 18305 18246 18306 },{"./ExecutionEnvironment":22,"./invariant":134}],127:[function(_dereq_,module,exports){ 18307 /** 18308 * Copyright 2013-2014 Facebook, Inc. 18309 * 18310 * Licensed under the Apache License, Version 2.0 (the "License"); 18311 * you may not use this file except in compliance with the License. 18312 * You may obtain a copy of the License at 18313 * 18314 * http://www.apache.org/licenses/LICENSE-2.0 18315 * 18316 * Unless required by applicable law or agreed to in writing, software 18317 * distributed under the License is distributed on an "AS IS" BASIS, 18318 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18319 * See the License for the specific language governing permissions and 18320 * limitations under the License. 18247 },{"./ExecutionEnvironment":23,"./invariant":140}],133:[function(_dereq_,module,exports){ 18248 /** 18249 * Copyright 2013-2014, Facebook, Inc. 18250 * All rights reserved. 18251 * 18252 * This source code is licensed under the BSD-style license found in the 18253 * LICENSE file in the root directory of this source tree. An additional grant 18254 * of patent rights can be found in the PATENTS file in the same directory. 18321 18255 * 18322 18256 * @providesModule getNodeForCharacterOffset … … 18386 18320 module.exports = getNodeForCharacterOffset; 18387 18321 18388 },{}],128:[function(_dereq_,module,exports){ 18389 /** 18390 * Copyright 2013-2014 Facebook, Inc. 18391 * 18392 * Licensed under the Apache License, Version 2.0 (the "License"); 18393 * you may not use this file except in compliance with the License. 18394 * You may obtain a copy of the License at 18395 * 18396 * http://www.apache.org/licenses/LICENSE-2.0 18397 * 18398 * Unless required by applicable law or agreed to in writing, software 18399 * distributed under the License is distributed on an "AS IS" BASIS, 18400 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18401 * See the License for the specific language governing permissions and 18402 * limitations under the License. 18322 },{}],134:[function(_dereq_,module,exports){ 18323 /** 18324 * Copyright 2013-2014, Facebook, Inc. 18325 * All rights reserved. 18326 * 18327 * This source code is licensed under the BSD-style license found in the 18328 * LICENSE file in the root directory of this source tree. An additional grant 18329 * of patent rights can be found in the PATENTS file in the same directory. 18403 18330 * 18404 18331 * @providesModule getReactRootElementInContainer … … 18428 18355 module.exports = getReactRootElementInContainer; 18429 18356 18430 },{}],129:[function(_dereq_,module,exports){ 18431 /** 18432 * Copyright 2013-2014 Facebook, Inc. 18433 * 18434 * Licensed under the Apache License, Version 2.0 (the "License"); 18435 * you may not use this file except in compliance with the License. 18436 * You may obtain a copy of the License at 18437 * 18438 * http://www.apache.org/licenses/LICENSE-2.0 18439 * 18440 * Unless required by applicable law or agreed to in writing, software 18441 * distributed under the License is distributed on an "AS IS" BASIS, 18442 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18443 * See the License for the specific language governing permissions and 18444 * limitations under the License. 18357 },{}],135:[function(_dereq_,module,exports){ 18358 /** 18359 * Copyright 2013-2014, Facebook, Inc. 18360 * All rights reserved. 18361 * 18362 * This source code is licensed under the BSD-style license found in the 18363 * LICENSE file in the root directory of this source tree. An additional grant 18364 * of patent rights can be found in the PATENTS file in the same directory. 18445 18365 * 18446 18366 * @providesModule getTextContentAccessor … … 18472 18392 module.exports = getTextContentAccessor; 18473 18393 18474 },{"./ExecutionEnvironment":22}],130:[function(_dereq_,module,exports){ 18475 /** 18476 * Copyright 2013-2014 Facebook, Inc. 18477 * 18478 * Licensed under the Apache License, Version 2.0 (the "License"); 18479 * you may not use this file except in compliance with the License. 18480 * You may obtain a copy of the License at 18481 * 18482 * http://www.apache.org/licenses/LICENSE-2.0 18483 * 18484 * Unless required by applicable law or agreed to in writing, software 18485 * distributed under the License is distributed on an "AS IS" BASIS, 18486 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18487 * See the License for the specific language governing permissions and 18488 * limitations under the License. 18394 },{"./ExecutionEnvironment":23}],136:[function(_dereq_,module,exports){ 18395 /** 18396 * Copyright 2013-2014, Facebook, Inc. 18397 * All rights reserved. 18398 * 18399 * This source code is licensed under the BSD-style license found in the 18400 * LICENSE file in the root directory of this source tree. An additional grant 18401 * of patent rights can be found in the PATENTS file in the same directory. 18489 18402 * 18490 18403 * @providesModule getUnboundedScrollPosition … … 18519 18432 module.exports = getUnboundedScrollPosition; 18520 18433 18521 },{}],131:[function(_dereq_,module,exports){ 18522 /** 18523 * Copyright 2013-2014 Facebook, Inc. 18524 * 18525 * Licensed under the Apache License, Version 2.0 (the "License"); 18526 * you may not use this file except in compliance with the License. 18527 * You may obtain a copy of the License at 18528 * 18529 * http://www.apache.org/licenses/LICENSE-2.0 18530 * 18531 * Unless required by applicable law or agreed to in writing, software 18532 * distributed under the License is distributed on an "AS IS" BASIS, 18533 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18534 * See the License for the specific language governing permissions and 18535 * limitations under the License. 18434 },{}],137:[function(_dereq_,module,exports){ 18435 /** 18436 * Copyright 2013-2014, Facebook, Inc. 18437 * All rights reserved. 18438 * 18439 * This source code is licensed under the BSD-style license found in the 18440 * LICENSE file in the root directory of this source tree. An additional grant 18441 * of patent rights can be found in the PATENTS file in the same directory. 18536 18442 * 18537 18443 * @providesModule hyphenate … … 18559 18465 module.exports = hyphenate; 18560 18466 18561 },{}],132:[function(_dereq_,module,exports){ 18562 /** 18563 * Copyright 2013-2014 Facebook, Inc. 18564 * 18565 * Licensed under the Apache License, Version 2.0 (the "License"); 18566 * you may not use this file except in compliance with the License. 18567 * You may obtain a copy of the License at 18568 * 18569 * http://www.apache.org/licenses/LICENSE-2.0 18570 * 18571 * Unless required by applicable law or agreed to in writing, software 18572 * distributed under the License is distributed on an "AS IS" BASIS, 18573 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18574 * See the License for the specific language governing permissions and 18575 * limitations under the License. 18467 },{}],138:[function(_dereq_,module,exports){ 18468 /** 18469 * Copyright 2013-2014, Facebook, Inc. 18470 * All rights reserved. 18471 * 18472 * This source code is licensed under the BSD-style license found in the 18473 * LICENSE file in the root directory of this source tree. An additional grant 18474 * of patent rights can be found in the PATENTS file in the same directory. 18576 18475 * 18577 18476 * @providesModule hyphenateStyleName … … 18588 18487 * Hyphenates a camelcased CSS property name, for example: 18589 18488 * 18590 * > hyphenate ('backgroundColor')18489 * > hyphenateStyleName('backgroundColor') 18591 18490 * < "background-color" 18592 * > hyphenate ('MozTransition')18491 * > hyphenateStyleName('MozTransition') 18593 18492 * < "-moz-transition" 18594 * > hyphenate ('msTransition')18493 * > hyphenateStyleName('msTransition') 18595 18494 * < "-ms-transition" 18596 18495 * … … 18607 18506 module.exports = hyphenateStyleName; 18608 18507 18609 },{"./hyphenate":131}],133:[function(_dereq_,module,exports){ 18610 /** 18611 * Copyright 2013-2014 Facebook, Inc. 18612 * 18613 * Licensed under the Apache License, Version 2.0 (the "License"); 18614 * you may not use this file except in compliance with the License. 18615 * You may obtain a copy of the License at 18616 * 18617 * http://www.apache.org/licenses/LICENSE-2.0 18618 * 18619 * Unless required by applicable law or agreed to in writing, software 18620 * distributed under the License is distributed on an "AS IS" BASIS, 18621 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18622 * See the License for the specific language governing permissions and 18623 * limitations under the License. 18508 },{"./hyphenate":137}],139:[function(_dereq_,module,exports){ 18509 /** 18510 * Copyright 2013-2014, Facebook, Inc. 18511 * All rights reserved. 18512 * 18513 * This source code is licensed under the BSD-style license found in the 18514 * LICENSE file in the root directory of this source tree. An additional grant 18515 * of patent rights can be found in the PATENTS file in the same directory. 18624 18516 * 18625 18517 * @providesModule instantiateReactComponent … … 18629 18521 "use strict"; 18630 18522 18631 var invariant = _dereq_("./invariant"); 18632 18633 /** 18634 * Validate a `componentDescriptor`. This should be exposed publicly in a follow 18635 * up diff. 18636 * 18637 * @param {object} descriptor 18638 * @return {boolean} Returns true if this is a valid descriptor of a Component. 18639 */ 18640 function isValidComponentDescriptor(descriptor) { 18641 return ( 18642 descriptor && 18643 typeof descriptor.type === 'function' && 18644 typeof descriptor.type.prototype.mountComponent === 'function' && 18645 typeof descriptor.type.prototype.receiveComponent === 'function' 18646 ); 18647 } 18648 18649 /** 18650 * Given a `componentDescriptor` create an instance that will actually be 18651 * mounted. Currently it just extracts an existing clone from composite 18652 * components but this is an implementation detail which will change. 18653 * 18654 * @param {object} descriptor 18655 * @return {object} A new instance of componentDescriptor's constructor. 18523 var warning = _dereq_("./warning"); 18524 18525 var ReactElement = _dereq_("./ReactElement"); 18526 var ReactLegacyElement = _dereq_("./ReactLegacyElement"); 18527 var ReactNativeComponent = _dereq_("./ReactNativeComponent"); 18528 var ReactEmptyComponent = _dereq_("./ReactEmptyComponent"); 18529 18530 /** 18531 * Given an `element` create an instance that will actually be mounted. 18532 * 18533 * @param {object} element 18534 * @param {*} parentCompositeType The composite type that resolved this. 18535 * @return {object} A new instance of the element's constructor. 18656 18536 * @protected 18657 18537 */ 18658 function instantiateReactComponent(descriptor) { 18659 18660 // TODO: Make warning 18661 // if (__DEV__) { 18662 ("production" !== "development" ? invariant( 18663 isValidComponentDescriptor(descriptor), 18664 'Only React Components are valid for mounting.' 18665 ) : invariant(isValidComponentDescriptor(descriptor))); 18666 // } 18667 18668 return new descriptor.type(descriptor); 18538 function instantiateReactComponent(element, parentCompositeType) { 18539 var instance; 18540 18541 if ("production" !== "development") { 18542 ("production" !== "development" ? warning( 18543 element && (typeof element.type === 'function' || 18544 typeof element.type === 'string'), 18545 'Only functions or strings can be mounted as React components.' 18546 ) : null); 18547 18548 // Resolve mock instances 18549 if (element.type._mockedReactClassConstructor) { 18550 // If this is a mocked class, we treat the legacy factory as if it was the 18551 // class constructor for future proofing unit tests. Because this might 18552 // be mocked as a legacy factory, we ignore any warnings triggerd by 18553 // this temporary hack. 18554 ReactLegacyElement._isLegacyCallWarningEnabled = false; 18555 try { 18556 instance = new element.type._mockedReactClassConstructor( 18557 element.props 18558 ); 18559 } finally { 18560 ReactLegacyElement._isLegacyCallWarningEnabled = true; 18561 } 18562 18563 // If the mock implementation was a legacy factory, then it returns a 18564 // element. We need to turn this into a real component instance. 18565 if (ReactElement.isValidElement(instance)) { 18566 instance = new instance.type(instance.props); 18567 } 18568 18569 var render = instance.render; 18570 if (!render) { 18571 // For auto-mocked factories, the prototype isn't shimmed and therefore 18572 // there is no render function on the instance. We replace the whole 18573 // component with an empty component instance instead. 18574 element = ReactEmptyComponent.getEmptyComponent(); 18575 } else { 18576 if (render._isMockFunction && !render._getMockImplementation()) { 18577 // Auto-mocked components may have a prototype with a mocked render 18578 // function. For those, we'll need to mock the result of the render 18579 // since we consider undefined to be invalid results from render. 18580 render.mockImplementation( 18581 ReactEmptyComponent.getEmptyComponent 18582 ); 18583 } 18584 instance.construct(element); 18585 return instance; 18586 } 18587 } 18588 } 18589 18590 // Special case string values 18591 if (typeof element.type === 'string') { 18592 instance = ReactNativeComponent.createInstanceForTag( 18593 element.type, 18594 element.props, 18595 parentCompositeType 18596 ); 18597 } else { 18598 // Normal case for non-mocks and non-strings 18599 instance = new element.type(element.props); 18600 } 18601 18602 if ("production" !== "development") { 18603 ("production" !== "development" ? warning( 18604 typeof instance.construct === 'function' && 18605 typeof instance.mountComponent === 'function' && 18606 typeof instance.receiveComponent === 'function', 18607 'Only React Components can be mounted.' 18608 ) : null); 18609 } 18610 18611 // This actually sets up the internal instance. This will become decoupled 18612 // from the public instance in a future diff. 18613 instance.construct(element); 18614 18615 return instance; 18669 18616 } 18670 18617 18671 18618 module.exports = instantiateReactComponent; 18672 18619 18673 },{"./invariant":134}],134:[function(_dereq_,module,exports){ 18674 /** 18675 * Copyright 2013-2014 Facebook, Inc. 18676 * 18677 * Licensed under the Apache License, Version 2.0 (the "License"); 18678 * you may not use this file except in compliance with the License. 18679 * You may obtain a copy of the License at 18680 * 18681 * http://www.apache.org/licenses/LICENSE-2.0 18682 * 18683 * Unless required by applicable law or agreed to in writing, software 18684 * distributed under the License is distributed on an "AS IS" BASIS, 18685 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18686 * See the License for the specific language governing permissions and 18687 * limitations under the License. 18620 },{"./ReactElement":58,"./ReactEmptyComponent":60,"./ReactLegacyElement":67,"./ReactNativeComponent":73,"./warning":160}],140:[function(_dereq_,module,exports){ 18621 /** 18622 * Copyright 2013-2014, Facebook, Inc. 18623 * All rights reserved. 18624 * 18625 * This source code is licensed under the BSD-style license found in the 18626 * LICENSE file in the root directory of this source tree. An additional grant 18627 * of patent rights can be found in the PATENTS file in the same directory. 18688 18628 * 18689 18629 * @providesModule invariant … … 18733 18673 module.exports = invariant; 18734 18674 18735 },{}],135:[function(_dereq_,module,exports){ 18736 /** 18737 * Copyright 2013-2014 Facebook, Inc. 18738 * 18739 * Licensed under the Apache License, Version 2.0 (the "License"); 18740 * you may not use this file except in compliance with the License. 18741 * You may obtain a copy of the License at 18742 * 18743 * http://www.apache.org/licenses/LICENSE-2.0 18744 * 18745 * Unless required by applicable law or agreed to in writing, software 18746 * distributed under the License is distributed on an "AS IS" BASIS, 18747 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18748 * See the License for the specific language governing permissions and 18749 * limitations under the License. 18675 },{}],141:[function(_dereq_,module,exports){ 18676 /** 18677 * Copyright 2013-2014, Facebook, Inc. 18678 * All rights reserved. 18679 * 18680 * This source code is licensed under the BSD-style license found in the 18681 * LICENSE file in the root directory of this source tree. An additional grant 18682 * of patent rights can be found in the PATENTS file in the same directory. 18750 18683 * 18751 18684 * @providesModule isEventSupported … … 18805 18738 module.exports = isEventSupported; 18806 18739 18807 },{"./ExecutionEnvironment":22}],136:[function(_dereq_,module,exports){ 18808 /** 18809 * Copyright 2013-2014 Facebook, Inc. 18810 * 18811 * Licensed under the Apache License, Version 2.0 (the "License"); 18812 * you may not use this file except in compliance with the License. 18813 * You may obtain a copy of the License at 18814 * 18815 * http://www.apache.org/licenses/LICENSE-2.0 18816 * 18817 * Unless required by applicable law or agreed to in writing, software 18818 * distributed under the License is distributed on an "AS IS" BASIS, 18819 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18820 * See the License for the specific language governing permissions and 18821 * limitations under the License. 18740 },{"./ExecutionEnvironment":23}],142:[function(_dereq_,module,exports){ 18741 /** 18742 * Copyright 2013-2014, Facebook, Inc. 18743 * All rights reserved. 18744 * 18745 * This source code is licensed under the BSD-style license found in the 18746 * LICENSE file in the root directory of this source tree. An additional grant 18747 * of patent rights can be found in the PATENTS file in the same directory. 18822 18748 * 18823 18749 * @providesModule isNode … … 18840 18766 module.exports = isNode; 18841 18767 18842 },{}],137:[function(_dereq_,module,exports){ 18843 /** 18844 * Copyright 2013-2014 Facebook, Inc. 18845 * 18846 * Licensed under the Apache License, Version 2.0 (the "License"); 18847 * you may not use this file except in compliance with the License. 18848 * You may obtain a copy of the License at 18849 * 18850 * http://www.apache.org/licenses/LICENSE-2.0 18851 * 18852 * Unless required by applicable law or agreed to in writing, software 18853 * distributed under the License is distributed on an "AS IS" BASIS, 18854 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18855 * See the License for the specific language governing permissions and 18856 * limitations under the License. 18768 },{}],143:[function(_dereq_,module,exports){ 18769 /** 18770 * Copyright 2013-2014, Facebook, Inc. 18771 * All rights reserved. 18772 * 18773 * This source code is licensed under the BSD-style license found in the 18774 * LICENSE file in the root directory of this source tree. An additional grant 18775 * of patent rights can be found in the PATENTS file in the same directory. 18857 18776 * 18858 18777 * @providesModule isTextInputElement … … 18891 18810 module.exports = isTextInputElement; 18892 18811 18893 },{}],138:[function(_dereq_,module,exports){ 18894 /** 18895 * Copyright 2013-2014 Facebook, Inc. 18896 * 18897 * Licensed under the Apache License, Version 2.0 (the "License"); 18898 * you may not use this file except in compliance with the License. 18899 * You may obtain a copy of the License at 18900 * 18901 * http://www.apache.org/licenses/LICENSE-2.0 18902 * 18903 * Unless required by applicable law or agreed to in writing, software 18904 * distributed under the License is distributed on an "AS IS" BASIS, 18905 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18906 * See the License for the specific language governing permissions and 18907 * limitations under the License. 18812 },{}],144:[function(_dereq_,module,exports){ 18813 /** 18814 * Copyright 2013-2014, Facebook, Inc. 18815 * All rights reserved. 18816 * 18817 * This source code is licensed under the BSD-style license found in the 18818 * LICENSE file in the root directory of this source tree. An additional grant 18819 * of patent rights can be found in the PATENTS file in the same directory. 18908 18820 * 18909 18821 * @providesModule isTextNode … … 18923 18835 module.exports = isTextNode; 18924 18836 18925 },{"./isNode":136}],139:[function(_dereq_,module,exports){ 18926 /** 18927 * Copyright 2013-2014 Facebook, Inc. 18928 * 18929 * Licensed under the Apache License, Version 2.0 (the "License"); 18930 * you may not use this file except in compliance with the License. 18931 * You may obtain a copy of the License at 18932 * 18933 * http://www.apache.org/licenses/LICENSE-2.0 18934 * 18935 * Unless required by applicable law or agreed to in writing, software 18936 * distributed under the License is distributed on an "AS IS" BASIS, 18937 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18938 * See the License for the specific language governing permissions and 18939 * limitations under the License. 18837 },{"./isNode":142}],145:[function(_dereq_,module,exports){ 18838 /** 18839 * Copyright 2013-2014, Facebook, Inc. 18840 * All rights reserved. 18841 * 18842 * This source code is licensed under the BSD-style license found in the 18843 * LICENSE file in the root directory of this source tree. An additional grant 18844 * of patent rights can be found in the PATENTS file in the same directory. 18940 18845 * 18941 18846 * @providesModule joinClasses … … 18961 18866 for (var ii = 1; ii < argLength; ii++) { 18962 18867 nextClass = arguments[ii]; 18963 nextClass && (className += ' ' + nextClass); 18868 if (nextClass) { 18869 className = (className ? className + ' ' : '') + nextClass; 18870 } 18964 18871 } 18965 18872 } … … 18969 18876 module.exports = joinClasses; 18970 18877 18971 },{}],140:[function(_dereq_,module,exports){ 18972 /** 18973 * Copyright 2013-2014 Facebook, Inc. 18974 * 18975 * Licensed under the Apache License, Version 2.0 (the "License"); 18976 * you may not use this file except in compliance with the License. 18977 * You may obtain a copy of the License at 18978 * 18979 * http://www.apache.org/licenses/LICENSE-2.0 18980 * 18981 * Unless required by applicable law or agreed to in writing, software 18982 * distributed under the License is distributed on an "AS IS" BASIS, 18983 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18984 * See the License for the specific language governing permissions and 18985 * limitations under the License. 18878 },{}],146:[function(_dereq_,module,exports){ 18879 /** 18880 * Copyright 2013-2014, Facebook, Inc. 18881 * All rights reserved. 18882 * 18883 * This source code is licensed under the BSD-style license found in the 18884 * LICENSE file in the root directory of this source tree. An additional grant 18885 * of patent rights can be found in the PATENTS file in the same directory. 18986 18886 * 18987 18887 * @providesModule keyMirror … … 19029 18929 module.exports = keyMirror; 19030 18930 19031 },{"./invariant":134}],141:[function(_dereq_,module,exports){ 19032 /** 19033 * Copyright 2013-2014 Facebook, Inc. 19034 * 19035 * Licensed under the Apache License, Version 2.0 (the "License"); 19036 * you may not use this file except in compliance with the License. 19037 * You may obtain a copy of the License at 19038 * 19039 * http://www.apache.org/licenses/LICENSE-2.0 19040 * 19041 * Unless required by applicable law or agreed to in writing, software 19042 * distributed under the License is distributed on an "AS IS" BASIS, 19043 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19044 * See the License for the specific language governing permissions and 19045 * limitations under the License. 18931 },{"./invariant":140}],147:[function(_dereq_,module,exports){ 18932 /** 18933 * Copyright 2013-2014, Facebook, Inc. 18934 * All rights reserved. 18935 * 18936 * This source code is licensed under the BSD-style license found in the 18937 * LICENSE file in the root directory of this source tree. An additional grant 18938 * of patent rights can be found in the PATENTS file in the same directory. 19046 18939 * 19047 18940 * @providesModule keyOf … … 19072 18965 module.exports = keyOf; 19073 18966 19074 },{}],142:[function(_dereq_,module,exports){ 19075 /** 19076 * Copyright 2013-2014 Facebook, Inc. 19077 * 19078 * Licensed under the Apache License, Version 2.0 (the "License"); 19079 * you may not use this file except in compliance with the License. 19080 * You may obtain a copy of the License at 19081 * 19082 * http://www.apache.org/licenses/LICENSE-2.0 19083 * 19084 * Unless required by applicable law or agreed to in writing, software 19085 * distributed under the License is distributed on an "AS IS" BASIS, 19086 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19087 * See the License for the specific language governing permissions and 19088 * limitations under the License. 18967 },{}],148:[function(_dereq_,module,exports){ 18968 /** 18969 * Copyright 2013-2014, Facebook, Inc. 18970 * All rights reserved. 18971 * 18972 * This source code is licensed under the BSD-style license found in the 18973 * LICENSE file in the root directory of this source tree. An additional grant 18974 * of patent rights can be found in the PATENTS file in the same directory. 19089 18975 * 19090 18976 * @providesModule mapObject 19091 18977 */ 19092 18978 19093 "use strict"; 19094 19095 /** 19096 * For each key/value pair, invokes callback func and constructs a resulting 19097 * object which contains, for every key in obj, values that are the result of 19098 * of invoking the function: 19099 * 19100 * func(value, key, iteration) 19101 * 19102 * Grepable names: 19103 * 19104 * function objectMap() 19105 * function objMap() 19106 * 19107 * @param {?object} obj Object to map keys over 19108 * @param {function} func Invoked for each key/val pair. 19109 * @param {?*} context 19110 * @return {?object} Result of mapping or null if obj is falsey 19111 */ 19112 function mapObject(obj, func, context) { 19113 if (!obj) { 18979 'use strict'; 18980 18981 var hasOwnProperty = Object.prototype.hasOwnProperty; 18982 18983 /** 18984 * Executes the provided `callback` once for each enumerable own property in the 18985 * object and constructs a new object from the results. The `callback` is 18986 * invoked with three arguments: 18987 * 18988 * - the property value 18989 * - the property name 18990 * - the object being traversed 18991 * 18992 * Properties that are added after the call to `mapObject` will not be visited 18993 * by `callback`. If the values of existing properties are changed, the value 18994 * passed to `callback` will be the value at the time `mapObject` visits them. 18995 * Properties that are deleted before being visited are not visited. 18996 * 18997 * @grep function objectMap() 18998 * @grep function objMap() 18999 * 19000 * @param {?object} object 19001 * @param {function} callback 19002 * @param {*} context 19003 * @return {?object} 19004 */ 19005 function mapObject(object, callback, context) { 19006 if (!object) { 19114 19007 return null; 19115 19008 } 19116 var i = 0; 19117 var ret = {}; 19118 for (var key in obj) { 19119 if (obj.hasOwnProperty(key)) { 19120 ret[key] = func.call(context, obj[key], key, i++); 19121 } 19122 } 19123 return ret; 19009 var result = {}; 19010 for (var name in object) { 19011 if (hasOwnProperty.call(object, name)) { 19012 result[name] = callback.call(context, object[name], name, object); 19013 } 19014 } 19015 return result; 19124 19016 } 19125 19017 19126 19018 module.exports = mapObject; 19127 19019 19128 },{}],143:[function(_dereq_,module,exports){ 19129 /** 19130 * Copyright 2013-2014 Facebook, Inc. 19131 * 19132 * Licensed under the Apache License, Version 2.0 (the "License"); 19133 * you may not use this file except in compliance with the License. 19134 * You may obtain a copy of the License at 19135 * 19136 * http://www.apache.org/licenses/LICENSE-2.0 19137 * 19138 * Unless required by applicable law or agreed to in writing, software 19139 * distributed under the License is distributed on an "AS IS" BASIS, 19140 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19141 * See the License for the specific language governing permissions and 19142 * limitations under the License. 19020 },{}],149:[function(_dereq_,module,exports){ 19021 /** 19022 * Copyright 2013-2014, Facebook, Inc. 19023 * All rights reserved. 19024 * 19025 * This source code is licensed under the BSD-style license found in the 19026 * LICENSE file in the root directory of this source tree. An additional grant 19027 * of patent rights can be found in the PATENTS file in the same directory. 19143 19028 * 19144 19029 * @providesModule memoizeStringOnly … … 19167 19052 module.exports = memoizeStringOnly; 19168 19053 19169 },{}],144:[function(_dereq_,module,exports){ 19170 /** 19171 * Copyright 2013-2014 Facebook, Inc. 19172 * 19173 * Licensed under the Apache License, Version 2.0 (the "License"); 19174 * you may not use this file except in compliance with the License. 19175 * You may obtain a copy of the License at 19176 * 19177 * http://www.apache.org/licenses/LICENSE-2.0 19178 * 19179 * Unless required by applicable law or agreed to in writing, software 19180 * distributed under the License is distributed on an "AS IS" BASIS, 19181 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19182 * See the License for the specific language governing permissions and 19183 * limitations under the License. 19184 * 19185 * @providesModule merge 19186 */ 19187 19188 "use strict"; 19189 19190 var mergeInto = _dereq_("./mergeInto"); 19191 19192 /** 19193 * Shallow merges two structures into a return value, without mutating either. 19194 * 19195 * @param {?object} one Optional object with properties to merge from. 19196 * @param {?object} two Optional object with properties to merge from. 19197 * @return {object} The shallow extension of one by two. 19198 */ 19199 var merge = function(one, two) { 19200 var result = {}; 19201 mergeInto(result, one); 19202 mergeInto(result, two); 19203 return result; 19204 }; 19205 19206 module.exports = merge; 19207 19208 },{"./mergeInto":146}],145:[function(_dereq_,module,exports){ 19209 /** 19210 * Copyright 2013-2014 Facebook, Inc. 19211 * 19212 * Licensed under the Apache License, Version 2.0 (the "License"); 19213 * you may not use this file except in compliance with the License. 19214 * You may obtain a copy of the License at 19215 * 19216 * http://www.apache.org/licenses/LICENSE-2.0 19217 * 19218 * Unless required by applicable law or agreed to in writing, software 19219 * distributed under the License is distributed on an "AS IS" BASIS, 19220 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19221 * See the License for the specific language governing permissions and 19222 * limitations under the License. 19223 * 19224 * @providesModule mergeHelpers 19225 * 19226 * requiresPolyfills: Array.isArray 19227 */ 19228 19229 "use strict"; 19230 19231 var invariant = _dereq_("./invariant"); 19232 var keyMirror = _dereq_("./keyMirror"); 19233 19234 /** 19235 * Maximum number of levels to traverse. Will catch circular structures. 19236 * @const 19237 */ 19238 var MAX_MERGE_DEPTH = 36; 19239 19240 /** 19241 * We won't worry about edge cases like new String('x') or new Boolean(true). 19242 * Functions are considered terminals, and arrays are not. 19243 * @param {*} o The item/object/value to test. 19244 * @return {boolean} true iff the argument is a terminal. 19245 */ 19246 var isTerminal = function(o) { 19247 return typeof o !== 'object' || o === null; 19248 }; 19249 19250 var mergeHelpers = { 19251 19252 MAX_MERGE_DEPTH: MAX_MERGE_DEPTH, 19253 19254 isTerminal: isTerminal, 19255 19256 /** 19257 * Converts null/undefined values into empty object. 19258 * 19259 * @param {?Object=} arg Argument to be normalized (nullable optional) 19260 * @return {!Object} 19261 */ 19262 normalizeMergeArg: function(arg) { 19263 return arg === undefined || arg === null ? {} : arg; 19264 }, 19265 19266 /** 19267 * If merging Arrays, a merge strategy *must* be supplied. If not, it is 19268 * likely the caller's fault. If this function is ever called with anything 19269 * but `one` and `two` being `Array`s, it is the fault of the merge utilities. 19270 * 19271 * @param {*} one Array to merge into. 19272 * @param {*} two Array to merge from. 19273 */ 19274 checkMergeArrayArgs: function(one, two) { 19275 ("production" !== "development" ? invariant( 19276 Array.isArray(one) && Array.isArray(two), 19277 'Tried to merge arrays, instead got %s and %s.', 19278 one, 19279 two 19280 ) : invariant(Array.isArray(one) && Array.isArray(two))); 19281 }, 19282 19283 /** 19284 * @param {*} one Object to merge into. 19285 * @param {*} two Object to merge from. 19286 */ 19287 checkMergeObjectArgs: function(one, two) { 19288 mergeHelpers.checkMergeObjectArg(one); 19289 mergeHelpers.checkMergeObjectArg(two); 19290 }, 19291 19292 /** 19293 * @param {*} arg 19294 */ 19295 checkMergeObjectArg: function(arg) { 19296 ("production" !== "development" ? invariant( 19297 !isTerminal(arg) && !Array.isArray(arg), 19298 'Tried to merge an object, instead got %s.', 19299 arg 19300 ) : invariant(!isTerminal(arg) && !Array.isArray(arg))); 19301 }, 19302 19303 /** 19304 * @param {*} arg 19305 */ 19306 checkMergeIntoObjectArg: function(arg) { 19307 ("production" !== "development" ? invariant( 19308 (!isTerminal(arg) || typeof arg === 'function') && !Array.isArray(arg), 19309 'Tried to merge into an object, instead got %s.', 19310 arg 19311 ) : invariant((!isTerminal(arg) || typeof arg === 'function') && !Array.isArray(arg))); 19312 }, 19313 19314 /** 19315 * Checks that a merge was not given a circular object or an object that had 19316 * too great of depth. 19317 * 19318 * @param {number} Level of recursion to validate against maximum. 19319 */ 19320 checkMergeLevel: function(level) { 19321 ("production" !== "development" ? invariant( 19322 level < MAX_MERGE_DEPTH, 19323 'Maximum deep merge depth exceeded. You may be attempting to merge ' + 19324 'circular structures in an unsupported way.' 19325 ) : invariant(level < MAX_MERGE_DEPTH)); 19326 }, 19327 19328 /** 19329 * Checks that the supplied merge strategy is valid. 19330 * 19331 * @param {string} Array merge strategy. 19332 */ 19333 checkArrayStrategy: function(strategy) { 19334 ("production" !== "development" ? invariant( 19335 strategy === undefined || strategy in mergeHelpers.ArrayStrategies, 19336 'You must provide an array strategy to deep merge functions to ' + 19337 'instruct the deep merge how to resolve merging two arrays.' 19338 ) : invariant(strategy === undefined || strategy in mergeHelpers.ArrayStrategies)); 19339 }, 19340 19341 /** 19342 * Set of possible behaviors of merge algorithms when encountering two Arrays 19343 * that must be merged together. 19344 * - `clobber`: The left `Array` is ignored. 19345 * - `indexByIndex`: The result is achieved by recursively deep merging at 19346 * each index. (not yet supported.) 19347 */ 19348 ArrayStrategies: keyMirror({ 19349 Clobber: true, 19350 IndexByIndex: true 19351 }) 19352 19353 }; 19354 19355 module.exports = mergeHelpers; 19356 19357 },{"./invariant":134,"./keyMirror":140}],146:[function(_dereq_,module,exports){ 19358 /** 19359 * Copyright 2013-2014 Facebook, Inc. 19360 * 19361 * Licensed under the Apache License, Version 2.0 (the "License"); 19362 * you may not use this file except in compliance with the License. 19363 * You may obtain a copy of the License at 19364 * 19365 * http://www.apache.org/licenses/LICENSE-2.0 19366 * 19367 * Unless required by applicable law or agreed to in writing, software 19368 * distributed under the License is distributed on an "AS IS" BASIS, 19369 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19370 * See the License for the specific language governing permissions and 19371 * limitations under the License. 19372 * 19373 * @providesModule mergeInto 19374 * @typechecks static-only 19375 */ 19376 19377 "use strict"; 19378 19379 var mergeHelpers = _dereq_("./mergeHelpers"); 19380 19381 var checkMergeObjectArg = mergeHelpers.checkMergeObjectArg; 19382 var checkMergeIntoObjectArg = mergeHelpers.checkMergeIntoObjectArg; 19383 19384 /** 19385 * Shallow merges two structures by mutating the first parameter. 19386 * 19387 * @param {object|function} one Object to be merged into. 19388 * @param {?object} two Optional object with properties to merge from. 19389 */ 19390 function mergeInto(one, two) { 19391 checkMergeIntoObjectArg(one); 19392 if (two != null) { 19393 checkMergeObjectArg(two); 19394 for (var key in two) { 19395 if (!two.hasOwnProperty(key)) { 19396 continue; 19397 } 19398 one[key] = two[key]; 19399 } 19400 } 19401 } 19402 19403 module.exports = mergeInto; 19404 19405 },{"./mergeHelpers":145}],147:[function(_dereq_,module,exports){ 19406 /** 19407 * Copyright 2013-2014 Facebook, Inc. 19408 * 19409 * Licensed under the Apache License, Version 2.0 (the "License"); 19410 * you may not use this file except in compliance with the License. 19411 * You may obtain a copy of the License at 19412 * 19413 * http://www.apache.org/licenses/LICENSE-2.0 19414 * 19415 * Unless required by applicable law or agreed to in writing, software 19416 * distributed under the License is distributed on an "AS IS" BASIS, 19417 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19418 * See the License for the specific language governing permissions and 19419 * limitations under the License. 19420 * 19421 * @providesModule mixInto 19422 */ 19423 19424 "use strict"; 19425 19426 /** 19427 * Simply copies properties to the prototype. 19428 */ 19429 var mixInto = function(constructor, methodBag) { 19430 var methodName; 19431 for (methodName in methodBag) { 19432 if (!methodBag.hasOwnProperty(methodName)) { 19433 continue; 19434 } 19435 constructor.prototype[methodName] = methodBag[methodName]; 19436 } 19437 }; 19438 19439 module.exports = mixInto; 19440 19441 },{}],148:[function(_dereq_,module,exports){ 19442 /** 19443 * Copyright 2014 Facebook, Inc. 19444 * 19445 * Licensed under the Apache License, Version 2.0 (the "License"); 19446 * you may not use this file except in compliance with the License. 19447 * You may obtain a copy of the License at 19448 * 19449 * http://www.apache.org/licenses/LICENSE-2.0 19450 * 19451 * Unless required by applicable law or agreed to in writing, software 19452 * distributed under the License is distributed on an "AS IS" BASIS, 19453 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19454 * See the License for the specific language governing permissions and 19455 * limitations under the License. 19054 },{}],150:[function(_dereq_,module,exports){ 19055 /** 19056 * Copyright 2014, Facebook, Inc. 19057 * All rights reserved. 19058 * 19059 * This source code is licensed under the BSD-style license found in the 19060 * LICENSE file in the root directory of this source tree. An additional grant 19061 * of patent rights can be found in the PATENTS file in the same directory. 19456 19062 * 19457 19063 * @providesModule monitorCodeUse … … 19478 19084 module.exports = monitorCodeUse; 19479 19085 19480 },{"./invariant":134}],149:[function(_dereq_,module,exports){ 19481 /** 19482 * Copyright 2013-2014 Facebook, Inc. 19483 * 19484 * Licensed under the Apache License, Version 2.0 (the "License"); 19485 * you may not use this file except in compliance with the License. 19486 * You may obtain a copy of the License at 19487 * 19488 * http://www.apache.org/licenses/LICENSE-2.0 19489 * 19490 * Unless required by applicable law or agreed to in writing, software 19491 * distributed under the License is distributed on an "AS IS" BASIS, 19492 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19493 * See the License for the specific language governing permissions and 19494 * limitations under the License. 19086 },{"./invariant":140}],151:[function(_dereq_,module,exports){ 19087 /** 19088 * Copyright 2013-2014, Facebook, Inc. 19089 * All rights reserved. 19090 * 19091 * This source code is licensed under the BSD-style license found in the 19092 * LICENSE file in the root directory of this source tree. An additional grant 19093 * of patent rights can be found in the PATENTS file in the same directory. 19495 19094 * 19496 19095 * @providesModule onlyChild … … 19498 19097 "use strict"; 19499 19098 19500 var React Descriptor = _dereq_("./ReactDescriptor");19099 var ReactElement = _dereq_("./ReactElement"); 19501 19100 19502 19101 var invariant = _dereq_("./invariant"); … … 19515 19114 function onlyChild(children) { 19516 19115 ("production" !== "development" ? invariant( 19517 React Descriptor.isValidDescriptor(children),19116 ReactElement.isValidElement(children), 19518 19117 'onlyChild must be passed a children with exactly one child.' 19519 ) : invariant(React Descriptor.isValidDescriptor(children)));19118 ) : invariant(ReactElement.isValidElement(children))); 19520 19119 return children; 19521 19120 } … … 19523 19122 module.exports = onlyChild; 19524 19123 19525 },{"./ReactDescriptor":56,"./invariant":134}],150:[function(_dereq_,module,exports){ 19526 /** 19527 * Copyright 2013-2014 Facebook, Inc. 19528 * 19529 * Licensed under the Apache License, Version 2.0 (the "License"); 19530 * you may not use this file except in compliance with the License. 19531 * You may obtain a copy of the License at 19532 * 19533 * http://www.apache.org/licenses/LICENSE-2.0 19534 * 19535 * Unless required by applicable law or agreed to in writing, software 19536 * distributed under the License is distributed on an "AS IS" BASIS, 19537 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19538 * See the License for the specific language governing permissions and 19539 * limitations under the License. 19124 },{"./ReactElement":58,"./invariant":140}],152:[function(_dereq_,module,exports){ 19125 /** 19126 * Copyright 2013-2014, Facebook, Inc. 19127 * All rights reserved. 19128 * 19129 * This source code is licensed under the BSD-style license found in the 19130 * LICENSE file in the root directory of this source tree. An additional grant 19131 * of patent rights can be found in the PATENTS file in the same directory. 19540 19132 * 19541 19133 * @providesModule performance … … 19558 19150 module.exports = performance || {}; 19559 19151 19560 },{"./ExecutionEnvironment":22}],151:[function(_dereq_,module,exports){ 19561 /** 19562 * Copyright 2013-2014 Facebook, Inc. 19563 * 19564 * Licensed under the Apache License, Version 2.0 (the "License"); 19565 * you may not use this file except in compliance with the License. 19566 * You may obtain a copy of the License at 19567 * 19568 * http://www.apache.org/licenses/LICENSE-2.0 19569 * 19570 * Unless required by applicable law or agreed to in writing, software 19571 * distributed under the License is distributed on an "AS IS" BASIS, 19572 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19573 * See the License for the specific language governing permissions and 19574 * limitations under the License. 19152 },{"./ExecutionEnvironment":23}],153:[function(_dereq_,module,exports){ 19153 /** 19154 * Copyright 2013-2014, Facebook, Inc. 19155 * All rights reserved. 19156 * 19157 * This source code is licensed under the BSD-style license found in the 19158 * LICENSE file in the root directory of this source tree. An additional grant 19159 * of patent rights can be found in the PATENTS file in the same directory. 19575 19160 * 19576 19161 * @providesModule performanceNow … … 19593 19178 module.exports = performanceNow; 19594 19179 19595 },{"./performance":150}],152:[function(_dereq_,module,exports){ 19596 /** 19597 * Copyright 2013-2014 Facebook, Inc. 19598 * 19599 * Licensed under the Apache License, Version 2.0 (the "License"); 19600 * you may not use this file except in compliance with the License. 19601 * You may obtain a copy of the License at 19602 * 19603 * http://www.apache.org/licenses/LICENSE-2.0 19604 * 19605 * Unless required by applicable law or agreed to in writing, software 19606 * distributed under the License is distributed on an "AS IS" BASIS, 19607 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19608 * See the License for the specific language governing permissions and 19609 * limitations under the License. 19180 },{"./performance":152}],154:[function(_dereq_,module,exports){ 19181 /** 19182 * Copyright 2013-2014, Facebook, Inc. 19183 * All rights reserved. 19184 * 19185 * This source code is licensed under the BSD-style license found in the 19186 * LICENSE file in the root directory of this source tree. An additional grant 19187 * of patent rights can be found in the PATENTS file in the same directory. 19610 19188 * 19611 19189 * @providesModule setInnerHTML … … 19615 19193 19616 19194 var ExecutionEnvironment = _dereq_("./ExecutionEnvironment"); 19195 19196 var WHITESPACE_TEST = /^[ \r\n\t\f]/; 19197 var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; 19617 19198 19618 19199 /** … … 19652 19233 // in-front of the non-visible tags. Piggyback on the whitespace fix 19653 19234 // and simply check if any non-visible tags appear in the source. 19654 if (html.match(/^[ \r\n\t\f]/) || 19655 html[0] === '<' && ( 19656 html.indexOf('<noscript') !== -1 || 19657 html.indexOf('<script') !== -1 || 19658 html.indexOf('<style') !== -1 || 19659 html.indexOf('<meta') !== -1 || 19660 html.indexOf('<link') !== -1)) { 19235 if (WHITESPACE_TEST.test(html) || 19236 html[0] === '<' && NONVISIBLE_TEST.test(html)) { 19661 19237 // Recover leading whitespace by temporarily prepending any character. 19662 19238 // \uFEFF has the potential advantage of being zero-width/invisible. … … 19680 19256 module.exports = setInnerHTML; 19681 19257 19682 },{"./ExecutionEnvironment":22}],153:[function(_dereq_,module,exports){ 19683 /** 19684 * Copyright 2013-2014 Facebook, Inc. 19685 * 19686 * Licensed under the Apache License, Version 2.0 (the "License"); 19687 * you may not use this file except in compliance with the License. 19688 * You may obtain a copy of the License at 19689 * 19690 * http://www.apache.org/licenses/LICENSE-2.0 19691 * 19692 * Unless required by applicable law or agreed to in writing, software 19693 * distributed under the License is distributed on an "AS IS" BASIS, 19694 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19695 * See the License for the specific language governing permissions and 19696 * limitations under the License. 19258 },{"./ExecutionEnvironment":23}],155:[function(_dereq_,module,exports){ 19259 /** 19260 * Copyright 2013-2014, Facebook, Inc. 19261 * All rights reserved. 19262 * 19263 * This source code is licensed under the BSD-style license found in the 19264 * LICENSE file in the root directory of this source tree. An additional grant 19265 * of patent rights can be found in the PATENTS file in the same directory. 19697 19266 * 19698 19267 * @providesModule shallowEqual … … 19720 19289 } 19721 19290 } 19722 // Test for B' akeys missing from A.19291 // Test for B's keys missing from A. 19723 19292 for (key in objB) { 19724 19293 if (objB.hasOwnProperty(key) && !objA.hasOwnProperty(key)) { … … 19731 19300 module.exports = shallowEqual; 19732 19301 19733 },{}],154:[function(_dereq_,module,exports){ 19734 /** 19735 * Copyright 2013-2014 Facebook, Inc. 19736 * 19737 * Licensed under the Apache License, Version 2.0 (the "License"); 19738 * you may not use this file except in compliance with the License. 19739 * You may obtain a copy of the License at 19740 * 19741 * http://www.apache.org/licenses/LICENSE-2.0 19742 * 19743 * Unless required by applicable law or agreed to in writing, software 19744 * distributed under the License is distributed on an "AS IS" BASIS, 19745 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19746 * See the License for the specific language governing permissions and 19747 * limitations under the License. 19302 },{}],156:[function(_dereq_,module,exports){ 19303 /** 19304 * Copyright 2013-2014, Facebook, Inc. 19305 * All rights reserved. 19306 * 19307 * This source code is licensed under the BSD-style license found in the 19308 * LICENSE file in the root directory of this source tree. An additional grant 19309 * of patent rights can be found in the PATENTS file in the same directory. 19748 19310 * 19749 19311 * @providesModule shouldUpdateReactComponent … … 19754 19316 19755 19317 /** 19756 * Given a `prev Descriptor` and `nextDescriptor`, determines if the existing19318 * Given a `prevElement` and `nextElement`, determines if the existing 19757 19319 * instance should be updated as opposed to being destroyed or replaced by a new 19758 * instance. Both arguments are descriptors. This ensures that this logic can19320 * instance. Both arguments are elements. This ensures that this logic can 19759 19321 * operate on stateless trees without any backing instance. 19760 19322 * 19761 * @param {?object} prev Descriptor19762 * @param {?object} next Descriptor19323 * @param {?object} prevElement 19324 * @param {?object} nextElement 19763 19325 * @return {boolean} True if the existing instance should be updated. 19764 19326 * @protected 19765 19327 */ 19766 function shouldUpdateReactComponent(prevDescriptor, nextDescriptor) { 19767 if (prevDescriptor && nextDescriptor && 19768 prevDescriptor.type === nextDescriptor.type && ( 19769 (prevDescriptor.props && prevDescriptor.props.key) === 19770 (nextDescriptor.props && nextDescriptor.props.key) 19771 ) && prevDescriptor._owner === nextDescriptor._owner) { 19328 function shouldUpdateReactComponent(prevElement, nextElement) { 19329 if (prevElement && nextElement && 19330 prevElement.type === nextElement.type && 19331 prevElement.key === nextElement.key && 19332 prevElement._owner === nextElement._owner) { 19772 19333 return true; 19773 19334 } … … 19777 19338 module.exports = shouldUpdateReactComponent; 19778 19339 19779 },{}],155:[function(_dereq_,module,exports){ 19780 /** 19781 * Copyright 2014 Facebook, Inc. 19782 * 19783 * Licensed under the Apache License, Version 2.0 (the "License"); 19784 * you may not use this file except in compliance with the License. 19785 * You may obtain a copy of the License at 19786 * 19787 * http://www.apache.org/licenses/LICENSE-2.0 19788 * 19789 * Unless required by applicable law or agreed to in writing, software 19790 * distributed under the License is distributed on an "AS IS" BASIS, 19791 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19792 * See the License for the specific language governing permissions and 19793 * limitations under the License. 19340 },{}],157:[function(_dereq_,module,exports){ 19341 /** 19342 * Copyright 2014, Facebook, Inc. 19343 * All rights reserved. 19344 * 19345 * This source code is licensed under the BSD-style license found in the 19346 * LICENSE file in the root directory of this source tree. An additional grant 19347 * of patent rights can be found in the PATENTS file in the same directory. 19794 19348 * 19795 19349 * @providesModule toArray … … 19854 19408 module.exports = toArray; 19855 19409 19856 },{"./invariant":134}],156:[function(_dereq_,module,exports){ 19857 /** 19858 * Copyright 2013-2014 Facebook, Inc. 19859 * 19860 * Licensed under the Apache License, Version 2.0 (the "License"); 19861 * you may not use this file except in compliance with the License. 19862 * You may obtain a copy of the License at 19863 * 19864 * http://www.apache.org/licenses/LICENSE-2.0 19865 * 19866 * Unless required by applicable law or agreed to in writing, software 19867 * distributed under the License is distributed on an "AS IS" BASIS, 19868 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19869 * See the License for the specific language governing permissions and 19870 * limitations under the License. 19410 },{"./invariant":140}],158:[function(_dereq_,module,exports){ 19411 /** 19412 * Copyright 2013-2014, Facebook, Inc. 19413 * All rights reserved. 19414 * 19415 * This source code is licensed under the BSD-style license found in the 19416 * LICENSE file in the root directory of this source tree. An additional grant 19417 * of patent rights can be found in the PATENTS file in the same directory. 19871 19418 * 19872 19419 * @providesModule traverseAllChildren … … 19875 19422 "use strict"; 19876 19423 19424 var ReactElement = _dereq_("./ReactElement"); 19877 19425 var ReactInstanceHandles = _dereq_("./ReactInstanceHandles"); 19878 var ReactTextComponent = _dereq_("./ReactTextComponent");19879 19426 19880 19427 var invariant = _dereq_("./invariant"); … … 19911 19458 */ 19912 19459 function getComponentKey(component, index) { 19913 if (component && component. props && component.props.key != null) {19460 if (component && component.key != null) { 19914 19461 // Explicit key 19915 return wrapUserProvidedKey(component. props.key);19462 return wrapUserProvidedKey(component.key); 19916 19463 } 19917 19464 // Implicit key determined by the index in the set … … 19954 19501 var traverseAllChildrenImpl = 19955 19502 function(children, nameSoFar, indexSoFar, callback, traverseContext) { 19503 var nextName, nextIndex; 19956 19504 var subtreeCount = 0; // Count of children found in the current subtree. 19957 19505 if (Array.isArray(children)) { 19958 19506 for (var i = 0; i < children.length; i++) { 19959 19507 var child = children[i]; 19960 varnextName = (19508 nextName = ( 19961 19509 nameSoFar + 19962 19510 (nameSoFar ? SUBSEPARATOR : SEPARATOR) + 19963 19511 getComponentKey(child, i) 19964 19512 ); 19965 varnextIndex = indexSoFar + subtreeCount;19513 nextIndex = indexSoFar + subtreeCount; 19966 19514 subtreeCount += traverseAllChildrenImpl( 19967 19515 child, … … 19983 19531 callback(traverseContext, null, storageName, indexSoFar); 19984 19532 subtreeCount = 1; 19985 } else if ( children.type && children.type.prototype &&19986 children.type.prototype.mountComponentIntoNode) {19533 } else if (type === 'string' || type === 'number' || 19534 ReactElement.isValidElement(children)) { 19987 19535 callback(traverseContext, children, storageName, indexSoFar); 19988 19536 subtreeCount = 1; 19989 } else {19990 if (type === 'object') {19991 ("production" !== "development" ? invariant(19992 !children || children.nodeType !== 1,19993 'traverseAllChildren(...): Encountered an invalid child; DOM ' +19994 'elements are not valid children of React components.'19995 ) : invariant(!children || children.nodeType !== 1));19996 for (var key in children) {19997 if (children.hasOwnProperty(key)) {19998 subtreeCount += traverseAllChildrenImpl(19999 children[key],20000 (20001 nameSoFar + (nameSoFar ? SUBSEPARATOR : SEPARATOR) +20002 wrapUserProvidedKey(key) + SUBSEPARATOR +20003 getComponentKey(children[key], 0)20004 ),20005 indexSoFar + subtreeCount,20006 callback,20007 traverseContext20008 );20009 }19537 } else if (type === 'object') { 19538 ("production" !== "development" ? invariant( 19539 !children || children.nodeType !== 1, 19540 'traverseAllChildren(...): Encountered an invalid child; DOM ' + 19541 'elements are not valid children of React components.' 19542 ) : invariant(!children || children.nodeType !== 1)); 19543 for (var key in children) { 19544 if (children.hasOwnProperty(key)) { 19545 nextName = ( 19546 nameSoFar + (nameSoFar ? SUBSEPARATOR : SEPARATOR) + 19547 wrapUserProvidedKey(key) + SUBSEPARATOR + 19548 getComponentKey(children[key], 0) 19549 ); 19550 nextIndex = indexSoFar + subtreeCount; 19551 subtreeCount += traverseAllChildrenImpl( 19552 children[key], 19553 nextName, 19554 nextIndex, 19555 callback, 19556 traverseContext 19557 ); 20010 19558 } 20011 } else if (type === 'string') {20012 var normalizedText = ReactTextComponent(children);20013 callback(traverseContext, normalizedText, storageName, indexSoFar);20014 subtreeCount += 1;20015 } else if (type === 'number') {20016 var normalizedNumber = ReactTextComponent('' + children);20017 callback(traverseContext, normalizedNumber, storageName, indexSoFar);20018 subtreeCount += 1;20019 19559 } 20020 19560 } … … 20049 19589 module.exports = traverseAllChildren; 20050 19590 20051 },{"./ReactInstanceHandles":64,"./ReactTextComponent":83,"./invariant":134}],157:[function(_dereq_,module,exports){ 20052 /** 20053 * Copyright 2013-2014 Facebook, Inc. 20054 * 20055 * Licensed under the Apache License, Version 2.0 (the "License"); 20056 * you may not use this file except in compliance with the License. 20057 * You may obtain a copy of the License at 20058 * 20059 * http://www.apache.org/licenses/LICENSE-2.0 20060 * 20061 * Unless required by applicable law or agreed to in writing, software 20062 * distributed under the License is distributed on an "AS IS" BASIS, 20063 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20064 * See the License for the specific language governing permissions and 20065 * limitations under the License. 19591 },{"./ReactElement":58,"./ReactInstanceHandles":66,"./invariant":140}],159:[function(_dereq_,module,exports){ 19592 /** 19593 * Copyright 2013-2014, Facebook, Inc. 19594 * All rights reserved. 19595 * 19596 * This source code is licensed under the BSD-style license found in the 19597 * LICENSE file in the root directory of this source tree. An additional grant 19598 * of patent rights can be found in the PATENTS file in the same directory. 20066 19599 * 20067 19600 * @providesModule update … … 20070 19603 "use strict"; 20071 19604 20072 var copyProperties = _dereq_("./copyProperties");19605 var assign = _dereq_("./Object.assign"); 20073 19606 var keyOf = _dereq_("./keyOf"); 20074 19607 var invariant = _dereq_("./invariant"); … … 20078 19611 return x.concat(); 20079 19612 } else if (x && typeof x === 'object') { 20080 return copyProperties(new x.constructor(), x);19613 return assign(new x.constructor(), x); 20081 19614 } else { 20082 19615 return x; … … 20158 19691 nextValue 20159 19692 ) : invariant(nextValue && typeof nextValue === 'object')); 20160 copyProperties(nextValue, spec[COMMAND_MERGE]);19693 assign(nextValue, spec[COMMAND_MERGE]); 20161 19694 } 20162 19695 … … 20222 19755 module.exports = update; 20223 19756 20224 },{"./copyProperties":110,"./invariant":134,"./keyOf":141}],158:[function(_dereq_,module,exports){ 20225 /** 20226 * Copyright 2014 Facebook, Inc. 20227 * 20228 * Licensed under the Apache License, Version 2.0 (the "License"); 20229 * you may not use this file except in compliance with the License. 20230 * You may obtain a copy of the License at 20231 * 20232 * http://www.apache.org/licenses/LICENSE-2.0 20233 * 20234 * Unless required by applicable law or agreed to in writing, software 20235 * distributed under the License is distributed on an "AS IS" BASIS, 20236 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20237 * See the License for the specific language governing permissions and 20238 * limitations under the License. 19757 },{"./Object.assign":29,"./invariant":140,"./keyOf":147}],160:[function(_dereq_,module,exports){ 19758 /** 19759 * Copyright 2014, Facebook, Inc. 19760 * All rights reserved. 19761 * 19762 * This source code is licensed under the BSD-style license found in the 19763 * LICENSE file in the root directory of this source tree. An additional grant 19764 * of patent rights can be found in the PATENTS file in the same directory. 20239 19765 * 20240 19766 * @providesModule warning … … 20272 19798 module.exports = warning; 20273 19799 20274 },{"./emptyFunction":116}]},{},[88]) 20275 (88) 19800 },{"./emptyFunction":121}]},{},[1])(1) 20276 19801 }); -
SRUAggregator/trunk/src/main/webapp/lib/react-with-addons.min.js
r5758 r5771 1 1 /** 2 * React (with addons) v0.1 1.22 * React (with addons) v0.12.0 3 3 * 4 * Copyright 2013-2014 Facebook, Inc. 4 * Copyright 2013-2014, Facebook, Inc. 5 * All rights reserved. 5 6 * 6 * Licensed under the Apache License, Version 2.0 (the "License");7 * you may not use this file except in compliance with the License.8 * You may obtain a copy of the License at7 * This source code is licensed under the BSD-style license found in the 8 * LICENSE file in the root directory of this source tree. An additional grant 9 * of patent rights can be found in the PATENTS file in the same directory. 9 10 * 10 * http://www.apache.org/licenses/LICENSE-2.011 *12 * Unless required by applicable law or agreed to in writing, software13 * distributed under the License is distributed on an "AS IS" BASIS,14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.15 * See the License for the specific language governing permissions and16 * limitations under the License.17 11 */ 18 !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.React=e()}}(function(){return function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0); throw new Error("Cannot find module '"+a+"'")}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t){"use strict";var n=e("./focusNode"),r={componentDidMount:function(){this.props.autoFocus&&n(this.getDOMNode())}};t.exports=r},{"./focusNode":117}],2:[function(e,t){"use strict";function n(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function r(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}var o=e("./EventConstants"),i=e("./EventPropagators"),a=e("./ExecutionEnvironment"),s=e("./SyntheticInputEvent"),u=e("./keyOf"),c=a.canUseDOM&&"TextEvent"in window&&!("documentMode"in document||n()),l=32,p=String.fromCharCode(l),d=o.topLevelTypes,f={beforeInput:{phasedRegistrationNames:{bubbled:u({onBeforeInput:null}),captured:u({onBeforeInputCapture:null})},dependencies:[d.topCompositionEnd,d.topKeyPress,d.topTextInput,d.topPaste]}},h=null,v={eventTypes:f,extractEvents:function(e,t,n,o){var a;if(c)switch(e){case d.topKeyPress:var u=o.which;if(u!==l)return;a=String.fromCharCode(u);break;case d.topTextInput:if(a=o.data,a===p)return;break;default:return}else{switch(e){case d.topPaste:h=null;break;case d.topKeyPress:o.which&&!r(o)&&(h=String.fromCharCode(o.which));break;case d.topCompositionEnd:h=o.data}if(null===h)return;a=h}if(a){var v=s.getPooled(f.beforeInput,n,o);return v.data=a,h=null,i.accumulateTwoPhaseDispatches(v),v}}};t.exports=v},{"./EventConstants":16,"./EventPropagators":21,"./ExecutionEnvironment":22,"./SyntheticInputEvent":95,"./keyOf":138}],3:[function(e,t){var n=e("./invariant"),r={addClass:function(e,t){return n(!/\s/.test(t)),t&&(e.classList?e.classList.add(t):r.hasClass(e,t)||(e.className=e.className+" "+t)),e},removeClass:function(e,t){return n(!/\s/.test(t)),t&&(e.classList?e.classList.remove(t):r.hasClass(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,""))),e},conditionClass:function(e,t,n){return(n?r.addClass:r.removeClass)(e,t)},hasClass:function(e,t){return n(!/\s/.test(t)),e.classList?!!t&&e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}};t.exports=r},{"./invariant":131}],4:[function(e,t){"use strict";function n(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var r={columnCount:!0,fillOpacity:!0,flex:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},o=["Webkit","ms","Moz","O"];Object.keys(r).forEach(function(e){o.forEach(function(t){r[n(t,e)]=r[e]})});var i={background:{backgroundImage:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundColor:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0}},a={isUnitlessNumber:r,shorthandPropertyExpansions:i};t.exports=a},{}],5:[function(e,t){"use strict";var n=e("./CSSProperty"),r=e("./dangerousStyleValue"),o=e("./hyphenateStyleName"),i=e("./memoizeStringOnly"),a=i(function(e){return o(e)}),s={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];null!=o&&(t+=a(n)+":",t+=r(n,o)+";")}return t||null},setValueForStyles:function(e,t){var o=e.style;for(var i in t)if(t.hasOwnProperty(i)){var a=r(i,t[i]);if(a)o[i]=a;else{var s=n.shorthandPropertyExpansions[i];if(s)for(var u in s)o[u]="";else o[i]=""}}}};t.exports=s},{"./CSSProperty":4,"./dangerousStyleValue":112,"./hyphenateStyleName":129,"./memoizeStringOnly":140}],6:[function(e,t){"use strict";function n(){this._callbacks=null,this._contexts=null}var r=e("./PooledClass"),o=e("./invariant"),i=e("./mixInto");i(n,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){o(e.length===t.length),this._callbacks=null,this._contexts=null;for(var n=0,r=e.length;r>n;n++)e[n].call(t[n]);e.length=0,t.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),r.addPoolingTo(n),t.exports=n},{"./PooledClass":28,"./invariant":131,"./mixInto":144}],7:[function(e,t){"use strict";function n(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function r(e){var t=M.getPooled(P.change,S,e);C.accumulateTwoPhaseDispatches(t),R.batchedUpdates(o,t)}function o(e){y.enqueueEvents(e),y.processEventQueue()}function i(e,t){T=e,S=t,T.attachEvent("onchange",r)}function a(){T&&(T.detachEvent("onchange",r),T=null,S=null)}function s(e,t,n){return e===O.topChange?n:void 0}function u(e,t,n){e===O.topFocus?(a(),i(t,n)):e===O.topBlur&&a()}function c(e,t){T=e,S=t,w=e.value,_=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(T,"value",k),T.attachEvent("onpropertychange",p)}function l(){T&&(delete T.value,T.detachEvent("onpropertychange",p),T=null,S=null,w=null,_=null)}function p(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==w&&(w=t,r(e))}}function d(e,t,n){return e===O.topInput?n:void 0}function f(e,t,n){e===O.topFocus?(l(),c(t,n)):e===O.topBlur&&l()}function h(e){return e!==O.topSelectionChange&&e!==O.topKeyUp&&e!==O.topKeyDown||!T||T.value===w?void 0:(w=T.value,S)}function v(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function m(e,t,n){return e===O.topClick?n:void 0}var g=e("./EventConstants"),y=e("./EventPluginHub"),C=e("./EventPropagators"),E=e("./ExecutionEnvironment"),R=e("./ReactUpdates"),M=e("./SyntheticEvent"),D=e("./isEventSupported"),x=e("./isTextInputElement"),b=e("./keyOf"),O=g.topLevelTypes,P={change:{phasedRegistrationNames:{bubbled:b({onChange:null}),captured:b({onChangeCapture:null})},dependencies:[O.topBlur,O.topChange,O.topClick,O.topFocus,O.topInput,O.topKeyDown,O.topKeyUp,O.topSelectionChange]}},T=null,S=null,w=null,_=null,I=!1;E.canUseDOM&&(I=D("change")&&(!("documentMode"in document)||document.documentMode>8));var N=!1;E.canUseDOM&&(N=D("input")&&(!("documentMode"in document)||document.documentMode>9));var k={get:function(){return _.get.call(this)},set:function(e){w=""+e,_.set.call(this,e)}},A={eventTypes:P,extractEvents:function(e,t,r,o){var i,a;if(n(t)?I?i=s:a=u:x(t)?N?i=d:(i=h,a=f):v(t)&&(i=m),i){var c=i(e,t,r);if(c){var l=M.getPooled(P.change,c,o);return C.accumulateTwoPhaseDispatches(l),l}}a&&a(e,t,r)}};t.exports=A},{"./EventConstants":16,"./EventPluginHub":18,"./EventPropagators":21,"./ExecutionEnvironment":22,"./ReactUpdates":84,"./SyntheticEvent":93,"./isEventSupported":132,"./isTextInputElement":134,"./keyOf":138}],8:[function(e,t){"use strict";var n=0,r={createReactRootIndex:function(){return n++}};t.exports=r},{}],9:[function(e,t){"use strict";function n(e){switch(e){case g.topCompositionStart:return C.compositionStart;case g.topCompositionEnd:return C.compositionEnd;case g.topCompositionUpdate:return C.compositionUpdate}}function r(e,t){return e===g.topKeyDown&&t.keyCode===h}function o(e,t){switch(e){case g.topKeyUp:return-1!==f.indexOf(t.keyCode);case g.topKeyDown:return t.keyCode!==h;case g.topKeyPress:case g.topMouseDown:case g.topBlur:return!0;default:return!1}}function i(e){this.root=e,this.startSelection=c.getSelection(e),this.startValue=this.getText()}var a=e("./EventConstants"),s=e("./EventPropagators"),u=e("./ExecutionEnvironment"),c=e("./ReactInputSelection"),l=e("./SyntheticCompositionEvent"),p=e("./getTextContentAccessor"),d=e("./keyOf"),f=[9,13,27,32],h=229,v=u.canUseDOM&&"CompositionEvent"in window,m=!v||"documentMode"in document&&document.documentMode>8&&document.documentMode<=11,g=a.topLevelTypes,y=null,C={compositionEnd:{phasedRegistrationNames:{bubbled:d({onCompositionEnd:null}),captured:d({onCompositionEndCapture:null})},dependencies:[g.topBlur,g.topCompositionEnd,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:d({onCompositionStart:null}),captured:d({onCompositionStartCapture:null})},dependencies:[g.topBlur,g.topCompositionStart,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:d({onCompositionUpdate:null}),captured:d({onCompositionUpdateCapture:null})},dependencies:[g.topBlur,g.topCompositionUpdate,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]}};i.prototype.getText=function(){return this.root.value||this.root[p()]},i.prototype.getData=function(){var e=this.getText(),t=this.startSelection.start,n=this.startValue.length-this.startSelection.end;return e.substr(t,e.length-n-t)};var E={eventTypes:C,extractEvents:function(e,t,a,u){var c,p;if(v?c=n(e):y?o(e,u)&&(c=C.compositionEnd):r(e,u)&&(c=C.compositionStart),m&&(y||c!==C.compositionStart?c===C.compositionEnd&&y&&(p=y.getData(),y=null):y=new i(t)),c){var d=l.getPooled(c,a,u);return p&&(d.data=p),s.accumulateTwoPhaseDispatches(d),d}}};t.exports=E},{"./EventConstants":16,"./EventPropagators":21,"./ExecutionEnvironment":22,"./ReactInputSelection":61,"./SyntheticCompositionEvent":91,"./getTextContentAccessor":126,"./keyOf":138}],10:[function(e,t){"use strict";function n(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var r,o=e("./Danger"),i=e("./ReactMultiChildUpdateTypes"),a=e("./getTextContentAccessor"),s=e("./invariant"),u=a();r="textContent"===u?function(e,t){e.textContent=t}:function(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);if(t){var n=e.ownerDocument||document;e.appendChild(n.createTextNode(t))}};var c={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,updateTextContent:r,processUpdates:function(e,t){for(var a,u=null,c=null,l=0;a=e[l];l++)if(a.type===i.MOVE_EXISTING||a.type===i.REMOVE_NODE){var p=a.fromIndex,d=a.parentNode.childNodes[p],f=a.parentID;s(d),u=u||{},u[f]=u[f]||[],u[f][p]=d,c=c||[],c.push(d)}var h=o.dangerouslyRenderMarkup(t);if(c)for(var v=0;v<c.length;v++)c[v].parentNode.removeChild(c[v]);for(var m=0;a=e[m];m++)switch(a.type){case i.INSERT_MARKUP:n(a.parentNode,h[a.markupIndex],a.toIndex);break;case i.MOVE_EXISTING:n(a.parentNode,u[a.parentID][a.fromIndex],a.toIndex);break;case i.TEXT_CONTENT:r(a.parentNode,a.textContent);break;case i.REMOVE_NODE:}}};t.exports=c},{"./Danger":13,"./ReactMultiChildUpdateTypes":67,"./getTextContentAccessor":126,"./invariant":131}],11:[function(e,t){"use strict";var n=e("./invariant"),r={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=e.Properties||{},o=e.DOMAttributeNames||{},a=e.DOMPropertyNames||{},s=e.DOMMutationMethods||{};e.isCustomAttribute&&i._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var u in t){n(!i.isStandardName.hasOwnProperty(u)),i.isStandardName[u]=!0;var c=u.toLowerCase();if(i.getPossibleStandardName[c]=u,o.hasOwnProperty(u)){var l=o[u];i.getPossibleStandardName[l]=u,i.getAttributeName[u]=l}else i.getAttributeName[u]=c;i.getPropertyName[u]=a.hasOwnProperty(u)?a[u]:u,i.getMutationMethod[u]=s.hasOwnProperty(u)?s[u]:null;var p=t[u];i.mustUseAttribute[u]=p&r.MUST_USE_ATTRIBUTE,i.mustUseProperty[u]=p&r.MUST_USE_PROPERTY,i.hasSideEffects[u]=p&r.HAS_SIDE_EFFECTS,i.hasBooleanValue[u]=p&r.HAS_BOOLEAN_VALUE,i.hasNumericValue[u]=p&r.HAS_NUMERIC_VALUE,i.hasPositiveNumericValue[u]=p&r.HAS_POSITIVE_NUMERIC_VALUE,i.hasOverloadedBooleanValue[u]=p&r.HAS_OVERLOADED_BOOLEAN_VALUE,n(!i.mustUseAttribute[u]||!i.mustUseProperty[u]),n(i.mustUseProperty[u]||!i.hasSideEffects[u]),n(!!i.hasBooleanValue[u]+!!i.hasNumericValue[u]+!!i.hasOverloadedBooleanValue[u]<=1)}}},o={},i={ID_ATTRIBUTE_NAME:"data-reactid",isStandardName:{},getPossibleStandardName:{},getAttributeName:{},getPropertyName:{},getMutationMethod:{},mustUseAttribute:{},mustUseProperty:{},hasSideEffects:{},hasBooleanValue:{},hasNumericValue:{},hasPositiveNumericValue:{},hasOverloadedBooleanValue:{},_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<i._isCustomAttributeFunctions.length;t++){var n=i._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},getDefaultValueForProperty:function(e,t){var n,r=o[e];return r||(o[e]=r={}),t in r||(n=document.createElement(e),r[t]=n[t]),r[t]},injection:r};t.exports=i},{"./invariant":131}],12:[function(e,t){"use strict";function n(e,t){return null==t||r.hasBooleanValue[e]&&!t||r.hasNumericValue[e]&&isNaN(t)||r.hasPositiveNumericValue[e]&&1>t||r.hasOverloadedBooleanValue[e]&&t===!1}var r=e("./DOMProperty"),o=e("./escapeTextForBrowser"),i=e("./memoizeStringOnly"),a=(e("./warning"),i(function(e){return o(e)+'="'})),s={createMarkupForID:function(e){return a(r.ID_ATTRIBUTE_NAME)+o(e)+'"'},createMarkupForProperty:function(e,t){if(r.isStandardName.hasOwnProperty(e)&&r.isStandardName[e]){if(n(e,t))return"";var i=r.getAttributeName[e];return r.hasBooleanValue[e]||r.hasOverloadedBooleanValue[e]&&t===!0?o(i):a(i)+o(t)+'"'}return r.isCustomAttribute(e)?null==t?"":a(e)+o(t)+'"':null},setValueForProperty:function(e,t,o){if(r.isStandardName.hasOwnProperty(t)&&r.isStandardName[t]){var i=r.getMutationMethod[t];if(i)i(e,o);else if(n(t,o))this.deleteValueForProperty(e,t);else if(r.mustUseAttribute[t])e.setAttribute(r.getAttributeName[t],""+o);else{var a=r.getPropertyName[t];r.hasSideEffects[t]&&e[a]===o||(e[a]=o)}}else r.isCustomAttribute(t)&&(null==o?e.removeAttribute(t):e.setAttribute(t,""+o))},deleteValueForProperty:function(e,t){if(r.isStandardName.hasOwnProperty(t)&&r.isStandardName[t]){var n=r.getMutationMethod[t];if(n)n(e,void 0);else if(r.mustUseAttribute[t])e.removeAttribute(r.getAttributeName[t]);else{var o=r.getPropertyName[t],i=r.getDefaultValueForProperty(e.nodeName,o);r.hasSideEffects[t]&&e[o]===i||(e[o]=i)}}else r.isCustomAttribute(t)&&e.removeAttribute(t)}};t.exports=s},{"./DOMProperty":11,"./escapeTextForBrowser":115,"./memoizeStringOnly":140,"./warning":153}],13:[function(e,t){"use strict";function n(e){return e.substring(1,e.indexOf(" "))}var r=e("./ExecutionEnvironment"),o=e("./createNodesFromMarkup"),i=e("./emptyFunction"),a=e("./getMarkupWrap"),s=e("./invariant"),u=/^(<[^ \/>]+)/,c="data-danger-index",l={dangerouslyRenderMarkup:function(e){s(r.canUseDOM);for(var t,l={},p=0;p<e.length;p++)s(e[p]),t=n(e[p]),t=a(t)?t:"*",l[t]=l[t]||[],l[t][p]=e[p];var d=[],f=0;for(t in l)if(l.hasOwnProperty(t)){var h=l[t];for(var v in h)if(h.hasOwnProperty(v)){var m=h[v];h[v]=m.replace(u,"$1 "+c+'="'+v+'" ')}var g=o(h.join(""),i);for(p=0;p<g.length;++p){var y=g[p];y.hasAttribute&&y.hasAttribute(c)&&(v=+y.getAttribute(c),y.removeAttribute(c),s(!d.hasOwnProperty(v)),d[v]=y,f+=1)}}return s(f===d.length),s(d.length===e.length),d},dangerouslyReplaceNodeWithMarkup:function(e,t){s(r.canUseDOM),s(t),s("html"!==e.tagName.toLowerCase());var n=o(t,i)[0];e.parentNode.replaceChild(n,e)}};t.exports=l},{"./ExecutionEnvironment":22,"./createNodesFromMarkup":110,"./emptyFunction":113,"./getMarkupWrap":123,"./invariant":131}],14:[function(e,t){"use strict";var n=e("./keyOf"),r=[n({ResponderEventPlugin:null}),n({SimpleEventPlugin:null}),n({TapEventPlugin:null}),n({EnterLeaveEventPlugin:null}),n({ChangeEventPlugin:null}),n({SelectEventPlugin:null}),n({CompositionEventPlugin:null}),n({BeforeInputEventPlugin:null}),n({AnalyticsEventPlugin:null}),n({MobileSafariClickEventPlugin:null})];t.exports=r},{"./keyOf":138}],15:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./EventPropagators"),o=e("./SyntheticMouseEvent"),i=e("./ReactMount"),a=e("./keyOf"),s=n.topLevelTypes,u=i.getFirstReactDOM,c={mouseEnter:{registrationName:a({onMouseEnter:null}),dependencies:[s.topMouseOut,s.topMouseOver]},mouseLeave:{registrationName:a({onMouseLeave:null}),dependencies:[s.topMouseOut,s.topMouseOver]}},l=[null,null],p={eventTypes:c,extractEvents:function(e,t,n,a){if(e===s.topMouseOver&&(a.relatedTarget||a.fromElement))return null;if(e!==s.topMouseOut&&e!==s.topMouseOver)return null;var p;if(t.window===t)p=t;else{var d=t.ownerDocument;p=d?d.defaultView||d.parentWindow:window}var f,h;if(e===s.topMouseOut?(f=t,h=u(a.relatedTarget||a.toElement)||p):(f=p,h=t),f===h)return null;var v=f?i.getID(f):"",m=h?i.getID(h):"",g=o.getPooled(c.mouseLeave,v,a);g.type="mouseleave",g.target=f,g.relatedTarget=h;var y=o.getPooled(c.mouseEnter,m,a);return y.type="mouseenter",y.target=h,y.relatedTarget=f,r.accumulateEnterLeaveDispatches(g,y,v,m),l[0]=g,l[1]=y,l}};t.exports=p},{"./EventConstants":16,"./EventPropagators":21,"./ReactMount":65,"./SyntheticMouseEvent":97,"./keyOf":138}],16:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({bubbled:null,captured:null}),o=n({topBlur:null,topChange:null,topClick:null,topCompositionEnd:null,topCompositionStart:null,topCompositionUpdate:null,topContextMenu:null,topCopy:null,topCut:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topError:null,topFocus:null,topInput:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topLoad:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topPaste:null,topReset:null,topScroll:null,topSelectionChange:null,topSubmit:null,topTextInput:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topWheel:null}),i={topLevelTypes:o,PropagationPhases:r};t.exports=i},{"./keyMirror":137}],17:[function(e,t){var n=e("./emptyFunction"),r={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,r){return e.addEventListener?(e.addEventListener(t,r,!0),{remove:function(){e.removeEventListener(t,r,!0)}}):{remove:n}},registerDefault:function(){}};t.exports=r},{"./emptyFunction":113}],18:[function(e,t){"use strict";var n=e("./EventPluginRegistry"),r=e("./EventPluginUtils"),o=e("./accumulate"),i=e("./forEachAccumulated"),a=e("./invariant"),s=(e("./isEventSupported"),e("./monitorCodeUse"),{}),u=null,c=function(e){if(e){var t=r.executeDispatch,o=n.getPluginModuleForEvent(e);o&&o.executeDispatch&&(t=o.executeDispatch),r.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e)}},l=null,p={injection:{injectMount:r.injection.injectMount,injectInstanceHandle:function(e){l=e},getInstanceHandle:function(){return l},injectEventPluginOrder:n.injectEventPluginOrder,injectEventPluginsByName:n.injectEventPluginsByName},eventNameDispatchConfigs:n.eventNameDispatchConfigs,registrationNameModules:n.registrationNameModules,putListener:function(e,t,n){a(!n||"function"==typeof n);var r=s[t]||(s[t]={});r[e]=n},getListener:function(e,t){var n=s[t];return n&&n[e]},deleteListener:function(e,t){var n=s[t];n&&delete n[e]},deleteAllListeners:function(e){for(var t in s)delete s[t][e]},extractEvents:function(e,t,r,i){for(var a,s=n.plugins,u=0,c=s.length;c>u;u++){var l=s[u];if(l){var p=l.extractEvents(e,t,r,i);p&&(a=o(a,p))}}return a},enqueueEvents:function(e){e&&(u=o(u,e))},processEventQueue:function(){var e=u;u=null,i(e,c),a(!u)},__purge:function(){s={}},__getListenerBank:function(){return s}};t.exports=p},{"./EventPluginRegistry":19,"./EventPluginUtils":20,"./accumulate":103,"./forEachAccumulated":118,"./invariant":131,"./isEventSupported":132,"./monitorCodeUse":145}],19:[function(e,t){"use strict";function n(){if(a)for(var e in s){var t=s[e],n=a.indexOf(e);if(i(n>-1),!u.plugins[n]){i(t.extractEvents),u.plugins[n]=t;var o=t.eventTypes;for(var c in o)i(r(o[c],t,c))}}}function r(e,t,n){i(!u.eventNameDispatchConfigs.hasOwnProperty(n)),u.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var a in r)if(r.hasOwnProperty(a)){var s=r[a];o(s,t,n)}return!0}return e.registrationName?(o(e.registrationName,t,n),!0):!1}function o(e,t,n){i(!u.registrationNameModules[e]),u.registrationNameModules[e]=t,u.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var i=e("./invariant"),a=null,s={},u={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){i(!a),a=Array.prototype.slice.call(e),n()},injectEventPluginsByName:function(e){var t=!1;for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];s.hasOwnProperty(r)&&s[r]===o||(i(!s[r]),s[r]=o,t=!0)}t&&n()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return u.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=u.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){a=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];u.plugins.length=0;var t=u.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=u.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=u},{"./invariant":131}],20:[function(e,t){"use strict";function n(e){return e===v.topMouseUp||e===v.topTouchEnd||e===v.topTouchCancel}function r(e){return e===v.topMouseMove||e===v.topTouchMove}function o(e){return e===v.topMouseDown||e===v.topTouchStart}function i(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)t(e,n[o],r[o]);else n&&t(e,n,r)}function a(e,t,n){e.currentTarget=h.Mount.getNode(n);var r=t(e,n);return e.currentTarget=null,r}function s(e,t){i(e,t),e._dispatchListeners=null,e._dispatchIDs=null}function u(e){var t=e._dispatchListeners,n=e._dispatchIDs;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}function c(e){var t=u(e);return e._dispatchIDs=null,e._dispatchListeners=null,t}function l(e){var t=e._dispatchListeners,n=e._dispatchIDs;f(!Array.isArray(t));var r=t?t(e,n):null;return e._dispatchListeners=null,e._dispatchIDs=null,r}function p(e){return!!e._dispatchListeners}var d=e("./EventConstants"),f=e("./invariant"),h={Mount:null,injectMount:function(e){h.Mount=e}},v=d.topLevelTypes,m={isEndish:n,isMoveish:r,isStartish:o,executeDirectDispatch:l,executeDispatch:a,executeDispatchesInOrder:s,executeDispatchesInOrderStopAtTrue:c,hasDispatches:p,injection:h,useTouchEvents:!1};t.exports=m},{"./EventConstants":16,"./invariant":131}],21:[function(e,t){"use strict";function n(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return v(e,r)}function r(e,t,r){var o=t?h.bubbled:h.captured,i=n(e,r,o);i&&(r._dispatchListeners=d(r._dispatchListeners,i),r._dispatchIDs=d(r._dispatchIDs,e))}function o(e){e&&e.dispatchConfig.phasedRegistrationNames&&p.injection.getInstanceHandle().traverseTwoPhase(e.dispatchMarker,r,e)}function i(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=v(e,r);o&&(n._dispatchListeners=d(n._dispatchListeners,o),n._dispatchIDs=d(n._dispatchIDs,e))}}function a(e){e&&e.dispatchConfig.registrationName&&i(e.dispatchMarker,null,e)}function s(e){f(e,o)}function u(e,t,n,r){p.injection.getInstanceHandle().traverseEnterLeave(n,r,i,e,t)}function c(e){f(e,a)}var l=e("./EventConstants"),p=e("./EventPluginHub"),d=e("./accumulate"),f=e("./forEachAccumulated"),h=l.PropagationPhases,v=p.getListener,m={accumulateTwoPhaseDispatches:s,accumulateDirectDispatches:c,accumulateEnterLeaveDispatches:u};t.exports=m},{"./EventConstants":16,"./EventPluginHub":18,"./accumulate":103,"./forEachAccumulated":118}],22:[function(e,t){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};t.exports=r},{}],23:[function(e,t){"use strict";var n,r=e("./DOMProperty"),o=e("./ExecutionEnvironment"),i=r.injection.MUST_USE_ATTRIBUTE,a=r.injection.MUST_USE_PROPERTY,s=r.injection.HAS_BOOLEAN_VALUE,u=r.injection.HAS_SIDE_EFFECTS,c=r.injection.HAS_NUMERIC_VALUE,l=r.injection.HAS_POSITIVE_NUMERIC_VALUE,p=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(o.canUseDOM){var d=document.implementation;n=d&&d.hasFeature&&d.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var f={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,accessKey:null,action:null,allowFullScreen:i|s,allowTransparency:i,alt:null,async:s,autoComplete:null,autoPlay:s,cellPadding:null,cellSpacing:null,charSet:i,checked:a|s,className:n?i:a,cols:i|l,colSpan:null,content:null,contentEditable:null,contextMenu:i,controls:a|s,coords:null,crossOrigin:null,data:null,dateTime:i,defer:s,dir:null,disabled:i|s,download:p,draggable:null,encType:null,form:i,formNoValidate:s,frameBorder:i,height:i,hidden:i|s,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:a,label:null,lang:null,list:null,loop:a|s,max:null,maxLength:i,media:i,mediaGroup:null,method:null,min:null,multiple:a|s,muted:a|s,name:null,noValidate:s,open:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:a|s,rel:null,required:s,role:i,rows:i|l,rowSpan:null,sandbox:null,scope:null,scrollLeft:a,scrolling:null,scrollTop:a,seamless:i|s,selected:a|s,shape:null,size:i|l,sizes:i,span:l,spellCheck:null,src:null,srcDoc:a,srcSet:i,start:c,step:null,style:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:a|u,width:i,wmode:i,autoCapitalize:null,autoCorrect:null,itemProp:i,itemScope:i|s,itemType:i,property:null},DOMAttributeNames:{className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",encType:"enctype",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=f},{"./DOMProperty":11,"./ExecutionEnvironment":22}],24:[function(e,t){"use strict";var n=e("./ReactLink"),r=e("./ReactStateSetters"),o={linkState:function(e){return new n(this.state[e],r.createStateKeySetter(this,e))}};t.exports=o},{"./ReactLink":63,"./ReactStateSetters":79}],25:[function(e,t){"use strict";function n(e){u(null==e.props.checkedLink||null==e.props.valueLink)}function r(e){n(e),u(null==e.props.value&&null==e.props.onChange)}function o(e){n(e),u(null==e.props.checked&&null==e.props.onChange)}function i(e){this.props.valueLink.requestChange(e.target.value)}function a(e){this.props.checkedLink.requestChange(e.target.checked)}var s=e("./ReactPropTypes"),u=e("./invariant"),c={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},l={Mixin:{propTypes:{value:function(e,t){return!e[t]||c[e.type]||e.onChange||e.readOnly||e.disabled?void 0:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t){return!e[t]||e.onChange||e.readOnly||e.disabled?void 0:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:s.func}},getValue:function(e){return e.props.valueLink?(r(e),e.props.valueLink.value):e.props.value},getChecked:function(e){return e.props.checkedLink?(o(e),e.props.checkedLink.value):e.props.checked},getOnChange:function(e){return e.props.valueLink?(r(e),i):e.props.checkedLink?(o(e),a):e.props.onChange}};t.exports=l},{"./ReactPropTypes":73,"./invariant":131}],26:[function(e,t){"use strict";function n(e){e.remove()}var r=e("./ReactBrowserEventEmitter"),o=e("./accumulate"),i=e("./forEachAccumulated"),a=e("./invariant"),s={trapBubbledEvent:function(e,t){a(this.isMounted());var n=r.trapBubbledEvent(e,t,this.getDOMNode());this._localEventListeners=o(this._localEventListeners,n)},componentWillUnmount:function(){this._localEventListeners&&i(this._localEventListeners,n)}};t.exports=s},{"./ReactBrowserEventEmitter":31,"./accumulate":103,"./forEachAccumulated":118,"./invariant":131}],27:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./emptyFunction"),o=n.topLevelTypes,i={eventTypes:null,extractEvents:function(e,t,n,i){if(e===o.topTouchStart){var a=i.target;a&&!a.onclick&&(a.onclick=r)}}};t.exports=i},{"./EventConstants":16,"./emptyFunction":113}],28:[function(e,t){"use strict";var n=e("./invariant"),r=function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)},o=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},i=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},a=function(e,t,n,r,o){var i=this;if(i.instancePool.length){var a=i.instancePool.pop();return i.call(a,e,t,n,r,o),a}return new i(e,t,n,r,o)},s=function(e){var t=this;n(e instanceof t),e.destructor&&e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},u=10,c=r,l=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||c,n.poolSize||(n.poolSize=u),n.release=s,n},p={addPoolingTo:l,oneArgumentPooler:r,twoArgumentPooler:o,threeArgumentPooler:i,fiveArgumentPooler:a};t.exports=p},{"./invariant":131}],29:[function(e,t){"use strict";function n(e){var t=Array.prototype.slice.call(arguments,1);return e.apply(null,t)}{var r=e("./DOMPropertyOperations"),o=e("./EventPluginUtils"),i=e("./ReactChildren"),a=e("./ReactComponent"),s=e("./ReactCompositeComponent"),u=e("./ReactContext"),c=e("./ReactCurrentOwner"),l=e("./ReactDescriptor"),p=e("./ReactDOM"),d=e("./ReactDOMComponent"),f=e("./ReactDefaultInjection"),h=e("./ReactInstanceHandles"),v=e("./ReactMount"),m=e("./ReactMultiChild"),g=e("./ReactPerf"),y=e("./ReactPropTypes"),C=e("./ReactServerRendering"),E=e("./ReactTextComponent"),R=e("./onlyChild");e("./warning")}f.inject();var M={Children:{map:i.map,forEach:i.forEach,count:i.count,only:R},DOM:p,PropTypes:y,initializeTouchEvents:function(e){o.useTouchEvents=e},createClass:s.createClass,createDescriptor:function(){return n.apply(this,arguments)},createElement:n,constructAndRenderComponent:v.constructAndRenderComponent,constructAndRenderComponentByID:v.constructAndRenderComponentByID,renderComponent:g.measure("React","renderComponent",v.renderComponent),renderComponentToString:C.renderComponentToString,renderComponentToStaticMarkup:C.renderComponentToStaticMarkup,unmountComponentAtNode:v.unmountComponentAtNode,isValidClass:l.isValidFactory,isValidComponent:l.isValidDescriptor,withContext:u.withContext,__internals:{Component:a,CurrentOwner:c,DOMComponent:d,DOMPropertyOperations:r,InstanceHandles:h,Mount:v,MultiChild:m,TextComponent:E}};M.version="0.11.2",t.exports=M},{"./DOMPropertyOperations":12,"./EventPluginUtils":20,"./ReactChildren":34,"./ReactComponent":35,"./ReactCompositeComponent":38,"./ReactContext":39,"./ReactCurrentOwner":40,"./ReactDOM":41,"./ReactDOMComponent":43,"./ReactDefaultInjection":53,"./ReactDescriptor":54,"./ReactInstanceHandles":62,"./ReactMount":65,"./ReactMultiChild":66,"./ReactPerf":69,"./ReactPropTypes":73,"./ReactServerRendering":77,"./ReactTextComponent":80,"./onlyChild":146,"./warning":153}],30:[function(e,t){"use strict";19 var n=e("./ReactEmptyComponent"),r=e("./ReactMount"),o=e("./invariant"),i={getDOMNode:function(){return o(this.isMounted()),n.isNullComponentID(this._rootNodeID)?null:r.getNode(this._rootNodeID)}};t.exports=i},{"./ReactEmptyComponent":56,"./ReactMount":65,"./invariant":131}],31:[function(e,t){"use strict";function n(e){return Object.prototype.hasOwnProperty.call(e,h)||(e[h]=d++,l[e[h]]={}),l[e[h]]}var r=e("./EventConstants"),o=e("./EventPluginHub"),i=e("./EventPluginRegistry"),a=e("./ReactEventEmitterMixin"),s=e("./ViewportMetrics"),u=e("./isEventSupported"),c=e("./merge"),l={},p=!1,d=0,f={topBlur:"blur",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topScroll:"scroll",topSelectionChange:"selectionchange",topTextInput:"textInput",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topWheel:"wheel"},h="_reactListenersID"+String(Math.random()).slice(2),v=c(a,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(v.handleTopLevel),v.ReactEventListener=e}},setEnabled:function(e){v.ReactEventListener&&v.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!v.ReactEventListener||!v.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var o=t,a=n(o),s=i.registrationNameDependencies[e],c=r.topLevelTypes,l=0,p=s.length;p>l;l++){var d=s[l];a.hasOwnProperty(d)&&a[d]||(d===c.topWheel?u("wheel")?v.ReactEventListener.trapBubbledEvent(c.topWheel,"wheel",o):u("mousewheel")?v.ReactEventListener.trapBubbledEvent(c.topWheel,"mousewheel",o):v.ReactEventListener.trapBubbledEvent(c.topWheel,"DOMMouseScroll",o):d===c.topScroll?u("scroll",!0)?v.ReactEventListener.trapCapturedEvent(c.topScroll,"scroll",o):v.ReactEventListener.trapBubbledEvent(c.topScroll,"scroll",v.ReactEventListener.WINDOW_HANDLE):d===c.topFocus||d===c.topBlur?(u("focus",!0)?(v.ReactEventListener.trapCapturedEvent(c.topFocus,"focus",o),v.ReactEventListener.trapCapturedEvent(c.topBlur,"blur",o)):u("focusin")&&(v.ReactEventListener.trapBubbledEvent(c.topFocus,"focusin",o),v.ReactEventListener.trapBubbledEvent(c.topBlur,"focusout",o)),a[c.topBlur]=!0,a[c.topFocus]=!0):f.hasOwnProperty(d)&&v.ReactEventListener.trapBubbledEvent(d,f[d],o),a[d]=!0)}},trapBubbledEvent:function(e,t,n){return v.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return v.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!p){var e=s.refreshScrollValues;v.ReactEventListener.monitorScrollValue(e),p=!0}},eventNameDispatchConfigs:o.eventNameDispatchConfigs,registrationNameModules:o.registrationNameModules,putListener:o.putListener,getListener:o.getListener,deleteListener:o.deleteListener,deleteAllListeners:o.deleteAllListeners});t.exports=v},{"./EventConstants":16,"./EventPluginHub":18,"./EventPluginRegistry":19,"./ReactEventEmitterMixin":58,"./ViewportMetrics":102,"./isEventSupported":132,"./merge":141}],32:[function(e,t){"use strict";var n=e("./React"),r=e("./ReactTransitionGroup"),o=e("./ReactCSSTransitionGroupChild"),i=n.createClass({displayName:"ReactCSSTransitionGroup",propTypes:{transitionName:n.PropTypes.string.isRequired,transitionEnter:n.PropTypes.bool,transitionLeave:n.PropTypes.bool},getDefaultProps:function(){return{transitionEnter:!0,transitionLeave:!0}},_wrapChild:function(e){return o({name:this.props.transitionName,enter:this.props.transitionEnter,leave:this.props.transitionLeave},e)},render:function(){return this.transferPropsTo(r({childFactory:this._wrapChild},this.props.children))}});t.exports=i},{"./React":29,"./ReactCSSTransitionGroupChild":33,"./ReactTransitionGroup":83}],33:[function(e,t){"use strict";var n=e("./React"),r=e("./CSSCore"),o=e("./ReactTransitionEvents"),i=e("./onlyChild"),a=17,s=n.createClass({displayName:"ReactCSSTransitionGroupChild",transition:function(e,t){var n=this.getDOMNode(),i=this.props.name+"-"+e,a=i+"-active",s=function(){r.removeClass(n,i),r.removeClass(n,a),o.removeEndEventListener(n,s),t&&t()};o.addEndEventListener(n,s),r.addClass(n,i),this.queueClass(a)},queueClass:function(e){this.classNameQueue.push(e),this.timeout||(this.timeout=setTimeout(this.flushClassNameQueue,a))},flushClassNameQueue:function(){this.isMounted()&&this.classNameQueue.forEach(r.addClass.bind(r,this.getDOMNode())),this.classNameQueue.length=0,this.timeout=null},componentWillMount:function(){this.classNameQueue=[]},componentWillUnmount:function(){this.timeout&&clearTimeout(this.timeout)},componentWillEnter:function(e){this.props.enter?this.transition("enter",e):e()},componentWillLeave:function(e){this.props.leave?this.transition("leave",e):e()},render:function(){return i(this.props.children)}});t.exports=s},{"./CSSCore":3,"./React":29,"./ReactTransitionEvents":82,"./onlyChild":146}],34:[function(e,t){"use strict";function n(e,t){this.forEachFunction=e,this.forEachContext=t}function r(e,t,n,r){var o=e;o.forEachFunction.call(o.forEachContext,t,r)}function o(e,t,o){if(null==e)return e;var i=n.getPooled(t,o);p(e,r,i),n.release(i)}function i(e,t,n){this.mapResult=e,this.mapFunction=t,this.mapContext=n}function a(e,t,n,r){var o=e,i=o.mapResult,a=!i.hasOwnProperty(n);if(a){var s=o.mapFunction.call(o.mapContext,t,r);i[n]=s}}function s(e,t,n){if(null==e)return e;var r={},o=i.getPooled(r,t,n);return p(e,a,o),i.release(o),r}function u(){return null}function c(e){return p(e,u,null)}var l=e("./PooledClass"),p=e("./traverseAllChildren"),d=(e("./warning"),l.twoArgumentPooler),f=l.threeArgumentPooler;l.addPoolingTo(n,d),l.addPoolingTo(i,f);var h={forEach:o,map:s,count:c};t.exports=h},{"./PooledClass":28,"./traverseAllChildren":151,"./warning":153}],35:[function(e,t){"use strict";var n=e("./ReactDescriptor"),r=e("./ReactOwner"),o=e("./ReactUpdates"),i=e("./invariant"),a=e("./keyMirror"),s=e("./merge"),u=a({MOUNTED:null,UNMOUNTED:null}),c=!1,l=null,p=null,d={injection:{injectEnvironment:function(e){i(!c),p=e.mountImageIntoNode,l=e.unmountIDFromEnvironment,d.BackendIDOperations=e.BackendIDOperations,c=!0}},LifeCycle:u,BackendIDOperations:null,Mixin:{isMounted:function(){return this._lifeCycleState===u.MOUNTED},setProps:function(e,t){var n=this._pendingDescriptor||this._descriptor;this.replaceProps(s(n.props,e),t)},replaceProps:function(e,t){i(this.isMounted()),i(0===this._mountDepth),this._pendingDescriptor=n.cloneAndReplaceProps(this._pendingDescriptor||this._descriptor,e),o.enqueueUpdate(this,t)},_setPropsInternal:function(e,t){var r=this._pendingDescriptor||this._descriptor;this._pendingDescriptor=n.cloneAndReplaceProps(r,s(r.props,e)),o.enqueueUpdate(this,t)},construct:function(e){this.props=e.props,this._owner=e._owner,this._lifeCycleState=u.UNMOUNTED,this._pendingCallbacks=null,this._descriptor=e,this._pendingDescriptor=null},mountComponent:function(e,t,n){i(!this.isMounted());var o=this._descriptor.props;if(null!=o.ref){var a=this._descriptor._owner;r.addComponentAsRefTo(this,o.ref,a)}this._rootNodeID=e,this._lifeCycleState=u.MOUNTED,this._mountDepth=n},unmountComponent:function(){i(this.isMounted());var e=this.props;null!=e.ref&&r.removeComponentAsRefFrom(this,e.ref,this._owner),l(this._rootNodeID),this._rootNodeID=null,this._lifeCycleState=u.UNMOUNTED},receiveComponent:function(e,t){i(this.isMounted()),this._pendingDescriptor=e,this.performUpdateIfNecessary(t)},performUpdateIfNecessary:function(e){if(null!=this._pendingDescriptor){var t=this._descriptor,n=this._pendingDescriptor;this._descriptor=n,this.props=n.props,this._owner=n._owner,this._pendingDescriptor=null,this.updateComponent(e,t)}},updateComponent:function(e,t){var n=this._descriptor;(n._owner!==t._owner||n.props.ref!==t.props.ref)&&(null!=t.props.ref&&r.removeComponentAsRefFrom(this,t.props.ref,t._owner),null!=n.props.ref&&r.addComponentAsRefTo(this,n.props.ref,n._owner))},mountComponentIntoNode:function(e,t,n){var r=o.ReactReconcileTransaction.getPooled();r.perform(this._mountComponentIntoNode,this,e,t,r,n),o.ReactReconcileTransaction.release(r)},_mountComponentIntoNode:function(e,t,n,r){var o=this.mountComponent(e,n,0);p(o,t,r)},isOwnedBy:function(e){return this._owner===e},getSiblingByRef:function(e){var t=this._owner;return t&&t.refs?t.refs[e]:null}}};t.exports=d},{"./ReactDescriptor":54,"./ReactOwner":68,"./ReactUpdates":84,"./invariant":131,"./keyMirror":137,"./merge":141}],36:[function(e,t){"use strict";var n=e("./ReactDOMIDOperations"),r=e("./ReactMarkupChecksum"),o=e("./ReactMount"),i=e("./ReactPerf"),a=e("./ReactReconcileTransaction"),s=e("./getReactRootElementInContainer"),u=e("./invariant"),c=e("./setInnerHTML"),l=1,p=9,d={ReactReconcileTransaction:a,BackendIDOperations:n,unmountIDFromEnvironment:function(e){o.purgeID(e)},mountImageIntoNode:i.measure("ReactComponentBrowserEnvironment","mountImageIntoNode",function(e,t,n){if(u(t&&(t.nodeType===l||t.nodeType===p)),n){if(r.canReuseMarkup(e,s(t)))return;u(t.nodeType!==p)}u(t.nodeType!==p),c(t,e)})};t.exports=d},{"./ReactDOMIDOperations":45,"./ReactMarkupChecksum":64,"./ReactMount":65,"./ReactPerf":69,"./ReactReconcileTransaction":75,"./getReactRootElementInContainer":125,"./invariant":131,"./setInnerHTML":147}],37:[function(e,t){"use strict";var n=e("./shallowEqual"),r={shouldComponentUpdate:function(e,t){return!n(this.props,e)||!n(this.state,t)}};t.exports=r},{"./shallowEqual":148}],38:[function(e,t){"use strict";function n(e){var t=e._owner||null;return t&&t.constructor&&t.constructor.displayName?" Check the render method of `"+t.constructor.displayName+"`.":""}function r(e,t){for(var n in t)t.hasOwnProperty(n)&&D("function"==typeof t[n])}function o(e,t){var n=_.hasOwnProperty(t)?_[t]:null;k.hasOwnProperty(t)&&D(n===S.OVERRIDE_BASE),e.hasOwnProperty(t)&&D(n===S.DEFINE_MANY||n===S.DEFINE_MANY_MERGED)}function i(e){var t=e._compositeLifeCycleState;D(e.isMounted()||t===N.MOUNTING),D(t!==N.RECEIVING_STATE),D(t!==N.UNMOUNTING)}function a(e,t){D(!h.isValidFactory(t)),D(!h.isValidDescriptor(t));var n=e.prototype;for(var r in t){var i=t[r];if(t.hasOwnProperty(r))if(o(n,r),I.hasOwnProperty(r))I[r](e,i);else{var a=_.hasOwnProperty(r),s=n.hasOwnProperty(r),u=i&&i.__reactDontBind,p="function"==typeof i,d=p&&!a&&!s&&!u;if(d)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[r]=i,n[r]=i;else if(s){var f=_[r];D(a&&(f===S.DEFINE_MANY_MERGED||f===S.DEFINE_MANY)),f===S.DEFINE_MANY_MERGED?n[r]=c(n[r],i):f===S.DEFINE_MANY&&(n[r]=l(n[r],i))}else n[r]=i}}}function s(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in e,i=r;if(o){var a=e[n],s=typeof a,u=typeof r;D("function"===s&&"function"===u),i=l(a,r)}e[n]=i}}}function u(e,t){return D(e&&t&&"object"==typeof e&&"object"==typeof t),P(t,function(t,n){D(void 0===e[n]),e[n]=t}),e}function c(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);return null==n?r:null==r?n:u(n,r)}}function l(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}var p=e("./ReactComponent"),d=e("./ReactContext"),f=e("./ReactCurrentOwner"),h=e("./ReactDescriptor"),v=(e("./ReactDescriptorValidator"),e("./ReactEmptyComponent")),m=e("./ReactErrorUtils"),g=e("./ReactOwner"),y=e("./ReactPerf"),C=e("./ReactPropTransferer"),E=e("./ReactPropTypeLocations"),R=(e("./ReactPropTypeLocationNames"),e("./ReactUpdates")),M=e("./instantiateReactComponent"),D=e("./invariant"),x=e("./keyMirror"),b=e("./merge"),O=e("./mixInto"),P=(e("./monitorCodeUse"),e("./mapObject")),T=e("./shouldUpdateReactComponent"),S=(e("./warning"),x({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null})),w=[],_={mixins:S.DEFINE_MANY,statics:S.DEFINE_MANY,propTypes:S.DEFINE_MANY,contextTypes:S.DEFINE_MANY,childContextTypes:S.DEFINE_MANY,getDefaultProps:S.DEFINE_MANY_MERGED,getInitialState:S.DEFINE_MANY_MERGED,getChildContext:S.DEFINE_MANY_MERGED,render:S.DEFINE_ONCE,componentWillMount:S.DEFINE_MANY,componentDidMount:S.DEFINE_MANY,componentWillReceiveProps:S.DEFINE_MANY,shouldComponentUpdate:S.DEFINE_ONCE,componentWillUpdate:S.DEFINE_MANY,componentDidUpdate:S.DEFINE_MANY,componentWillUnmount:S.DEFINE_MANY,updateComponent:S.OVERRIDE_BASE},I={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)a(e,t[n])},childContextTypes:function(e,t){r(e,t,E.childContext),e.childContextTypes=b(e.childContextTypes,t)},contextTypes:function(e,t){r(e,t,E.context),e.contextTypes=b(e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps=e.getDefaultProps?c(e.getDefaultProps,t):t},propTypes:function(e,t){r(e,t,E.prop),e.propTypes=b(e.propTypes,t)},statics:function(e,t){s(e,t)}},N=x({MOUNTING:null,UNMOUNTING:null,RECEIVING_PROPS:null,RECEIVING_STATE:null}),k={construct:function(){p.Mixin.construct.apply(this,arguments),g.Mixin.construct.apply(this,arguments),this.state=null,this._pendingState=null,this.context=null,this._compositeLifeCycleState=null},isMounted:function(){return p.Mixin.isMounted.call(this)&&this._compositeLifeCycleState!==N.MOUNTING},mountComponent:y.measure("ReactCompositeComponent","mountComponent",function(e,t,n){p.Mixin.mountComponent.call(this,e,t,n),this._compositeLifeCycleState=N.MOUNTING,this.__reactAutoBindMap&&this._bindAutoBindMethods(),this.context=this._processContext(this._descriptor._context),this.props=this._processProps(this.props),this.state=this.getInitialState?this.getInitialState():null,D("object"==typeof this.state&&!Array.isArray(this.state)),this._pendingState=null,this._pendingForceUpdate=!1,this.componentWillMount&&(this.componentWillMount(),this._pendingState&&(this.state=this._pendingState,this._pendingState=null)),this._renderedComponent=M(this._renderValidatedComponent()),this._compositeLifeCycleState=null;var r=this._renderedComponent.mountComponent(e,t,n+1);return this.componentDidMount&&t.getReactMountReady().enqueue(this.componentDidMount,this),r}),unmountComponent:function(){this._compositeLifeCycleState=N.UNMOUNTING,this.componentWillUnmount&&this.componentWillUnmount(),this._compositeLifeCycleState=null,this._renderedComponent.unmountComponent(),this._renderedComponent=null,p.Mixin.unmountComponent.call(this)},setState:function(e,t){D("object"==typeof e||null==e),this.replaceState(b(this._pendingState||this.state,e),t)},replaceState:function(e,t){i(this),this._pendingState=e,this._compositeLifeCycleState!==N.MOUNTING&&R.enqueueUpdate(this,t)},_processContext:function(e){var t=null,n=this.constructor.contextTypes;if(n){t={};for(var r in n)t[r]=e[r]}return t},_processChildContext:function(e){var t=this.getChildContext&&this.getChildContext();if(this.constructor.displayName||"ReactCompositeComponent",t){D("object"==typeof this.constructor.childContextTypes);for(var n in t)D(n in this.constructor.childContextTypes);return b(e,t)}return e},_processProps:function(e){var t,n=this.constructor.defaultProps;if(n){t=b(e);for(var r in n)"undefined"==typeof t[r]&&(t[r]=n[r])}else t=e;return t},_checkPropTypes:function(e,t,r){var o=this.constructor.displayName;for(var i in e)if(e.hasOwnProperty(i)){var a=e[i](t,i,o,r);a instanceof Error&&n(this)}},performUpdateIfNecessary:function(e){var t=this._compositeLifeCycleState;if(t!==N.MOUNTING&&t!==N.RECEIVING_PROPS&&(null!=this._pendingDescriptor||null!=this._pendingState||this._pendingForceUpdate)){var n=this.context,r=this.props,o=this._descriptor;null!=this._pendingDescriptor&&(o=this._pendingDescriptor,n=this._processContext(o._context),r=this._processProps(o.props),this._pendingDescriptor=null,this._compositeLifeCycleState=N.RECEIVING_PROPS,this.componentWillReceiveProps&&this.componentWillReceiveProps(r,n)),this._compositeLifeCycleState=N.RECEIVING_STATE;var i=this._pendingState||this.state;this._pendingState=null;try{var a=this._pendingForceUpdate||!this.shouldComponentUpdate||this.shouldComponentUpdate(r,i,n);a?(this._pendingForceUpdate=!1,this._performComponentUpdate(o,r,i,n,e)):(this._descriptor=o,this.props=r,this.state=i,this.context=n,this._owner=o._owner)}finally{this._compositeLifeCycleState=null}}},_performComponentUpdate:function(e,t,n,r,o){var i=this._descriptor,a=this.props,s=this.state,u=this.context;this.componentWillUpdate&&this.componentWillUpdate(t,n,r),this._descriptor=e,this.props=t,this.state=n,this.context=r,this._owner=e._owner,this.updateComponent(o,i),this.componentDidUpdate&&o.getReactMountReady().enqueue(this.componentDidUpdate.bind(this,a,s,u),this)},receiveComponent:function(e,t){(e!==this._descriptor||null==e._owner)&&p.Mixin.receiveComponent.call(this,e,t)},updateComponent:y.measure("ReactCompositeComponent","updateComponent",function(e,t){p.Mixin.updateComponent.call(this,e,t);var n=this._renderedComponent,r=n._descriptor,o=this._renderValidatedComponent();if(T(r,o))n.receiveComponent(o,e);else{var i=this._rootNodeID,a=n._rootNodeID;n.unmountComponent(),this._renderedComponent=M(o);var s=this._renderedComponent.mountComponent(i,e,this._mountDepth+1);p.BackendIDOperations.dangerouslyReplaceNodeWithMarkupByID(a,s)}}),forceUpdate:function(e){var t=this._compositeLifeCycleState;D(this.isMounted()||t===N.MOUNTING),D(t!==N.RECEIVING_STATE&&t!==N.UNMOUNTING),this._pendingForceUpdate=!0,R.enqueueUpdate(this,e)},_renderValidatedComponent:y.measure("ReactCompositeComponent","_renderValidatedComponent",function(){var e,t=d.current;d.current=this._processChildContext(this._descriptor._context),f.current=this;try{e=this.render(),null===e||e===!1?(e=v.getEmptyComponent(),v.registerNullComponentID(this._rootNodeID)):v.deregisterNullComponentID(this._rootNodeID)}finally{d.current=t,f.current=null}return D(h.isValidDescriptor(e)),e}),_bindAutoBindMethods:function(){for(var e in this.__reactAutoBindMap)if(this.__reactAutoBindMap.hasOwnProperty(e)){var t=this.__reactAutoBindMap[e];this[e]=this._bindAutoBindMethod(m.guard(t,this.constructor.displayName+"."+e))}},_bindAutoBindMethod:function(e){var t=this,n=function(){return e.apply(t,arguments)};return n}},A=function(){};O(A,p.Mixin),O(A,g.Mixin),O(A,C.Mixin),O(A,k);var L={LifeCycle:N,Base:A,createClass:function(e){var t=function(e,t){this.construct(e,t)};t.prototype=new A,t.prototype.constructor=t,w.forEach(a.bind(null,t)),a(t,e),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),D(t.prototype.render);for(var n in _)t.prototype[n]||(t.prototype[n]=null);var r=h.createFactory(t);return r},injection:{injectMixin:function(e){w.push(e)}}};t.exports=L},{"./ReactComponent":35,"./ReactContext":39,"./ReactCurrentOwner":40,"./ReactDescriptor":54,"./ReactDescriptorValidator":55,"./ReactEmptyComponent":56,"./ReactErrorUtils":57,"./ReactOwner":68,"./ReactPerf":69,"./ReactPropTransferer":70,"./ReactPropTypeLocationNames":71,"./ReactPropTypeLocations":72,"./ReactUpdates":84,"./instantiateReactComponent":130,"./invariant":131,"./keyMirror":137,"./mapObject":139,"./merge":141,"./mixInto":144,"./monitorCodeUse":145,"./shouldUpdateReactComponent":149,"./warning":153}],39:[function(e,t){"use strict";var n=e("./merge"),r={current:{},withContext:function(e,t){var o,i=r.current;r.current=n(i,e);try{o=t()}finally{r.current=i}return o}};t.exports=r},{"./merge":141}],40:[function(e,t){"use strict";var n={current:null};t.exports=n},{}],41:[function(e,t){"use strict";function n(e,t){var n=function(e){this.construct(e)};n.prototype=new o(t,e),n.prototype.constructor=n,n.displayName=t;var i=r.createFactory(n);return i}var r=e("./ReactDescriptor"),o=(e("./ReactDescriptorValidator"),e("./ReactDOMComponent")),i=e("./mergeInto"),a=e("./mapObject"),s=a({a:!1,abbr:!1,address:!1,area:!0,article:!1,aside:!1,audio:!1,b:!1,base:!0,bdi:!1,bdo:!1,big:!1,blockquote:!1,body:!1,br:!0,button:!1,canvas:!1,caption:!1,cite:!1,code:!1,col:!0,colgroup:!1,data:!1,datalist:!1,dd:!1,del:!1,details:!1,dfn:!1,dialog:!1,div:!1,dl:!1,dt:!1,em:!1,embed:!0,fieldset:!1,figcaption:!1,figure:!1,footer:!1,form:!1,h1:!1,h2:!1,h3:!1,h4:!1,h5:!1,h6:!1,head:!1,header:!1,hr:!0,html:!1,i:!1,iframe:!1,img:!0,input:!0,ins:!1,kbd:!1,keygen:!0,label:!1,legend:!1,li:!1,link:!0,main:!1,map:!1,mark:!1,menu:!1,menuitem:!1,meta:!0,meter:!1,nav:!1,noscript:!1,object:!1,ol:!1,optgroup:!1,option:!1,output:!1,p:!1,param:!0,picture:!1,pre:!1,progress:!1,q:!1,rp:!1,rt:!1,ruby:!1,s:!1,samp:!1,script:!1,section:!1,select:!1,small:!1,source:!0,span:!1,strong:!1,style:!1,sub:!1,summary:!1,sup:!1,table:!1,tbody:!1,td:!1,textarea:!1,tfoot:!1,th:!1,thead:!1,time:!1,title:!1,tr:!1,track:!0,u:!1,ul:!1,"var":!1,video:!1,wbr:!0,circle:!1,defs:!1,ellipse:!1,g:!1,line:!1,linearGradient:!1,mask:!1,path:!1,pattern:!1,polygon:!1,polyline:!1,radialGradient:!1,rect:!1,stop:!1,svg:!1,text:!1,tspan:!1},n),u={injectComponentClasses:function(e){i(s,e)}};s.injection=u,t.exports=s},{"./ReactDOMComponent":43,"./ReactDescriptor":54,"./ReactDescriptorValidator":55,"./mapObject":139,"./mergeInto":143}],42:[function(e,t){"use strict";var n=e("./AutoFocusMixin"),r=e("./ReactBrowserComponentMixin"),o=e("./ReactCompositeComponent"),i=e("./ReactDOM"),a=e("./keyMirror"),s=i.button,u=a({onClick:!0,onDoubleClick:!0,onMouseDown:!0,onMouseMove:!0,onMouseUp:!0,onClickCapture:!0,onDoubleClickCapture:!0,onMouseDownCapture:!0,onMouseMoveCapture:!0,onMouseUpCapture:!0}),c=o.createClass({displayName:"ReactDOMButton",mixins:[n,r],render:function(){var e={};for(var t in this.props)!this.props.hasOwnProperty(t)||this.props.disabled&&u[t]||(e[t]=this.props[t]);return s(e,this.props.children)}});t.exports=c},{"./AutoFocusMixin":1,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./keyMirror":137}],43:[function(e,t){"use strict";function n(e){e&&(v(null==e.children||null==e.dangerouslySetInnerHTML),v(null==e.style||"object"==typeof e.style))}function r(e,t,n,r){var o=p.findReactContainerForID(e);if(o){var i=o.nodeType===x?o.ownerDocument:o;E(t,i)}r.getPutListenerQueue().enqueuePutListener(e,t,n)}function o(e,t){this._tagOpen="<"+e,this._tagClose=t?"":"</"+e+">",this.tagName=e.toUpperCase()}var i=e("./CSSPropertyOperations"),a=e("./DOMProperty"),s=e("./DOMPropertyOperations"),u=e("./ReactBrowserComponentMixin"),c=e("./ReactComponent"),l=e("./ReactBrowserEventEmitter"),p=e("./ReactMount"),d=e("./ReactMultiChild"),f=e("./ReactPerf"),h=e("./escapeTextForBrowser"),v=e("./invariant"),m=e("./keyOf"),g=e("./merge"),y=e("./mixInto"),C=l.deleteListener,E=l.listenTo,R=l.registrationNameModules,M={string:!0,number:!0},D=m({style:null}),x=1;o.Mixin={mountComponent:f.measure("ReactDOMComponent","mountComponent",function(e,t,r){return c.Mixin.mountComponent.call(this,e,t,r),n(this.props),this._createOpenTagMarkupAndPutListeners(t)+this._createContentMarkup(t)+this._tagClose}),_createOpenTagMarkupAndPutListeners:function(e){var t=this.props,n=this._tagOpen;for(var o in t)if(t.hasOwnProperty(o)){var a=t[o];if(null!=a)if(R.hasOwnProperty(o))r(this._rootNodeID,o,a,e);else{o===D&&(a&&(a=t.style=g(t.style)),a=i.createMarkupForStyles(a));var u=s.createMarkupForProperty(o,a);u&&(n+=" "+u)}}if(e.renderToStaticMarkup)return n+">";var c=s.createMarkupForID(this._rootNodeID);return n+" "+c+">"},_createContentMarkup:function(e){var t=this.props.dangerouslySetInnerHTML;if(null!=t){if(null!=t.__html)return t.__html}else{var n=M[typeof this.props.children]?this.props.children:null,r=null!=n?null:this.props.children;if(null!=n)return h(n);if(null!=r){var o=this.mountChildren(r,e);return o.join("")}}return""},receiveComponent:function(e,t){(e!==this._descriptor||null==e._owner)&&c.Mixin.receiveComponent.call(this,e,t)},updateComponent:f.measure("ReactDOMComponent","updateComponent",function(e,t){n(this._descriptor.props),c.Mixin.updateComponent.call(this,e,t),this._updateDOMProperties(t.props,e),this._updateDOMChildren(t.props,e)}),_updateDOMProperties:function(e,t){var n,o,i,s=this.props;for(n in e)if(!s.hasOwnProperty(n)&&e.hasOwnProperty(n))if(n===D){var u=e[n];for(o in u)u.hasOwnProperty(o)&&(i=i||{},i[o]="")}else R.hasOwnProperty(n)?C(this._rootNodeID,n):(a.isStandardName[n]||a.isCustomAttribute(n))&&c.BackendIDOperations.deletePropertyByID(this._rootNodeID,n);for(n in s){var l=s[n],p=e[n];if(s.hasOwnProperty(n)&&l!==p)if(n===D)if(l&&(l=s.style=g(l)),p){for(o in p)!p.hasOwnProperty(o)||l&&l.hasOwnProperty(o)||(i=i||{},i[o]="");for(o in l)l.hasOwnProperty(o)&&p[o]!==l[o]&&(i=i||{},i[o]=l[o])}else i=l;else R.hasOwnProperty(n)?r(this._rootNodeID,n,l,t):(a.isStandardName[n]||a.isCustomAttribute(n))&&c.BackendIDOperations.updatePropertyByID(this._rootNodeID,n,l)}i&&c.BackendIDOperations.updateStylesByID(this._rootNodeID,i)},_updateDOMChildren:function(e,t){var n=this.props,r=M[typeof e.children]?e.children:null,o=M[typeof n.children]?n.children:null,i=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,a=n.dangerouslySetInnerHTML&&n.dangerouslySetInnerHTML.__html,s=null!=r?null:e.children,u=null!=o?null:n.children,l=null!=r||null!=i,p=null!=o||null!=a;null!=s&&null==u?this.updateChildren(null,t):l&&!p&&this.updateTextContent(""),null!=o?r!==o&&this.updateTextContent(""+o):null!=a?i!==a&&c.BackendIDOperations.updateInnerHTMLByID(this._rootNodeID,a):null!=u&&this.updateChildren(u,t)},unmountComponent:function(){this.unmountChildren(),l.deleteAllListeners(this._rootNodeID),c.Mixin.unmountComponent.call(this)}},y(o,c.Mixin),y(o,o.Mixin),y(o,d.Mixin),y(o,u),t.exports=o},{"./CSSPropertyOperations":5,"./DOMProperty":11,"./DOMPropertyOperations":12,"./ReactBrowserComponentMixin":30,"./ReactBrowserEventEmitter":31,"./ReactComponent":35,"./ReactMount":65,"./ReactMultiChild":66,"./ReactPerf":69,"./escapeTextForBrowser":115,"./invariant":131,"./keyOf":138,"./merge":141,"./mixInto":144}],44:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./LocalEventTrapMixin"),o=e("./ReactBrowserComponentMixin"),i=e("./ReactCompositeComponent"),a=e("./ReactDOM"),s=a.form,u=i.createClass({displayName:"ReactDOMForm",mixins:[o,r],render:function(){return this.transferPropsTo(s(null,this.props.children))},componentDidMount:function(){this.trapBubbledEvent(n.topLevelTypes.topReset,"reset"),this.trapBubbledEvent(n.topLevelTypes.topSubmit,"submit")}});t.exports=u},{"./EventConstants":16,"./LocalEventTrapMixin":26,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41}],45:[function(e,t){"use strict";var n=e("./CSSPropertyOperations"),r=e("./DOMChildrenOperations"),o=e("./DOMPropertyOperations"),i=e("./ReactMount"),a=e("./ReactPerf"),s=e("./invariant"),u=e("./setInnerHTML"),c={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},l={updatePropertyByID:a.measure("ReactDOMIDOperations","updatePropertyByID",function(e,t,n){var r=i.getNode(e);s(!c.hasOwnProperty(t)),null!=n?o.setValueForProperty(r,t,n):o.deleteValueForProperty(r,t)}),deletePropertyByID:a.measure("ReactDOMIDOperations","deletePropertyByID",function(e,t,n){var r=i.getNode(e);s(!c.hasOwnProperty(t)),o.deleteValueForProperty(r,t,n)}),updateStylesByID:a.measure("ReactDOMIDOperations","updateStylesByID",function(e,t){var r=i.getNode(e);n.setValueForStyles(r,t)}),updateInnerHTMLByID:a.measure("ReactDOMIDOperations","updateInnerHTMLByID",function(e,t){var n=i.getNode(e);u(n,t)}),updateTextContentByID:a.measure("ReactDOMIDOperations","updateTextContentByID",function(e,t){var n=i.getNode(e);r.updateTextContent(n,t)}),dangerouslyReplaceNodeWithMarkupByID:a.measure("ReactDOMIDOperations","dangerouslyReplaceNodeWithMarkupByID",function(e,t){var n=i.getNode(e);r.dangerouslyReplaceNodeWithMarkup(n,t)}),dangerouslyProcessChildrenUpdates:a.measure("ReactDOMIDOperations","dangerouslyProcessChildrenUpdates",function(e,t){for(var n=0;n<e.length;n++)e[n].parentNode=i.getNode(e[n].parentID);r.processUpdates(e,t)})};t.exports=l},{"./CSSPropertyOperations":5,"./DOMChildrenOperations":10,"./DOMPropertyOperations":12,"./ReactMount":65,"./ReactPerf":69,"./invariant":131,"./setInnerHTML":147}],46:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./LocalEventTrapMixin"),o=e("./ReactBrowserComponentMixin"),i=e("./ReactCompositeComponent"),a=e("./ReactDOM"),s=a.img,u=i.createClass({displayName:"ReactDOMImg",tagName:"IMG",mixins:[o,r],render:function(){return s(this.props)},componentDidMount:function(){this.trapBubbledEvent(n.topLevelTypes.topLoad,"load"),this.trapBubbledEvent(n.topLevelTypes.topError,"error")}});t.exports=u},{"./EventConstants":16,"./LocalEventTrapMixin":26,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41}],47:[function(e,t){"use strict";var n=e("./AutoFocusMixin"),r=e("./DOMPropertyOperations"),o=e("./LinkedValueUtils"),i=e("./ReactBrowserComponentMixin"),a=e("./ReactCompositeComponent"),s=e("./ReactDOM"),u=e("./ReactMount"),c=e("./invariant"),l=e("./merge"),p=s.input,d={},f=a.createClass({displayName:"ReactDOMInput",mixins:[n,o.Mixin,i],getInitialState:function(){var e=this.props.defaultValue;return{checked:this.props.defaultChecked||!1,value:null!=e?e:null}},shouldComponentUpdate:function(){return!this._isChanging},render:function(){var e=l(this.props);e.defaultChecked=null,e.defaultValue=null;var t=o.getValue(this);e.value=null!=t?t:this.state.value;var n=o.getChecked(this);return e.checked=null!=n?n:this.state.checked,e.onChange=this._handleChange,p(e,this.props.children)},componentDidMount:function(){var e=u.getID(this.getDOMNode());d[e]=this},componentWillUnmount:function(){var e=this.getDOMNode(),t=u.getID(e);delete d[t]},componentDidUpdate:function(){var e=this.getDOMNode();null!=this.props.checked&&r.setValueForProperty(e,"checked",this.props.checked||!1);var t=o.getValue(this);null!=t&&r.setValueForProperty(e,"value",""+t)},_handleChange:function(e){var t,n=o.getOnChange(this);n&&(this._isChanging=!0,t=n.call(this,e),this._isChanging=!1),this.setState({checked:e.target.checked,value:e.target.value});var r=this.props.name;if("radio"===this.props.type&&null!=r){for(var i=this.getDOMNode(),a=i;a.parentNode;)a=a.parentNode;for(var s=a.querySelectorAll("input[name="+JSON.stringify(""+r)+'][type="radio"]'),l=0,p=s.length;p>l;l++){var f=s[l];if(f!==i&&f.form===i.form){var h=u.getID(f);c(h);var v=d[h];c(v),v.setState({checked:!1})}}}return t}});t.exports=f},{"./AutoFocusMixin":1,"./DOMPropertyOperations":12,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./ReactMount":65,"./invariant":131,"./merge":141}],48:[function(e,t){"use strict";var n=e("./ReactBrowserComponentMixin"),r=e("./ReactCompositeComponent"),o=e("./ReactDOM"),i=(e("./warning"),o.option),a=r.createClass({displayName:"ReactDOMOption",mixins:[n],componentWillMount:function(){},render:function(){return i(this.props,this.props.children)}});t.exports=a},{"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./warning":153}],49:[function(e,t){"use strict";function n(e,t){if(null!=e[t])if(e.multiple){if(!Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to <select> must be an array if `multiple` is true.")}else if(Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to <select> must be a scalar value if `multiple` is false.")}function r(e,t){var n,r,o,i=e.props.multiple,a=null!=t?t:e.state.value,s=e.getDOMNode().options;if(i)for(n={},r=0,o=a.length;o>r;++r)n[""+a[r]]=!0;else n=""+a;for(r=0,o=s.length;o>r;r++){var u=i?n.hasOwnProperty(s[r].value):s[r].value===n;u!==s[r].selected&&(s[r].selected=u)}}var o=e("./AutoFocusMixin"),i=e("./LinkedValueUtils"),a=e("./ReactBrowserComponentMixin"),s=e("./ReactCompositeComponent"),u=e("./ReactDOM"),c=e("./merge"),l=u.select,p=s.createClass({displayName:"ReactDOMSelect",mixins:[o,i.Mixin,a],propTypes:{defaultValue:n,value:n},getInitialState:function(){return{value:this.props.defaultValue||(this.props.multiple?[]:"")} 20 },componentWillReceiveProps:function(e){!this.props.multiple&&e.multiple?this.setState({value:[this.state.value]}):this.props.multiple&&!e.multiple&&this.setState({value:this.state.value[0]})},shouldComponentUpdate:function(){return!this._isChanging},render:function(){var e=c(this.props);return e.onChange=this._handleChange,e.value=null,l(e,this.props.children)},componentDidMount:function(){r(this,i.getValue(this))},componentDidUpdate:function(e){var t=i.getValue(this),n=!!e.multiple,o=!!this.props.multiple;(null!=t||n!==o)&&r(this,t)},_handleChange:function(e){var t,n=i.getOnChange(this);n&&(this._isChanging=!0,t=n.call(this,e),this._isChanging=!1);var r;if(this.props.multiple){r=[];for(var o=e.target.options,a=0,s=o.length;s>a;a++)o[a].selected&&r.push(o[a].value)}else r=e.target.value;return this.setState({value:r}),t}});t.exports=p},{"./AutoFocusMixin":1,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./merge":141}],50:[function(e,t){"use strict";function n(e,t,n,r){return e===n&&t===r}function r(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var i=o.text.length,a=i+r;return{start:i,end:a}}function o(e){var t=window.getSelection();if(0===t.rangeCount)return null;var r=t.anchorNode,o=t.anchorOffset,i=t.focusNode,a=t.focusOffset,s=t.getRangeAt(0),u=n(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),c=u?0:s.toString().length,l=s.cloneRange();l.selectNodeContents(e),l.setEnd(s.startContainer,s.startOffset);var p=n(l.startContainer,l.startOffset,l.endContainer,l.endOffset),d=p?0:l.toString().length,f=d+c,h=document.createRange();h.setStart(r,o),h.setEnd(i,a);var v=h.collapsed;return h.detach(),{start:v?f:d,end:v?d:f}}function i(e,t){var n,r,o=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function a(e,t){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i="undefined"==typeof t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var s=u(e,o),l=u(e,i);if(s&&l){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(l.node,l.offset)):(p.setEnd(l.node,l.offset),n.addRange(p)),p.detach()}}var s=e("./ExecutionEnvironment"),u=e("./getNodeForCharacterOffset"),c=e("./getTextContentAccessor"),l=s.canUseDOM&&document.selection,p={getOffsets:l?r:o,setOffsets:l?i:a};t.exports=p},{"./ExecutionEnvironment":22,"./getNodeForCharacterOffset":124,"./getTextContentAccessor":126}],51:[function(e,t){"use strict";var n=e("./AutoFocusMixin"),r=e("./DOMPropertyOperations"),o=e("./LinkedValueUtils"),i=e("./ReactBrowserComponentMixin"),a=e("./ReactCompositeComponent"),s=e("./ReactDOM"),u=e("./invariant"),c=e("./merge"),l=(e("./warning"),s.textarea),p=a.createClass({displayName:"ReactDOMTextarea",mixins:[n,o.Mixin,i],getInitialState:function(){var e=this.props.defaultValue,t=this.props.children;null!=t&&(u(null==e),Array.isArray(t)&&(u(t.length<=1),t=t[0]),e=""+t),null==e&&(e="");var n=o.getValue(this);return{initialValue:""+(null!=n?n:e)}},shouldComponentUpdate:function(){return!this._isChanging},render:function(){var e=c(this.props);return u(null==e.dangerouslySetInnerHTML),e.defaultValue=null,e.value=null,e.onChange=this._handleChange,l(e,this.state.initialValue)},componentDidUpdate:function(){var e=o.getValue(this);if(null!=e){var t=this.getDOMNode();r.setValueForProperty(t,"value",""+e)}},_handleChange:function(e){var t,n=o.getOnChange(this);return n&&(this._isChanging=!0,t=n.call(this,e),this._isChanging=!1),this.setState({value:e.target.value}),t}});t.exports=p},{"./AutoFocusMixin":1,"./DOMPropertyOperations":12,"./LinkedValueUtils":25,"./ReactBrowserComponentMixin":30,"./ReactCompositeComponent":38,"./ReactDOM":41,"./invariant":131,"./merge":141,"./warning":153}],52:[function(e,t){"use strict";function n(){this.reinitializeTransaction()}var r=e("./ReactUpdates"),o=e("./Transaction"),i=e("./emptyFunction"),a=e("./mixInto"),s={initialize:i,close:function(){p.isBatchingUpdates=!1}},u={initialize:i,close:r.flushBatchedUpdates.bind(r)},c=[u,s];a(n,o.Mixin),a(n,{getTransactionWrappers:function(){return c}});var l=new n,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n){var r=p.isBatchingUpdates;p.isBatchingUpdates=!0,r?e(t,n):l.perform(e,null,t,n)}};t.exports=p},{"./ReactUpdates":84,"./Transaction":101,"./emptyFunction":113,"./mixInto":144}],53:[function(e,t){"use strict";function n(){x.EventEmitter.injectReactEventListener(D),x.EventPluginHub.injectEventPluginOrder(s),x.EventPluginHub.injectInstanceHandle(b),x.EventPluginHub.injectMount(O),x.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:S,EnterLeaveEventPlugin:u,ChangeEventPlugin:o,CompositionEventPlugin:a,MobileSafariClickEventPlugin:p,SelectEventPlugin:P,BeforeInputEventPlugin:r}),x.DOM.injectComponentClasses({button:m,form:g,img:y,input:C,option:E,select:R,textarea:M,html:_(v.html),head:_(v.head),body:_(v.body)}),x.CompositeComponent.injectMixin(d),x.DOMProperty.injectDOMPropertyConfig(l),x.DOMProperty.injectDOMPropertyConfig(w),x.EmptyComponent.injectEmptyComponent(v.noscript),x.Updates.injectReconcileTransaction(f.ReactReconcileTransaction),x.Updates.injectBatchingStrategy(h),x.RootIndex.injectCreateReactRootIndex(c.canUseDOM?i.createReactRootIndex:T.createReactRootIndex),x.Component.injectEnvironment(f)}var r=e("./BeforeInputEventPlugin"),o=e("./ChangeEventPlugin"),i=e("./ClientReactRootIndex"),a=e("./CompositionEventPlugin"),s=e("./DefaultEventPluginOrder"),u=e("./EnterLeaveEventPlugin"),c=e("./ExecutionEnvironment"),l=e("./HTMLDOMPropertyConfig"),p=e("./MobileSafariClickEventPlugin"),d=e("./ReactBrowserComponentMixin"),f=e("./ReactComponentBrowserEnvironment"),h=e("./ReactDefaultBatchingStrategy"),v=e("./ReactDOM"),m=e("./ReactDOMButton"),g=e("./ReactDOMForm"),y=e("./ReactDOMImg"),C=e("./ReactDOMInput"),E=e("./ReactDOMOption"),R=e("./ReactDOMSelect"),M=e("./ReactDOMTextarea"),D=e("./ReactEventListener"),x=e("./ReactInjection"),b=e("./ReactInstanceHandles"),O=e("./ReactMount"),P=e("./SelectEventPlugin"),T=e("./ServerReactRootIndex"),S=e("./SimpleEventPlugin"),w=e("./SVGDOMPropertyConfig"),_=e("./createFullPageComponent");t.exports={inject:n}},{"./BeforeInputEventPlugin":2,"./ChangeEventPlugin":7,"./ClientReactRootIndex":8,"./CompositionEventPlugin":9,"./DefaultEventPluginOrder":14,"./EnterLeaveEventPlugin":15,"./ExecutionEnvironment":22,"./HTMLDOMPropertyConfig":23,"./MobileSafariClickEventPlugin":27,"./ReactBrowserComponentMixin":30,"./ReactComponentBrowserEnvironment":36,"./ReactDOM":41,"./ReactDOMButton":42,"./ReactDOMForm":44,"./ReactDOMImg":46,"./ReactDOMInput":47,"./ReactDOMOption":48,"./ReactDOMSelect":49,"./ReactDOMTextarea":51,"./ReactDefaultBatchingStrategy":52,"./ReactEventListener":59,"./ReactInjection":60,"./ReactInstanceHandles":62,"./ReactMount":65,"./SVGDOMPropertyConfig":86,"./SelectEventPlugin":87,"./ServerReactRootIndex":88,"./SimpleEventPlugin":89,"./createFullPageComponent":109}],54:[function(e,t){"use strict";function n(e,t){if("function"==typeof t)for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];if("function"==typeof r){var o=r.bind(t);for(var i in r)r.hasOwnProperty(i)&&(o[i]=r[i]);e[n]=o}else e[n]=r}}var r=e("./ReactContext"),o=e("./ReactCurrentOwner"),i=e("./merge"),a=(e("./warning"),function(){});a.createFactory=function(e){var t=Object.create(a.prototype),s=function(e,n){null==e?e={}:"object"==typeof e&&(e=i(e));var a=arguments.length-1;if(1===a)e.children=n;else if(a>1){for(var s=Array(a),u=0;a>u;u++)s[u]=arguments[u+1];e.children=s}var c=Object.create(t);return c._owner=o.current,c._context=r.current,c.props=e,c};return s.prototype=t,s.type=e,t.type=e,n(s,e),t.constructor=s,s},a.cloneAndReplaceProps=function(e,t){var n=Object.create(e.constructor.prototype);return n._owner=e._owner,n._context=e._context,n.props=t,n},a.isValidFactory=function(e){return"function"==typeof e&&e.prototype instanceof a},a.isValidDescriptor=function(e){return e instanceof a},t.exports=a},{"./ReactContext":39,"./ReactCurrentOwner":40,"./merge":141,"./warning":153}],55:[function(e,t){"use strict";function n(){var e=p.current;return e&&e.constructor.displayName||void 0}function r(e,t){e._store.validated||null!=e.props.key||(e._store.validated=!0,i("react_key_warning",'Each child in an array should have a unique "key" prop.',e,t))}function o(e,t,n){m.test(e)&&i("react_numeric_key_warning","Child objects should have non-numeric keys so ordering is preserved.",t,n)}function i(e,t,r,o){var i=n(),a=o.displayName,s=i||a,u=f[e];if(!u.hasOwnProperty(s)){u[s]=!0,t+=i?" Check the render method of "+i+".":" Check the renderComponent call using <"+a+">.";var c=null;r._owner&&r._owner!==p.current&&(c=r._owner.constructor.displayName,t+=" It was passed a child from "+c+"."),t+=" See http://fb.me/react-warning-keys for more information.",d(e,{component:s,componentOwner:c}),console.warn(t)}}function a(){var e=n()||"";h.hasOwnProperty(e)||(h[e]=!0,d("react_object_map_children"))}function s(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++){var i=e[n];c.isValidDescriptor(i)&&r(i,t)}else if(c.isValidDescriptor(e))e._store.validated=!0;else if(e&&"object"==typeof e){a();for(var s in e)o(s,e[s],t)}}function u(e,t,n,r){for(var o in t)if(t.hasOwnProperty(o)){var i;try{i=t[o](n,o,e,r)}catch(a){i=a}i instanceof Error&&!(i.message in v)&&(v[i.message]=!0,d("react_failed_descriptor_type_check",{message:i.message}))}}var c=e("./ReactDescriptor"),l=e("./ReactPropTypeLocations"),p=e("./ReactCurrentOwner"),d=e("./monitorCodeUse"),f={react_key_warning:{},react_numeric_key_warning:{}},h={},v={},m=/^\d+$/,g={createFactory:function(e,t,n){var r=function(){for(var r=e.apply(this,arguments),o=1;o<arguments.length;o++)s(arguments[o],r.type);var i=r.type.displayName;return t&&u(i,t,r.props,l.prop),n&&u(i,n,r._context,l.context),r};r.prototype=e.prototype,r.type=e.type;for(var o in e)e.hasOwnProperty(o)&&(r[o]=e[o]);return r}};t.exports=g},{"./ReactCurrentOwner":40,"./ReactDescriptor":54,"./ReactPropTypeLocations":72,"./monitorCodeUse":145}],56:[function(e,t){"use strict";function n(){return s(a),a()}function r(e){u[e]=!0}function o(e){delete u[e]}function i(e){return u[e]}var a,s=e("./invariant"),u={},c={injectEmptyComponent:function(e){a=e}},l={deregisterNullComponentID:o,getEmptyComponent:n,injection:c,isNullComponentID:i,registerNullComponentID:r};t.exports=l},{"./invariant":131}],57:[function(e,t){"use strict";var n={guard:function(e){return e}};t.exports=n},{}],58:[function(e,t){"use strict";function n(e){r.enqueueEvents(e),r.processEventQueue()}var r=e("./EventPluginHub"),o={handleTopLevel:function(e,t,o,i){var a=r.extractEvents(e,t,o,i);n(a)}};t.exports=o},{"./EventPluginHub":18}],59:[function(e,t){"use strict";function n(e){var t=l.getID(e),n=c.getReactRootIDFromNodeID(t),r=l.findReactContainerForID(n),o=l.getFirstReactDOM(r);return o}function r(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function o(e){for(var t=l.getFirstReactDOM(d(e.nativeEvent))||window,r=t;r;)e.ancestors.push(r),r=n(r);for(var o=0,i=e.ancestors.length;i>o;o++){t=e.ancestors[o];var a=l.getID(t)||"";v._handleTopLevel(e.topLevelType,t,a,e.nativeEvent)}}function i(e){var t=f(window);e(t)}var a=e("./EventListener"),s=e("./ExecutionEnvironment"),u=e("./PooledClass"),c=e("./ReactInstanceHandles"),l=e("./ReactMount"),p=e("./ReactUpdates"),d=e("./getEventTarget"),f=e("./getUnboundedScrollPosition"),h=e("./mixInto");h(r,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),u.addPoolingTo(r,u.twoArgumentPooler);var v={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:s.canUseDOM?window:null,setHandleTopLevel:function(e){v._handleTopLevel=e},setEnabled:function(e){v._enabled=!!e},isEnabled:function(){return v._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?a.listen(r,t,v.dispatchEvent.bind(null,e)):void 0},trapCapturedEvent:function(e,t,n){var r=n;return r?a.capture(r,t,v.dispatchEvent.bind(null,e)):void 0},monitorScrollValue:function(e){var t=i.bind(null,e);a.listen(window,"scroll",t),a.listen(window,"resize",t)},dispatchEvent:function(e,t){if(v._enabled){var n=r.getPooled(e,t);try{p.batchedUpdates(o,n)}finally{r.release(n)}}}};t.exports=v},{"./EventListener":17,"./ExecutionEnvironment":22,"./PooledClass":28,"./ReactInstanceHandles":62,"./ReactMount":65,"./ReactUpdates":84,"./getEventTarget":122,"./getUnboundedScrollPosition":127,"./mixInto":144}],60:[function(e,t){"use strict";var n=e("./DOMProperty"),r=e("./EventPluginHub"),o=e("./ReactComponent"),i=e("./ReactCompositeComponent"),a=e("./ReactDOM"),s=e("./ReactEmptyComponent"),u=e("./ReactBrowserEventEmitter"),c=e("./ReactPerf"),l=e("./ReactRootIndex"),p=e("./ReactUpdates"),d={Component:o.injection,CompositeComponent:i.injection,DOMProperty:n.injection,EmptyComponent:s.injection,EventPluginHub:r.injection,DOM:a.injection,EventEmitter:u.injection,Perf:c.injection,RootIndex:l.injection,Updates:p.injection};t.exports=d},{"./DOMProperty":11,"./EventPluginHub":18,"./ReactBrowserEventEmitter":31,"./ReactComponent":35,"./ReactCompositeComponent":38,"./ReactDOM":41,"./ReactEmptyComponent":56,"./ReactPerf":69,"./ReactRootIndex":76,"./ReactUpdates":84}],61:[function(e,t){"use strict";function n(e){return o(document.documentElement,e)}var r=e("./ReactDOMSelection"),o=e("./containsNode"),i=e("./focusNode"),a=e("./getActiveElement"),s={hasSelectionCapabilities:function(e){return e&&("INPUT"===e.nodeName&&"text"===e.type||"TEXTAREA"===e.nodeName||"true"===e.contentEditable)},getSelectionInformation:function(){var e=a();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t=a(),r=e.focusedElem,o=e.selectionRange;t!==r&&n(r)&&(s.hasSelectionCapabilities(r)&&s.setSelection(r,o),i(r))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&"INPUT"===e.nodeName){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=r.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,o=t.end;if("undefined"==typeof o&&(o=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(o,e.value.length);else if(document.selection&&"INPUT"===e.nodeName){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",o-n),i.select()}else r.setOffsets(e,t)}};t.exports=s},{"./ReactDOMSelection":50,"./containsNode":106,"./focusNode":117,"./getActiveElement":119}],62:[function(e,t){"use strict";function n(e){return d+e.toString(36)}function r(e,t){return e.charAt(t)===d||t===e.length}function o(e){return""===e||e.charAt(0)===d&&e.charAt(e.length-1)!==d}function i(e,t){return 0===t.indexOf(e)&&r(t,e.length)}function a(e){return e?e.substr(0,e.lastIndexOf(d)):""}function s(e,t){if(p(o(e)&&o(t)),p(i(e,t)),e===t)return e;for(var n=e.length+f,a=n;a<t.length&&!r(t,a);a++);return t.substr(0,a)}function u(e,t){var n=Math.min(e.length,t.length);if(0===n)return"";for(var i=0,a=0;n>=a;a++)if(r(e,a)&&r(t,a))i=a;else if(e.charAt(a)!==t.charAt(a))break;var s=e.substr(0,i);return p(o(s)),s}function c(e,t,n,r,o,u){e=e||"",t=t||"",p(e!==t);var c=i(t,e);p(c||i(e,t));for(var l=0,d=c?a:s,f=e;;f=d(f,t)){var v;if(o&&f===e||u&&f===t||(v=n(f,c,r)),v===!1||f===t)break;p(l++<h)}}var l=e("./ReactRootIndex"),p=e("./invariant"),d=".",f=d.length,h=100,v={createReactRootID:function(){return n(l.createReactRootIndex())},createReactID:function(e,t){return e+t},getReactRootIDFromNodeID:function(e){if(e&&e.charAt(0)===d&&e.length>1){var t=e.indexOf(d,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var i=u(e,t);i!==e&&c(e,i,n,r,!1,!0),i!==t&&c(i,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(c("",e,t,n,!0,!1),c(e,"",t,n,!1,!0))},traverseAncestors:function(e,t,n){c("",e,t,n,!0,!1)},_getFirstCommonAncestorID:u,_getNextDescendantID:s,isAncestorIDOf:i,SEPARATOR:d};t.exports=v},{"./ReactRootIndex":76,"./invariant":131}],63:[function(e,t){"use strict";function n(e,t){this.value=e,this.requestChange=t}function r(e){var t={value:"undefined"==typeof e?o.PropTypes.any.isRequired:e.isRequired,requestChange:o.PropTypes.func.isRequired};return o.PropTypes.shape(t)}var o=e("./React");n.PropTypes={link:r},t.exports=n},{"./React":29}],64:[function(e,t){"use strict";var n=e("./adler32"),r={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=n(e);return e.replace(">"," "+r.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var o=t.getAttribute(r.CHECKSUM_ATTR_NAME);o=o&&parseInt(o,10);var i=n(e);return i===o}};t.exports=r},{"./adler32":104}],65:[function(e,t){"use strict";function n(e){var t=g(e);return t&&w.getID(t)}function r(e){var t=o(e);if(t)if(D.hasOwnProperty(t)){var n=D[t];n!==e&&(C(!s(n,t)),D[t]=e)}else D[t]=e;return t}function o(e){return e&&e.getAttribute&&e.getAttribute(M)||""}function i(e,t){var n=o(e);n!==t&&delete D[n],e.setAttribute(M,t),D[t]=e}function a(e){return D.hasOwnProperty(e)&&s(D[e],e)||(D[e]=w.findReactNodeByID(e)),D[e]}function s(e,t){if(e){C(o(e)===t);var n=w.findReactContainerForID(t);if(n&&m(n,e))return!0}return!1}function u(e){delete D[e]}function c(e){var t=D[e];return t&&s(t,e)?void(S=t):!1}function l(e){S=null,h.traverseAncestors(e,c);var t=S;return S=null,t}var p=e("./DOMProperty"),d=e("./ReactBrowserEventEmitter"),f=(e("./ReactCurrentOwner"),e("./ReactDescriptor")),h=e("./ReactInstanceHandles"),v=e("./ReactPerf"),m=e("./containsNode"),g=e("./getReactRootElementInContainer"),y=e("./instantiateReactComponent"),C=e("./invariant"),E=e("./shouldUpdateReactComponent"),R=(e("./warning"),h.SEPARATOR),M=p.ID_ATTRIBUTE_NAME,D={},x=1,b=9,O={},P={},T=[],S=null,w={_instancesByReactRootID:O,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){var o=t.props;return w.scrollMonitor(n,function(){e.replaceProps(o,r)}),e},_registerComponent:function(e,t){C(t&&(t.nodeType===x||t.nodeType===b)),d.ensureScrollValueMonitoring();var n=w.registerContainer(t);return O[n]=e,n},_renderNewRootComponent:v.measure("ReactMount","_renderNewRootComponent",function(e,t,n){var r=y(e),o=w._registerComponent(r,t);return r.mountComponentIntoNode(o,t,n),r}),renderComponent:function(e,t,r){C(f.isValidDescriptor(e));var o=O[n(t)];if(o){var i=o._descriptor;if(E(i,e))return w._updateRootComponent(o,e,t,r);w.unmountComponentAtNode(t)}var a=g(t),s=a&&w.isRenderedByReact(a),u=s&&!o,c=w._renderNewRootComponent(e,t,u);return r&&r.call(c),c},constructAndRenderComponent:function(e,t,n){return w.renderComponent(e(t),n)},constructAndRenderComponentByID:function(e,t,n){var r=document.getElementById(n);return C(r),w.constructAndRenderComponent(e,t,r)},registerContainer:function(e){var t=n(e);return t&&(t=h.getReactRootIDFromNodeID(t)),t||(t=h.createReactRootID()),P[t]=e,t},unmountComponentAtNode:function(e){var t=n(e),r=O[t];return r?(w.unmountComponentFromNode(r,e),delete O[t],delete P[t],!0):!1},unmountComponentFromNode:function(e,t){for(e.unmountComponent(),t.nodeType===b&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)},findReactContainerForID:function(e){var t=h.getReactRootIDFromNodeID(e),n=P[t];return n},findReactNodeByID:function(e){var t=w.findReactContainerForID(e);return w.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=w.getID(e);return t?t.charAt(0)===R:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if(w.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){var n=T,r=0,o=l(t)||e;for(n[0]=o.firstChild,n.length=1;r<n.length;){for(var i,a=n[r++];a;){var s=w.getID(a);s?t===s?i=a:h.isAncestorIDOf(s,t)&&(n.length=r=0,n.push(a.firstChild)):n.push(a.firstChild),a=a.nextSibling}if(i)return n.length=0,i}n.length=0,C(!1)},getReactRootID:n,getID:r,setID:i,getNode:a,purgeID:u};t.exports=w},{"./DOMProperty":11,"./ReactBrowserEventEmitter":31,"./ReactCurrentOwner":40,"./ReactDescriptor":54,"./ReactInstanceHandles":62,"./ReactPerf":69,"./containsNode":106,"./getReactRootElementInContainer":125,"./instantiateReactComponent":130,"./invariant":131,"./shouldUpdateReactComponent":149,"./warning":153}],66:[function(e,t){"use strict";function n(e,t,n){h.push({parentID:e,parentNode:null,type:c.INSERT_MARKUP,markupIndex:v.push(t)-1,textContent:null,fromIndex:null,toIndex:n})}function r(e,t,n){h.push({parentID:e,parentNode:null,type:c.MOVE_EXISTING,markupIndex:null,textContent:null,fromIndex:t,toIndex:n})}function o(e,t){h.push({parentID:e,parentNode:null,type:c.REMOVE_NODE,markupIndex:null,textContent:null,fromIndex:t,toIndex:null})}function i(e,t){h.push({parentID:e,parentNode:null,type:c.TEXT_CONTENT,markupIndex:null,textContent:t,fromIndex:null,toIndex:null})}function a(){h.length&&(u.BackendIDOperations.dangerouslyProcessChildrenUpdates(h,v),s())}function s(){h.length=0,v.length=0}var u=e("./ReactComponent"),c=e("./ReactMultiChildUpdateTypes"),l=e("./flattenChildren"),p=e("./instantiateReactComponent"),d=e("./shouldUpdateReactComponent"),f=0,h=[],v=[],m={Mixin:{mountChildren:function(e,t){var n=l(e),r=[],o=0;this._renderedChildren=n;for(var i in n){var a=n[i];if(n.hasOwnProperty(i)){var s=p(a);n[i]=s;var u=this._rootNodeID+i,c=s.mountComponent(u,t,this._mountDepth+1);s._mountIndex=o,r.push(c),o++}}return r},updateTextContent:function(e){f++;var t=!0;try{var n=this._renderedChildren;for(var r in n)n.hasOwnProperty(r)&&this._unmountChildByName(n[r],r);this.setTextContent(e),t=!1}finally{f--,f||(t?s():a())}},updateChildren:function(e,t){f++;var n=!0;try{this._updateChildren(e,t),n=!1}finally{f--,f||(n?s():a())}},_updateChildren:function(e,t){var n=l(e),r=this._renderedChildren;if(n||r){var o,i=0,a=0;for(o in n)if(n.hasOwnProperty(o)){var s=r&&r[o],u=s&&s._descriptor,c=n[o];if(d(u,c))this.moveChild(s,a,i),i=Math.max(s._mountIndex,i),s.receiveComponent(c,t),s._mountIndex=a;else{s&&(i=Math.max(s._mountIndex,i),this._unmountChildByName(s,o));var f=p(c);this._mountChildByNameAtIndex(f,o,a,t)}a++}for(o in r)!r.hasOwnProperty(o)||n&&n[o]||this._unmountChildByName(r[o],o)}},unmountChildren:function(){var e=this._renderedChildren;for(var t in e){var n=e[t];n.unmountComponent&&n.unmountComponent()}this._renderedChildren=null},moveChild:function(e,t,n){e._mountIndex<n&&r(this._rootNodeID,e._mountIndex,t)},createChild:function(e,t){n(this._rootNodeID,t,e._mountIndex)},removeChild:function(e){o(this._rootNodeID,e._mountIndex)},setTextContent:function(e){i(this._rootNodeID,e)},_mountChildByNameAtIndex:function(e,t,n,r){var o=this._rootNodeID+t,i=e.mountComponent(o,r,this._mountDepth+1);e._mountIndex=n,this.createChild(e,i),this._renderedChildren=this._renderedChildren||{},this._renderedChildren[t]=e},_unmountChildByName:function(e,t){this.removeChild(e),e._mountIndex=null,e.unmountComponent(),delete this._renderedChildren[t]}}};t.exports=m},{"./ReactComponent":35,"./ReactMultiChildUpdateTypes":67,"./flattenChildren":116,"./instantiateReactComponent":130,"./shouldUpdateReactComponent":149}],67:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({INSERT_MARKUP:null,MOVE_EXISTING:null,REMOVE_NODE:null,TEXT_CONTENT:null});t.exports=r},{"./keyMirror":137}],68:[function(e,t){"use strict";var n=e("./emptyObject"),r=e("./invariant"),o={isValidOwner:function(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)},addComponentAsRefTo:function(e,t,n){r(o.isValidOwner(n)),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){r(o.isValidOwner(n)),n.refs[t]===e&&n.detachRef(t)},Mixin:{construct:function(){this.refs=n},attachRef:function(e,t){r(t.isOwnedBy(this));var o=this.refs===n?this.refs={}:this.refs;o[e]=t},detachRef:function(e){delete this.refs[e]}}};t.exports=o},{"./emptyObject":114,"./invariant":131}],69:[function(e,t){"use strict";function n(e,t,n){return n}var r={enableMeasure:!1,storedMeasure:n,measure:function(e,t,n){return n},injection:{injectMeasure:function(e){r.storedMeasure=e}}};t.exports=r},{}],70:[function(e,t){"use strict";function n(e){return function(t,n,r){t[n]=t.hasOwnProperty(n)?e(t[n],r):r}}function r(e,t){for(var n in t)if(t.hasOwnProperty(n)){var r=c[n];r&&c.hasOwnProperty(n)?r(e,n,t[n]):e.hasOwnProperty(n)||(e[n]=t[n])}return e}var o=e("./emptyFunction"),i=e("./invariant"),a=e("./joinClasses"),s=e("./merge"),u=n(function(e,t){return s(t,e)}),c={children:o,className:n(a),key:o,ref:o,style:u},l={TransferStrategies:c,mergeProps:function(e,t){return r(s(e),t)},Mixin:{transferPropsTo:function(e){return i(e._owner===this),r(e.props,this.props),e}}};t.exports=l},{"./emptyFunction":113,"./invariant":131,"./joinClasses":136,"./merge":141}],71:[function(e,t){"use strict";var n={};t.exports=n},{}],72:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({prop:null,context:null,childContext:null});t.exports=r},{"./keyMirror":137}],73:[function(e,t){"use strict";function n(e){function t(t,n,r,o,i){if(o=o||C,null!=n[r])return e(n,r,o,i);var a=g[i];return t?new Error("Required "+a+" `"+r+"` was not specified in "+("`"+o+"`.")):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function r(e){function t(t,n,r,o){var i=t[n],a=h(i);if(a!==e){var s=g[o],u=v(i);return new Error("Invalid "+s+" `"+n+"` of type `"+u+"` "+("supplied to `"+r+"`, expected `"+e+"`."))}}return n(t)}function o(){return n(y.thatReturns())}function i(e){function t(t,n,r,o){var i=t[n];if(!Array.isArray(i)){var a=g[o],s=h(i);return new Error("Invalid "+a+" `"+n+"` of type "+("`"+s+"` supplied to `"+r+"`, expected an array."))}for(var u=0;u<i.length;u++){var c=e(i,u,r,o);if(c instanceof Error)return c}}return n(t)}function a(){function e(e,t,n,r){if(!m.isValidDescriptor(e[t])){var o=g[r];return new Error("Invalid "+o+" `"+t+"` supplied to "+("`"+n+"`, expected a React component."))}}return n(e)}function s(e){function t(t,n,r,o){if(!(t[n]instanceof e)){var i=g[o],a=e.name||C;return new Error("Invalid "+i+" `"+n+"` supplied to "+("`"+r+"`, expected instance of `"+a+"`."))}}return n(t)}function u(e){function t(t,n,r,o){for(var i=t[n],a=0;a<e.length;a++)if(i===e[a])return;var s=g[o],u=JSON.stringify(e);return new Error("Invalid "+s+" `"+n+"` of value `"+i+"` "+("supplied to `"+r+"`, expected one of "+u+"."))}return n(t)}function c(e){function t(t,n,r,o){var i=t[n],a=h(i);if("object"!==a){var s=g[o];return new Error("Invalid "+s+" `"+n+"` of type "+("`"+a+"` supplied to `"+r+"`, expected an object."))}for(var u in i)if(i.hasOwnProperty(u)){var c=e(i,u,r,o);if(c instanceof Error)return c}}return n(t)}function l(e){function t(t,n,r,o){for(var i=0;i<e.length;i++){var a=e[i];if(null==a(t,n,r,o))return}var s=g[o];return new Error("Invalid "+s+" `"+n+"` supplied to "+("`"+r+"`."))}return n(t)}function p(){function e(e,t,n,r){if(!f(e[t])){var o=g[r];return new Error("Invalid "+o+" `"+t+"` supplied to "+("`"+n+"`, expected a renderable prop."))}}return n(e)}function d(e){function t(t,n,r,o){var i=t[n],a=h(i);if("object"!==a){var s=g[o];return new Error("Invalid "+s+" `"+n+"` of type `"+a+"` "+("supplied to `"+r+"`, expected `object`."))}for(var u in e){var c=e[u];if(c){var l=c(i,u,r,o);if(l)return l}}}return n(t,"expected `object`")}function f(e){switch(typeof e){case"number":case"string":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(f);if(m.isValidDescriptor(e))return!0;for(var t in e)if(!f(e[t]))return!1;return!0;default:return!1}}function h(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":t}function v(e){var t=h(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}var m=e("./ReactDescriptor"),g=e("./ReactPropTypeLocationNames"),y=e("./emptyFunction"),C="<<anonymous>>",E={array:r("array"),bool:r("boolean"),func:r("function"),number:r("number"),object:r("object"),string:r("string"),any:o(),arrayOf:i,component:a(),instanceOf:s,objectOf:c,oneOf:u,oneOfType:l,renderable:p(),shape:d};t.exports=E},{"./ReactDescriptor":54,"./ReactPropTypeLocationNames":71,"./emptyFunction":113}],74:[function(e,t){"use strict";function n(){this.listenersToPut=[]}var r=e("./PooledClass"),o=e("./ReactBrowserEventEmitter"),i=e("./mixInto");i(n,{enqueuePutListener:function(e,t,n){this.listenersToPut.push({rootNodeID:e,propKey:t,propValue:n})},putListeners:function(){for(var e=0;e<this.listenersToPut.length;e++){var t=this.listenersToPut[e];o.putListener(t.rootNodeID,t.propKey,t.propValue)}},reset:function(){this.listenersToPut.length=0},destructor:function(){this.reset()}}),r.addPoolingTo(n),t.exports=n},{"./PooledClass":28,"./ReactBrowserEventEmitter":31,"./mixInto":144}],75:[function(e,t){"use strict";function n(){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=r.getPooled(null),this.putListenerQueue=s.getPooled()}var r=e("./CallbackQueue"),o=e("./PooledClass"),i=e("./ReactBrowserEventEmitter"),a=e("./ReactInputSelection"),s=e("./ReactPutListenerQueue"),u=e("./Transaction"),c=e("./mixInto"),l={initialize:a.getSelectionInformation,close:a.restoreSelection},p={initialize:function(){var e=i.isEnabled();return i.setEnabled(!1),e},close:function(e){i.setEnabled(e)}},d={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},f={initialize:function(){this.putListenerQueue.reset()},close:function(){this.putListenerQueue.putListeners()}},h=[f,l,p,d],v={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},getPutListenerQueue:function(){return this.putListenerQueue},destructor:function(){r.release(this.reactMountReady),this.reactMountReady=null,s.release(this.putListenerQueue),this.putListenerQueue=null}};c(n,u.Mixin),c(n,v),o.addPoolingTo(n),t.exports=n},{"./CallbackQueue":6,"./PooledClass":28,"./ReactBrowserEventEmitter":31,"./ReactInputSelection":61,"./ReactPutListenerQueue":74,"./Transaction":101,"./mixInto":144}],76:[function(e,t){"use strict";var n={injectCreateReactRootIndex:function(e){r.createReactRootIndex=e}},r={createReactRootIndex:null,injection:n};t.exports=r},{}],77:[function(e,t){"use strict";function n(e){c(o.isValidDescriptor(e)),c(!(2===arguments.length&&"function"==typeof arguments[1]));var t;try{var n=i.createReactRootID();return t=s.getPooled(!1),t.perform(function(){var r=u(e),o=r.mountComponent(n,t,0);return a.addChecksumToMarkup(o)},null)}finally{s.release(t)}}function r(e){c(o.isValidDescriptor(e));var t;try{var n=i.createReactRootID();return t=s.getPooled(!0),t.perform(function(){var r=u(e);return r.mountComponent(n,t,0)},null)}finally{s.release(t)}}var o=e("./ReactDescriptor"),i=e("./ReactInstanceHandles"),a=e("./ReactMarkupChecksum"),s=e("./ReactServerRenderingTransaction"),u=e("./instantiateReactComponent"),c=e("./invariant");t.exports={renderComponentToString:n,renderComponentToStaticMarkup:r}},{"./ReactDescriptor":54,"./ReactInstanceHandles":62,"./ReactMarkupChecksum":64,"./ReactServerRenderingTransaction":78,"./instantiateReactComponent":130,"./invariant":131}],78:[function(e,t){"use strict";function n(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.reactMountReady=o.getPooled(null),this.putListenerQueue=i.getPooled()}var r=e("./PooledClass"),o=e("./CallbackQueue"),i=e("./ReactPutListenerQueue"),a=e("./Transaction"),s=e("./emptyFunction"),u=e("./mixInto"),c={initialize:function(){this.reactMountReady.reset()},close:s},l={initialize:function(){this.putListenerQueue.reset()},close:s},p=[l,c],d={getTransactionWrappers:function(){return p},getReactMountReady:function(){return this.reactMountReady},getPutListenerQueue:function(){return this.putListenerQueue},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null,i.release(this.putListenerQueue),this.putListenerQueue=null 21 } };u(n,a.Mixin),u(n,d),r.addPoolingTo(n),t.exports=n},{"./CallbackQueue":6,"./PooledClass":28,"./ReactPutListenerQueue":74,"./Transaction":101,"./emptyFunction":113,"./mixInto":144}],79:[function(e,t){"use strict";function n(e,t){var n={};return function(r){n[t]=r,e.setState(n)}}var r={createStateSetter:function(e,t){return function(n,r,o,i,a,s){var u=t.call(e,n,r,o,i,a,s);u&&e.setState(u)}},createStateKeySetter:function(e,t){var r=e.__keySetters||(e.__keySetters={});return r[t]||(r[t]=n(e,t))}};r.Mixin={createStateSetter:function(e){return r.createStateSetter(this,e)},createStateKeySetter:function(e){return r.createStateKeySetter(this,e)}},t.exports=r},{}],80:[function(e,t){"use strict";var n=e("./DOMPropertyOperations"),r=e("./ReactBrowserComponentMixin"),o=e("./ReactComponent"),i=e("./ReactDescriptor"),a=e("./escapeTextForBrowser"),s=e("./mixInto"),u=function(e){this.construct(e)};s(u,o.Mixin),s(u,r),s(u,{mountComponent:function(e,t,r){o.Mixin.mountComponent.call(this,e,t,r);var i=a(this.props);return t.renderToStaticMarkup?i:"<span "+n.createMarkupForID(e)+">"+i+"</span>"},receiveComponent:function(e){var t=e.props;t!==this.props&&(this.props=t,o.BackendIDOperations.updateTextContentByID(this._rootNodeID,t))}}),t.exports=i.createFactory(u)},{"./DOMPropertyOperations":12,"./ReactBrowserComponentMixin":30,"./ReactComponent":35,"./ReactDescriptor":54,"./escapeTextForBrowser":115,"./mixInto":144}],81:[function(e,t){"use strict";var n=e("./ReactChildren"),r={getChildMapping:function(e){return n.map(e,function(e){return e})},mergeChildMappings:function(e,t){function n(n){return t.hasOwnProperty(n)?t[n]:e[n]}e=e||{},t=t||{};var r={},o=[];for(var i in e)t.hasOwnProperty(i)?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var u in t){if(r.hasOwnProperty(u))for(a=0;a<r[u].length;a++){var c=r[u][a];s[r[u][a]]=n(c)}s[u]=n(u)}for(a=0;a<o.length;a++)s[o[a]]=n(o[a]);return s}};t.exports=r},{"./ReactChildren":34}],82:[function(e,t){"use strict";function n(){var e=document.createElement("div"),t=e.style;"AnimationEvent"in window||delete a.animationend.animation,"TransitionEvent"in window||delete a.transitionend.transition;for(var n in a){var r=a[n];for(var o in r)if(o in t){s.push(r[o]);break}}}function r(e,t,n){e.addEventListener(t,n,!1)}function o(e,t,n){e.removeEventListener(t,n,!1)}var i=e("./ExecutionEnvironment"),a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},s=[];i.canUseDOM&&n();var u={addEndEventListener:function(e,t){return 0===s.length?void window.setTimeout(t,0):void s.forEach(function(n){r(e,n,t)})},removeEndEventListener:function(e,t){0!==s.length&&s.forEach(function(n){o(e,n,t)})}};t.exports=u},{"./ExecutionEnvironment":22}],83:[function(e,t){"use strict";var n=e("./React"),r=e("./ReactTransitionChildMapping"),o=e("./cloneWithProps"),i=e("./emptyFunction"),a=e("./merge"),s=n.createClass({displayName:"ReactTransitionGroup",propTypes:{component:n.PropTypes.func,childFactory:n.PropTypes.func},getDefaultProps:function(){return{component:n.DOM.span,childFactory:i.thatReturnsArgument}},getInitialState:function(){return{children:r.getChildMapping(this.props.children)}},componentWillReceiveProps:function(e){var t=r.getChildMapping(e.children),n=this.state.children;this.setState({children:r.mergeChildMappings(n,t)});var o;for(o in t){var i=n&&n.hasOwnProperty(o);!t[o]||i||this.currentlyTransitioningKeys[o]||this.keysToEnter.push(o)}for(o in n){var a=t&&t.hasOwnProperty(o);!n[o]||a||this.currentlyTransitioningKeys[o]||this.keysToLeave.push(o)}},componentWillMount:function(){this.currentlyTransitioningKeys={},this.keysToEnter=[],this.keysToLeave=[]},componentDidUpdate:function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)},performEnter:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillEnter?t.componentWillEnter(this._handleDoneEntering.bind(this,e)):this._handleDoneEntering(e)},_handleDoneEntering:function(e){var t=this.refs[e];t.componentDidEnter&&t.componentDidEnter(),delete this.currentlyTransitioningKeys[e];var n=r.getChildMapping(this.props.children);n&&n.hasOwnProperty(e)||this.performLeave(e)},performLeave:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillLeave?t.componentWillLeave(this._handleDoneLeaving.bind(this,e)):this._handleDoneLeaving(e)},_handleDoneLeaving:function(e){var t=this.refs[e];t.componentDidLeave&&t.componentDidLeave(),delete this.currentlyTransitioningKeys[e];var n=r.getChildMapping(this.props.children);if(n&&n.hasOwnProperty(e))this.performEnter(e);else{var o=a(this.state.children);delete o[e],this.setState({children:o})}},render:function(){var e={};for(var t in this.state.children){var n=this.state.children[t];n&&(e[t]=o(this.props.childFactory(n),{ref:t}))}return this.transferPropsTo(this.props.component(null,e))}});t.exports=s},{"./React":29,"./ReactTransitionChildMapping":81,"./cloneWithProps":105,"./emptyFunction":113,"./merge":141}],84:[function(e,t){"use strict";function n(){d(R.ReactReconcileTransaction&&v)}function r(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=u.getPooled(null),this.reconcileTransaction=R.ReactReconcileTransaction.getPooled()}function o(e,t,r){n(),v.batchedUpdates(e,t,r)}function i(e,t){return e._mountDepth-t._mountDepth}function a(e){var t=e.dirtyComponentsLength;d(t===h.length),h.sort(i);for(var n=0;t>n;n++){var r=h[n];if(r.isMounted()){var o=r._pendingCallbacks;if(r._pendingCallbacks=null,r.performUpdateIfNecessary(e.reconcileTransaction),o)for(var a=0;a<o.length;a++)e.callbackQueue.enqueue(o[a],r)}}}function s(e,t){return d(!t||"function"==typeof t),n(),v.isBatchingUpdates?(h.push(e),void(t&&(e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t]))):void v.batchedUpdates(s,e,t)}var u=e("./CallbackQueue"),c=e("./PooledClass"),l=(e("./ReactCurrentOwner"),e("./ReactPerf")),p=e("./Transaction"),d=e("./invariant"),f=e("./mixInto"),h=(e("./warning"),[]),v=null,m={initialize:function(){this.dirtyComponentsLength=h.length},close:function(){this.dirtyComponentsLength!==h.length?(h.splice(0,this.dirtyComponentsLength),C()):h.length=0}},g={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},y=[m,g];f(r,p.Mixin),f(r,{getTransactionWrappers:function(){return y},destructor:function(){this.dirtyComponentsLength=null,u.release(this.callbackQueue),this.callbackQueue=null,R.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return p.Mixin.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),c.addPoolingTo(r);var C=l.measure("ReactUpdates","flushBatchedUpdates",function(){for(;h.length;){var e=r.getPooled();e.perform(a,null,e),r.release(e)}}),E={injectReconcileTransaction:function(e){d(e),R.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){d(e),d("function"==typeof e.batchedUpdates),d("boolean"==typeof e.isBatchingUpdates),v=e}},R={ReactReconcileTransaction:null,batchedUpdates:o,enqueueUpdate:s,flushBatchedUpdates:C,injection:E};t.exports=R},{"./CallbackQueue":6,"./PooledClass":28,"./ReactCurrentOwner":40,"./ReactPerf":69,"./Transaction":101,"./invariant":131,"./mixInto":144,"./warning":153}],85:[function(e,t){"use strict";var n=e("./LinkedStateMixin"),r=e("./React"),o=e("./ReactComponentWithPureRenderMixin"),i=e("./ReactCSSTransitionGroup"),a=e("./ReactTransitionGroup"),s=e("./cx"),u=e("./cloneWithProps"),c=e("./update");r.addons={CSSTransitionGroup:i,LinkedStateMixin:n,PureRenderMixin:o,TransitionGroup:a,classSet:s,cloneWithProps:u,update:c},t.exports=r},{"./LinkedStateMixin":24,"./React":29,"./ReactCSSTransitionGroup":32,"./ReactComponentWithPureRenderMixin":37,"./ReactTransitionGroup":83,"./cloneWithProps":105,"./cx":111,"./update":152}],86:[function(e,t){"use strict";var n=e("./DOMProperty"),r=n.injection.MUST_USE_ATTRIBUTE,o={Properties:{cx:r,cy:r,d:r,dx:r,dy:r,fill:r,fillOpacity:r,fontFamily:r,fontSize:r,fx:r,fy:r,gradientTransform:r,gradientUnits:r,markerEnd:r,markerMid:r,markerStart:r,offset:r,opacity:r,patternContentUnits:r,patternUnits:r,points:r,preserveAspectRatio:r,r:r,rx:r,ry:r,spreadMethod:r,stopColor:r,stopOpacity:r,stroke:r,strokeDasharray:r,strokeLinecap:r,strokeOpacity:r,strokeWidth:r,textAnchor:r,transform:r,version:r,viewBox:r,x1:r,x2:r,x:r,y1:r,y2:r,y:r},DOMAttributeNames:{fillOpacity:"fill-opacity",fontFamily:"font-family",fontSize:"font-size",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",patternContentUnits:"patternContentUnits",patternUnits:"patternUnits",preserveAspectRatio:"preserveAspectRatio",spreadMethod:"spreadMethod",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeLinecap:"stroke-linecap",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",viewBox:"viewBox"}};t.exports=o},{"./DOMProperty":11}],87:[function(e,t){"use strict";function n(e){if("selectionStart"in e&&a.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(document.selection){var t=document.selection.createRange();return{parentElement:t.parentElement(),text:t.text,top:t.boundingTop,left:t.boundingLeft}}var n=window.getSelection();return{anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}}function r(e){if(!g&&null!=h&&h==u()){var t=n(h);if(!m||!p(m,t)){m=t;var r=s.getPooled(f.select,v,e);return r.type="select",r.target=h,i.accumulateTwoPhaseDispatches(r),r}}}var o=e("./EventConstants"),i=e("./EventPropagators"),a=e("./ReactInputSelection"),s=e("./SyntheticEvent"),u=e("./getActiveElement"),c=e("./isTextInputElement"),l=e("./keyOf"),p=e("./shallowEqual"),d=o.topLevelTypes,f={select:{phasedRegistrationNames:{bubbled:l({onSelect:null}),captured:l({onSelectCapture:null})},dependencies:[d.topBlur,d.topContextMenu,d.topFocus,d.topKeyDown,d.topMouseDown,d.topMouseUp,d.topSelectionChange]}},h=null,v=null,m=null,g=!1,y={eventTypes:f,extractEvents:function(e,t,n,o){switch(e){case d.topFocus:(c(t)||"true"===t.contentEditable)&&(h=t,v=n,m=null);break;case d.topBlur:h=null,v=null,m=null;break;case d.topMouseDown:g=!0;break;case d.topContextMenu:case d.topMouseUp:return g=!1,r(o);case d.topSelectionChange:case d.topKeyDown:case d.topKeyUp:return r(o)}}};t.exports=y},{"./EventConstants":16,"./EventPropagators":21,"./ReactInputSelection":61,"./SyntheticEvent":93,"./getActiveElement":119,"./isTextInputElement":134,"./keyOf":138,"./shallowEqual":148}],88:[function(e,t){"use strict";var n=Math.pow(2,53),r={createReactRootIndex:function(){return Math.ceil(Math.random()*n)}};t.exports=r},{}],89:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./EventPluginUtils"),o=e("./EventPropagators"),i=e("./SyntheticClipboardEvent"),a=e("./SyntheticEvent"),s=e("./SyntheticFocusEvent"),u=e("./SyntheticKeyboardEvent"),c=e("./SyntheticMouseEvent"),l=e("./SyntheticDragEvent"),p=e("./SyntheticTouchEvent"),d=e("./SyntheticUIEvent"),f=e("./SyntheticWheelEvent"),h=e("./invariant"),v=e("./keyOf"),m=n.topLevelTypes,g={blur:{phasedRegistrationNames:{bubbled:v({onBlur:!0}),captured:v({onBlurCapture:!0})}},click:{phasedRegistrationNames:{bubbled:v({onClick:!0}),captured:v({onClickCapture:!0})}},contextMenu:{phasedRegistrationNames:{bubbled:v({onContextMenu:!0}),captured:v({onContextMenuCapture:!0})}},copy:{phasedRegistrationNames:{bubbled:v({onCopy:!0}),captured:v({onCopyCapture:!0})}},cut:{phasedRegistrationNames:{bubbled:v({onCut:!0}),captured:v({onCutCapture:!0})}},doubleClick:{phasedRegistrationNames:{bubbled:v({onDoubleClick:!0}),captured:v({onDoubleClickCapture:!0})}},drag:{phasedRegistrationNames:{bubbled:v({onDrag:!0}),captured:v({onDragCapture:!0})}},dragEnd:{phasedRegistrationNames:{bubbled:v({onDragEnd:!0}),captured:v({onDragEndCapture:!0})}},dragEnter:{phasedRegistrationNames:{bubbled:v({onDragEnter:!0}),captured:v({onDragEnterCapture:!0})}},dragExit:{phasedRegistrationNames:{bubbled:v({onDragExit:!0}),captured:v({onDragExitCapture:!0})}},dragLeave:{phasedRegistrationNames:{bubbled:v({onDragLeave:!0}),captured:v({onDragLeaveCapture:!0})}},dragOver:{phasedRegistrationNames:{bubbled:v({onDragOver:!0}),captured:v({onDragOverCapture:!0})}},dragStart:{phasedRegistrationNames:{bubbled:v({onDragStart:!0}),captured:v({onDragStartCapture:!0})}},drop:{phasedRegistrationNames:{bubbled:v({onDrop:!0}),captured:v({onDropCapture:!0})}},focus:{phasedRegistrationNames:{bubbled:v({onFocus:!0}),captured:v({onFocusCapture:!0})}},input:{phasedRegistrationNames:{bubbled:v({onInput:!0}),captured:v({onInputCapture:!0})}},keyDown:{phasedRegistrationNames:{bubbled:v({onKeyDown:!0}),captured:v({onKeyDownCapture:!0})}},keyPress:{phasedRegistrationNames:{bubbled:v({onKeyPress:!0}),captured:v({onKeyPressCapture:!0})}},keyUp:{phasedRegistrationNames:{bubbled:v({onKeyUp:!0}),captured:v({onKeyUpCapture:!0})}},load:{phasedRegistrationNames:{bubbled:v({onLoad:!0}),captured:v({onLoadCapture:!0})}},error:{phasedRegistrationNames:{bubbled:v({onError:!0}),captured:v({onErrorCapture:!0})}},mouseDown:{phasedRegistrationNames:{bubbled:v({onMouseDown:!0}),captured:v({onMouseDownCapture:!0})}},mouseMove:{phasedRegistrationNames:{bubbled:v({onMouseMove:!0}),captured:v({onMouseMoveCapture:!0})}},mouseOut:{phasedRegistrationNames:{bubbled:v({onMouseOut:!0}),captured:v({onMouseOutCapture:!0})}},mouseOver:{phasedRegistrationNames:{bubbled:v({onMouseOver:!0}),captured:v({onMouseOverCapture:!0})}},mouseUp:{phasedRegistrationNames:{bubbled:v({onMouseUp:!0}),captured:v({onMouseUpCapture:!0})}},paste:{phasedRegistrationNames:{bubbled:v({onPaste:!0}),captured:v({onPasteCapture:!0})}},reset:{phasedRegistrationNames:{bubbled:v({onReset:!0}),captured:v({onResetCapture:!0})}},scroll:{phasedRegistrationNames:{bubbled:v({onScroll:!0}),captured:v({onScrollCapture:!0})}},submit:{phasedRegistrationNames:{bubbled:v({onSubmit:!0}),captured:v({onSubmitCapture:!0})}},touchCancel:{phasedRegistrationNames:{bubbled:v({onTouchCancel:!0}),captured:v({onTouchCancelCapture:!0})}},touchEnd:{phasedRegistrationNames:{bubbled:v({onTouchEnd:!0}),captured:v({onTouchEndCapture:!0})}},touchMove:{phasedRegistrationNames:{bubbled:v({onTouchMove:!0}),captured:v({onTouchMoveCapture:!0})}},touchStart:{phasedRegistrationNames:{bubbled:v({onTouchStart:!0}),captured:v({onTouchStartCapture:!0})}},wheel:{phasedRegistrationNames:{bubbled:v({onWheel:!0}),captured:v({onWheelCapture:!0})}}},y={topBlur:g.blur,topClick:g.click,topContextMenu:g.contextMenu,topCopy:g.copy,topCut:g.cut,topDoubleClick:g.doubleClick,topDrag:g.drag,topDragEnd:g.dragEnd,topDragEnter:g.dragEnter,topDragExit:g.dragExit,topDragLeave:g.dragLeave,topDragOver:g.dragOver,topDragStart:g.dragStart,topDrop:g.drop,topError:g.error,topFocus:g.focus,topInput:g.input,topKeyDown:g.keyDown,topKeyPress:g.keyPress,topKeyUp:g.keyUp,topLoad:g.load,topMouseDown:g.mouseDown,topMouseMove:g.mouseMove,topMouseOut:g.mouseOut,topMouseOver:g.mouseOver,topMouseUp:g.mouseUp,topPaste:g.paste,topReset:g.reset,topScroll:g.scroll,topSubmit:g.submit,topTouchCancel:g.touchCancel,topTouchEnd:g.touchEnd,topTouchMove:g.touchMove,topTouchStart:g.touchStart,topWheel:g.wheel};for(var C in y)y[C].dependencies=[C];var E={eventTypes:g,executeDispatch:function(e,t,n){var o=r.executeDispatch(e,t,n);o===!1&&(e.stopPropagation(),e.preventDefault())},extractEvents:function(e,t,n,r){var v=y[e];if(!v)return null;var g;switch(e){case m.topInput:case m.topLoad:case m.topError:case m.topReset:case m.topSubmit:g=a;break;case m.topKeyPress:if(0===r.charCode)return null;case m.topKeyDown:case m.topKeyUp:g=u;break;case m.topBlur:case m.topFocus:g=s;break;case m.topClick:if(2===r.button)return null;case m.topContextMenu:case m.topDoubleClick:case m.topMouseDown:case m.topMouseMove:case m.topMouseOut:case m.topMouseOver:case m.topMouseUp:g=c;break;case m.topDrag:case m.topDragEnd:case m.topDragEnter:case m.topDragExit:case m.topDragLeave:case m.topDragOver:case m.topDragStart:case m.topDrop:g=l;break;case m.topTouchCancel:case m.topTouchEnd:case m.topTouchMove:case m.topTouchStart:g=p;break;case m.topScroll:g=d;break;case m.topWheel:g=f;break;case m.topCopy:case m.topCut:case m.topPaste:g=i}h(g);var C=g.getPooled(v,n,r);return o.accumulateTwoPhaseDispatches(C),C}};t.exports=E},{"./EventConstants":16,"./EventPluginUtils":20,"./EventPropagators":21,"./SyntheticClipboardEvent":90,"./SyntheticDragEvent":92,"./SyntheticEvent":93,"./SyntheticFocusEvent":94,"./SyntheticKeyboardEvent":96,"./SyntheticMouseEvent":97,"./SyntheticTouchEvent":98,"./SyntheticUIEvent":99,"./SyntheticWheelEvent":100,"./invariant":131,"./keyOf":138}],90:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":93}],91:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={data:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":93}],92:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticMouseEvent"),o={dataTransfer:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticMouseEvent":97}],93:[function(e,t){"use strict";function n(e,t,n){this.dispatchConfig=e,this.dispatchMarker=t,this.nativeEvent=n;var r=this.constructor.Interface;for(var i in r)if(r.hasOwnProperty(i)){var a=r[i];this[i]=a?a(n):n[i]}var s=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;this.isDefaultPrevented=s?o.thatReturnsTrue:o.thatReturnsFalse,this.isPropagationStopped=o.thatReturnsFalse}var r=e("./PooledClass"),o=e("./emptyFunction"),i=e("./getEventTarget"),a=e("./merge"),s=e("./mergeInto"),u={type:null,target:i,currentTarget:o.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};s(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e.preventDefault?e.preventDefault():e.returnValue=!1,this.isDefaultPrevented=o.thatReturnsTrue},stopPropagation:function(){var e=this.nativeEvent;e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.isPropagationStopped=o.thatReturnsTrue},persist:function(){this.isPersistent=o.thatReturnsTrue},isPersistent:o.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;this.dispatchConfig=null,this.dispatchMarker=null,this.nativeEvent=null}}),n.Interface=u,n.augmentClass=function(e,t){var n=this,o=Object.create(n.prototype);s(o,e.prototype),e.prototype=o,e.prototype.constructor=e,e.Interface=a(n.Interface,t),e.augmentClass=n.augmentClass,r.addPoolingTo(e,r.threeArgumentPooler)},r.addPoolingTo(n,r.threeArgumentPooler),t.exports=n},{"./PooledClass":28,"./emptyFunction":113,"./getEventTarget":122,"./merge":141,"./mergeInto":143}],94:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o={relatedTarget:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticUIEvent":99}],95:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={data:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":93}],96:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./getEventKey"),i=e("./getEventModifierState"),a={key:o,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:i,charCode:function(e){return"keypress"===e.type?"charCode"in e?e.charCode:e.keyCode:0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return e.keyCode||e.charCode}};r.augmentClass(n,a),t.exports=n},{"./SyntheticUIEvent":99,"./getEventKey":120,"./getEventModifierState":121}],97:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./ViewportMetrics"),i=e("./getEventModifierState"),a={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:i,button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};r.augmentClass(n,a),t.exports=n},{"./SyntheticUIEvent":99,"./ViewportMetrics":102,"./getEventModifierState":121}],98:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./getEventModifierState"),i={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:o};r.augmentClass(n,i),t.exports=n},{"./SyntheticUIEvent":99,"./getEventModifierState":121}],99:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o=e("./getEventTarget"),i={view:function(e){if(e.view)return e.view;var t=o(e);if(null!=t&&t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};r.augmentClass(n,i),t.exports=n},{"./SyntheticEvent":93,"./getEventTarget":122}],100:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticMouseEvent"),o={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticMouseEvent":97}],101:[function(e,t){"use strict";var n=e("./invariant"),r={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,r,o,i,a,s,u){n(!this.isInTransaction());var c,l;try{this._isInTransaction=!0,c=!0,this.initializeAll(0),l=e.call(t,r,o,i,a,s,u),c=!1}finally{try{if(c)try{this.closeAll(0)}catch(p){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o.OBSERVED_ERROR,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o.OBSERVED_ERROR)try{this.initializeAll(n+1)}catch(i){}}}},closeAll:function(e){n(this.isInTransaction());for(var t=this.transactionWrappers,r=e;r<t.length;r++){var i,a=t[r],s=this.wrapperInitData[r];try{i=!0,s!==o.OBSERVED_ERROR&&a.close&&a.close.call(this,s),i=!1}finally{if(i)try{this.closeAll(r+1)}catch(u){}}}this.wrapperInitData.length=0}},o={Mixin:r,OBSERVED_ERROR:{}};t.exports=o},{"./invariant":131}],102:[function(e,t){"use strict";var n=e("./getUnboundedScrollPosition"),r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(){var e=n(window);r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};t.exports=r},{"./getUnboundedScrollPosition":127}],103:[function(e,t){"use strict";function n(e,t){if(r(null!=t),null==e)return t;var n=Array.isArray(e),o=Array.isArray(t);return n?e.concat(t):o?[e].concat(t):[e,t]}var r=e("./invariant");t.exports=n},{"./invariant":131}],104:[function(e,t){"use strict";function n(e){for(var t=1,n=0,o=0;o<e.length;o++)t=(t+e.charCodeAt(o))%r,n=(n+t)%r;return t|n<<16}var r=65521;t.exports=n},{}],105:[function(e,t){"use strict";function n(e,t){var n=r.mergeProps(t,e.props);return!n.hasOwnProperty(i)&&e.props.hasOwnProperty(i)&&(n.children=e.props.children),e.constructor(n)}var r=e("./ReactPropTransferer"),o=e("./keyOf"),i=(e("./warning"),o({children:null}));t.exports=n},{"./ReactPropTransferer":70,"./keyOf":138,"./warning":153}],106:[function(e,t){function n(e,t){return e&&t?e===t?!0:r(e)?!1:r(t)?n(e,t.parentNode):e.contains?e.contains(t):e.compareDocumentPosition?!!(16&e.compareDocumentPosition(t)):!1:!1}var r=e("./isTextNode");t.exports=n},{"./isTextNode":135}],107:[function(e,t){function n(e,t,n,r,o,i){e=e||{};for(var a,s=[t,n,r,o,i],u=0;s[u];){a=s[u++];for(var c in a)e[c]=a[c];a.hasOwnProperty&&a.hasOwnProperty("toString")&&"undefined"!=typeof a.toString&&e.toString!==a.toString&&(e.toString=a.toString)}return e}t.exports=n},{}],108:[function(e,t){function n(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}function r(e){return n(e)?Array.isArray(e)?e.slice():o(e):[e]}var o=e("./toArray");t.exports=r},{"./toArray":150}],109:[function(e,t){"use strict";function n(e){var t=r.createClass({displayName:"ReactFullPageComponent"+(e.type.displayName||""),componentWillUnmount:function(){o(!1)},render:function(){return this.transferPropsTo(e(null,this.props.children))}});return t}var r=e("./ReactCompositeComponent"),o=e("./invariant");t.exports=n},{"./ReactCompositeComponent":38,"./invariant":131}],110:[function(e,t){function n(e){var t=e.match(c);return t&&t[1].toLowerCase()}function r(e,t){var r=u;s(!!u);var o=n(e),c=o&&a(o);if(c){r.innerHTML=c[1]+e+c[2];for(var l=c[0];l--;)r=r.lastChild}else r.innerHTML=e;var p=r.getElementsByTagName("script");p.length&&(s(t),i(p).forEach(t));for(var d=i(r.childNodes);r.lastChild;)r.removeChild(r.lastChild);return d}var o=e("./ExecutionEnvironment"),i=e("./createArrayFrom"),a=e("./getMarkupWrap"),s=e("./invariant"),u=o.canUseDOM?document.createElement("div"):null,c=/^\s*<(\w+)/;t.exports=r},{"./ExecutionEnvironment":22,"./createArrayFrom":108,"./getMarkupWrap":123,"./invariant":131}],111:[function(e,t){function n(e){return"object"==typeof e?Object.keys(e).filter(function(t){return e[t]}).join(" "):Array.prototype.join.call(arguments," ")}t.exports=n},{}],112:[function(e,t){"use strict";function n(e,t){var n=null==t||"boolean"==typeof t||""===t;if(n)return"";var r=isNaN(t);return r||0===t||o.hasOwnProperty(e)&&o[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}var r=e("./CSSProperty"),o=r.isUnitlessNumber;t.exports=n},{"./CSSProperty":4}],113:[function(e,t){function n(e){return function(){return e}}function r(){}var o=e("./copyProperties");o(r,{thatReturns:n,thatReturnsFalse:n(!1),thatReturnsTrue:n(!0),thatReturnsNull:n(null),thatReturnsThis:function(){return this},thatReturnsArgument:function(e){return e}}),t.exports=r},{"./copyProperties":107}],114:[function(e,t){"use strict";var n={};t.exports=n},{}],115:[function(e,t){"use strict";function n(e){return o[e]}function r(e){return(""+e).replace(i,n)}var o={"&":"&",">":">","<":"<",'"':""","'":"'"},i=/[&><"']/g;t.exports=r},{}],116:[function(e,t){"use strict";function n(e,t,n){var r=e,o=!r.hasOwnProperty(n);o&&null!=t&&(r[n]=t)}function r(e){if(null==e)return e;var t={};return o(e,n,t),t}{var o=e("./traverseAllChildren");e("./warning")}t.exports=r},{"./traverseAllChildren":151,"./warning":153}],117:[function(e,t){"use strict";function n(e){e.disabled||e.focus()}t.exports=n},{}],118:[function(e,t){"use strict";var n=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=n},{}],119:[function(e,t){function n(){try{return document.activeElement||document.body}catch(e){return document.body}}t.exports=n},{}],120:[function(e,t){"use strict";function n(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n="charCode"in e?e.charCode:e.keyCode;return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":void r(!1)}var r=e("./invariant"),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=n},{"./invariant":131}],121:[function(e,t){"use strict";function n(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=o[e];return r?!!n[r]:!1}function r(){return n}var o={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=r},{}],122:[function(e,t){"use strict";function n(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}t.exports=n},{}],123:[function(e,t){function n(e){return o(!!i),p.hasOwnProperty(e)||(e="*"),a.hasOwnProperty(e)||(i.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",a[e]=!i.firstChild),a[e]?p[e]:null}var r=e("./ExecutionEnvironment"),o=e("./invariant"),i=r.canUseDOM?document.createElement("div"):null,a={circle:!0,defs:!0,ellipse:!0,g:!0,line:!0,linearGradient:!0,path:!0,polygon:!0,polyline:!0,radialGradient:!0,rect:!0,stop:!0,text:!0},s=[1,'<select multiple="true">',"</select>"],u=[1,"<table>","</table>"],c=[3,"<table><tbody><tr>","</tr></tbody></table>"],l=[1,"<svg>","</svg>"],p={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:s,option:s,caption:u,colgroup:u,tbody:u,tfoot:u,thead:u,td:c,th:c,circle:l,defs:l,ellipse:l,g:l,line:l,linearGradient:l,path:l,polygon:l,polyline:l,radialGradient:l,rect:l,stop:l,text:l};t.exports=n},{"./ExecutionEnvironment":22,"./invariant":131}],124:[function(e,t){"use strict";function n(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function r(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function o(e,t){for(var o=n(e),i=0,a=0;o;){if(3==o.nodeType){if(a=i+o.textContent.length,t>=i&&a>=t)return{node:o,offset:t-i};i=a}o=n(r(o))}}t.exports=o},{}],125:[function(e,t){"use strict";function n(e){return e?e.nodeType===r?e.documentElement:e.firstChild:null}var r=9;t.exports=n},{}],126:[function(e,t){"use strict";function n(){return!o&&r.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}var r=e("./ExecutionEnvironment"),o=null;t.exports=n},{"./ExecutionEnvironment":22}],127:[function(e,t){"use strict";function n(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=n},{}],128:[function(e,t){function n(e){return e.replace(r,"-$1").toLowerCase()}var r=/([A-Z])/g;t.exports=n},{}],129:[function(e,t){"use strict";function n(e){return r(e).replace(o,"-ms-")}var r=e("./hyphenate"),o=/^ms-/;t.exports=n},{"./hyphenate":128}],130:[function(e,t){"use strict";function n(e){return e&&"function"==typeof e.type&&"function"==typeof e.type.prototype.mountComponent&&"function"==typeof e.type.prototype.receiveComponent}function r(e){return o(n(e)),new e.type(e)}var o=e("./invariant");t.exports=r},{"./invariant":131}],131:[function(e,t){"use strict";var n=function(e,t,n,r,o,i,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;22 u=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return c[l++]}))}throw u.framesToPop=1,u}};t.exports=n},{}],132:[function(e,t){"use strict";function n(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,i=n in document;if(!i){var a=document.createElement("div");a.setAttribute(n,"return;"),i="function"==typeof a[n]}return!i&&r&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}var r,o=e("./ExecutionEnvironment");o.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=n},{"./ExecutionEnvironment":22}],133:[function(e,t){function n(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=n},{}],134:[function(e,t){"use strict";function n(e){return e&&("INPUT"===e.nodeName&&r[e.type]||"TEXTAREA"===e.nodeName)}var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=n},{}],135:[function(e,t){function n(e){return r(e)&&3==e.nodeType}var r=e("./isNode");t.exports=n},{"./isNode":133}],136:[function(e,t){"use strict";function n(e){e||(e="");var t,n=arguments.length;if(n>1)for(var r=1;n>r;r++)t=arguments[r],t&&(e+=" "+t);return e}t.exports=n},{}],137:[function(e,t){"use strict";var n=e("./invariant"),r=function(e){var t,r={};n(e instanceof Object&&!Array.isArray(e));for(t in e)e.hasOwnProperty(t)&&(r[t]=t);return r};t.exports=r},{"./invariant":131}],138:[function(e,t){var n=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=n},{}],139:[function(e,t){"use strict";function n(e,t,n){if(!e)return null;var r=0,o={};for(var i in e)e.hasOwnProperty(i)&&(o[i]=t.call(n,e[i],i,r++));return o}t.exports=n},{}],140:[function(e,t){"use strict";function n(e){var t={};return function(n){return t.hasOwnProperty(n)?t[n]:t[n]=e.call(this,n)}}t.exports=n},{}],141:[function(e,t){"use strict";var n=e("./mergeInto"),r=function(e,t){var r={};return n(r,e),n(r,t),r};t.exports=r},{"./mergeInto":143}],142:[function(e,t){"use strict";var n=e("./invariant"),r=e("./keyMirror"),o=36,i=function(e){return"object"!=typeof e||null===e},a={MAX_MERGE_DEPTH:o,isTerminal:i,normalizeMergeArg:function(e){return void 0===e||null===e?{}:e},checkMergeArrayArgs:function(e,t){n(Array.isArray(e)&&Array.isArray(t))},checkMergeObjectArgs:function(e,t){a.checkMergeObjectArg(e),a.checkMergeObjectArg(t)},checkMergeObjectArg:function(e){n(!i(e)&&!Array.isArray(e))},checkMergeIntoObjectArg:function(e){n(!(i(e)&&"function"!=typeof e||Array.isArray(e)))},checkMergeLevel:function(e){n(o>e)},checkArrayStrategy:function(e){n(void 0===e||e in a.ArrayStrategies)},ArrayStrategies:r({Clobber:!0,IndexByIndex:!0})};t.exports=a},{"./invariant":131,"./keyMirror":137}],143:[function(e,t){"use strict";function n(e,t){if(i(e),null!=t){o(t);for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}}var r=e("./mergeHelpers"),o=r.checkMergeObjectArg,i=r.checkMergeIntoObjectArg;t.exports=n},{"./mergeHelpers":142}],144:[function(e,t){"use strict";var n=function(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e.prototype[n]=t[n])};t.exports=n},{}],145:[function(e,t){"use strict";function n(e){r(e&&!/[^a-z0-9_]/.test(e))}var r=e("./invariant");t.exports=n},{"./invariant":131}],146:[function(e,t){"use strict";function n(e){return o(r.isValidDescriptor(e)),e}var r=e("./ReactDescriptor"),o=e("./invariant");t.exports=n},{"./ReactDescriptor":54,"./invariant":131}],147:[function(e,t){"use strict";var n=e("./ExecutionEnvironment"),r=function(e,t){e.innerHTML=t};if(n.canUseDOM){var o=document.createElement("div");o.innerHTML=" ",""===o.innerHTML&&(r=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),t.match(/^[ \r\n\t\f]/)||"<"===t[0]&&(-1!==t.indexOf("<noscript")||-1!==t.indexOf("<script")||-1!==t.indexOf("<style")||-1!==t.indexOf("<meta")||-1!==t.indexOf("<link"))){e.innerHTML=""+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}t.exports=r},{"./ExecutionEnvironment":22}],148:[function(e,t){"use strict";function n(e,t){if(e===t)return!0;var n;for(n in e)if(e.hasOwnProperty(n)&&(!t.hasOwnProperty(n)||e[n]!==t[n]))return!1;for(n in t)if(t.hasOwnProperty(n)&&!e.hasOwnProperty(n))return!1;return!0}t.exports=n},{}],149:[function(e,t){"use strict";function n(e,t){return e&&t&&e.type===t.type&&(e.props&&e.props.key)===(t.props&&t.props.key)&&e._owner===t._owner?!0:!1}t.exports=n},{}],150:[function(e,t){function n(e){var t=e.length;if(r(!Array.isArray(e)&&("object"==typeof e||"function"==typeof e)),r("number"==typeof t),r(0===t||t-1 in e),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(n){}for(var o=Array(t),i=0;t>i;i++)o[i]=e[i];return o}var r=e("./invariant");t.exports=n},{"./invariant":131}],151:[function(e,t){"use strict";function n(e){return d[e]}function r(e,t){return e&&e.props&&null!=e.props.key?i(e.props.key):t.toString(36)}function o(e){return(""+e).replace(f,n)}function i(e){return"$"+o(e)}function a(e,t,n){return null==e?0:h(e,"",0,t,n)}var s=e("./ReactInstanceHandles"),u=e("./ReactTextComponent"),c=e("./invariant"),l=s.SEPARATOR,p=":",d={"=":"=0",".":"=1",":":"=2"},f=/[=.:]/g,h=function(e,t,n,o,a){var s=0;if(Array.isArray(e))for(var d=0;d<e.length;d++){var f=e[d],v=t+(t?p:l)+r(f,d),m=n+s;s+=h(f,v,m,o,a)}else{var g=typeof e,y=""===t,C=y?l+r(e,0):t;if(null==e||"boolean"===g)o(a,null,C,n),s=1;else if(e.type&&e.type.prototype&&e.type.prototype.mountComponentIntoNode)o(a,e,C,n),s=1;else if("object"===g){c(!e||1!==e.nodeType);for(var E in e)e.hasOwnProperty(E)&&(s+=h(e[E],t+(t?p:l)+i(E)+p+r(e[E],0),n+s,o,a))}else if("string"===g){var R=u(e);o(a,R,C,n),s+=1}else if("number"===g){var M=u(""+e);o(a,M,C,n),s+=1}}return s};t.exports=a},{"./ReactInstanceHandles":62,"./ReactTextComponent":80,"./invariant":131}],152:[function(e,t){"use strict";function n(e){return Array.isArray(e)?e.concat():e&&"object"==typeof e?i(new e.constructor,e):e}function r(e,t,n){s(Array.isArray(e));var r=t[n];s(Array.isArray(r))}function o(e,t){if(s("object"==typeof t),t.hasOwnProperty(p))return s(1===Object.keys(t).length),t[p];var a=n(e);if(t.hasOwnProperty(d)){var h=t[d];s(h&&"object"==typeof h),s(a&&"object"==typeof a),i(a,t[d])}t.hasOwnProperty(u)&&(r(e,t,u),t[u].forEach(function(e){a.push(e)})),t.hasOwnProperty(c)&&(r(e,t,c),t[c].forEach(function(e){a.unshift(e)})),t.hasOwnProperty(l)&&(s(Array.isArray(e)),s(Array.isArray(t[l])),t[l].forEach(function(e){s(Array.isArray(e)),a.splice.apply(a,e)})),t.hasOwnProperty(f)&&(s("function"==typeof t[f]),a=t[f](a));for(var m in t)v.hasOwnProperty(m)&&v[m]||(a[m]=o(e[m],t[m]));return a}var i=e("./copyProperties"),a=e("./keyOf"),s=e("./invariant"),u=a({$push:null}),c=a({$unshift:null}),l=a({$splice:null}),p=a({$set:null}),d=a({$merge:null}),f=a({$apply:null}),h=[u,c,l,p,d,f],v={};h.forEach(function(e){v[e]=!0}),t.exports=o},{"./copyProperties":107,"./invariant":131,"./keyOf":138}],153:[function(e,t){"use strict";var n=e("./emptyFunction"),r=n;t.exports=r},{"./emptyFunction":113}]},{},[85])(85)});12 !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.React=e()}}(function(){return function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[a]={exports:{}};t[a][0].call(l.exports,function(e){var n=t[a][1][e];return o(n?n:e)},l,l.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t){"use strict";var n=e("./LinkedStateMixin"),r=e("./React"),o=e("./ReactComponentWithPureRenderMixin"),i=e("./ReactCSSTransitionGroup"),a=e("./ReactTransitionGroup"),s=e("./ReactUpdates"),u=e("./cx"),c=e("./cloneWithProps"),l=e("./update");r.addons={CSSTransitionGroup:i,LinkedStateMixin:n,PureRenderMixin:o,TransitionGroup:a,batchedUpdates:s.batchedUpdates,classSet:u,cloneWithProps:c,update:l},t.exports=r},{"./LinkedStateMixin":25,"./React":31,"./ReactCSSTransitionGroup":34,"./ReactComponentWithPureRenderMixin":39,"./ReactTransitionGroup":87,"./ReactUpdates":88,"./cloneWithProps":110,"./cx":115,"./update":154}],2:[function(e,t){"use strict";var n=e("./focusNode"),r={componentDidMount:function(){this.props.autoFocus&&n(this.getDOMNode())}};t.exports=r},{"./focusNode":122}],3:[function(e,t){"use strict";function n(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function r(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}var o=e("./EventConstants"),i=e("./EventPropagators"),a=e("./ExecutionEnvironment"),s=e("./SyntheticInputEvent"),u=e("./keyOf"),c=a.canUseDOM&&"TextEvent"in window&&!("documentMode"in document||n()),l=32,p=String.fromCharCode(l),d=o.topLevelTypes,f={beforeInput:{phasedRegistrationNames:{bubbled:u({onBeforeInput:null}),captured:u({onBeforeInputCapture:null})},dependencies:[d.topCompositionEnd,d.topKeyPress,d.topTextInput,d.topPaste]}},h=null,m=!1,v={eventTypes:f,extractEvents:function(e,t,n,o){var a;if(c)switch(e){case d.topKeyPress:var u=o.which;if(u!==l)return;m=!0,a=p;break;case d.topTextInput:if(a=o.data,a===p&&m)return;break;default:return}else{switch(e){case d.topPaste:h=null;break;case d.topKeyPress:o.which&&!r(o)&&(h=String.fromCharCode(o.which));break;case d.topCompositionEnd:h=o.data}if(null===h)return;a=h}if(a){var v=s.getPooled(f.beforeInput,n,o);return v.data=a,h=null,i.accumulateTwoPhaseDispatches(v),v}}};t.exports=v},{"./EventConstants":17,"./EventPropagators":22,"./ExecutionEnvironment":23,"./SyntheticInputEvent":98,"./keyOf":144}],4:[function(e,t){var n=e("./invariant"),r={addClass:function(e,t){return n(!/\s/.test(t)),t&&(e.classList?e.classList.add(t):r.hasClass(e,t)||(e.className=e.className+" "+t)),e},removeClass:function(e,t){return n(!/\s/.test(t)),t&&(e.classList?e.classList.remove(t):r.hasClass(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,""))),e},conditionClass:function(e,t,n){return(n?r.addClass:r.removeClass)(e,t)},hasClass:function(e,t){return n(!/\s/.test(t)),e.classList?!!t&&e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}};t.exports=r},{"./invariant":137}],5:[function(e,t){"use strict";function n(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var r={columnCount:!0,fillOpacity:!0,flex:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},o=["Webkit","ms","Moz","O"];Object.keys(r).forEach(function(e){o.forEach(function(t){r[n(t,e)]=r[e]})});var i={background:{backgroundImage:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundColor:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0}},a={isUnitlessNumber:r,shorthandPropertyExpansions:i};t.exports=a},{}],6:[function(e,t){"use strict";var n=e("./CSSProperty"),r=e("./ExecutionEnvironment"),o=(e("./camelizeStyleName"),e("./dangerousStyleValue")),i=e("./hyphenateStyleName"),a=e("./memoizeStringOnly"),s=(e("./warning"),a(function(e){return i(e)})),u="cssFloat";r.canUseDOM&&void 0===document.documentElement.style.cssFloat&&(u="styleFloat");var c={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];null!=r&&(t+=s(n)+":",t+=o(n,r)+";")}return t||null},setValueForStyles:function(e,t){var r=e.style;for(var i in t)if(t.hasOwnProperty(i)){var a=o(i,t[i]);if("float"===i&&(i=u),a)r[i]=a;else{var s=n.shorthandPropertyExpansions[i];if(s)for(var c in s)r[c]="";else r[i]=""}}}};t.exports=c},{"./CSSProperty":5,"./ExecutionEnvironment":23,"./camelizeStyleName":109,"./dangerousStyleValue":116,"./hyphenateStyleName":135,"./memoizeStringOnly":146,"./warning":155}],7:[function(e,t){"use strict";function n(){this._callbacks=null,this._contexts=null}var r=e("./PooledClass"),o=e("./Object.assign"),i=e("./invariant");o(n.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){i(e.length===t.length),this._callbacks=null,this._contexts=null;for(var n=0,r=e.length;r>n;n++)e[n].call(t[n]);e.length=0,t.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),r.addPoolingTo(n),t.exports=n},{"./Object.assign":29,"./PooledClass":30,"./invariant":137}],8:[function(e,t){"use strict";function n(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function r(e){var t=M.getPooled(P.change,w,e);E.accumulateTwoPhaseDispatches(t),R.batchedUpdates(o,t)}function o(e){g.enqueueEvents(e),g.processEventQueue()}function i(e,t){T=e,w=t,T.attachEvent("onchange",r)}function a(){T&&(T.detachEvent("onchange",r),T=null,w=null)}function s(e,t,n){return e===x.topChange?n:void 0}function u(e,t,n){e===x.topFocus?(a(),i(t,n)):e===x.topBlur&&a()}function c(e,t){T=e,w=t,_=e.value,S=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(T,"value",k),T.attachEvent("onpropertychange",p)}function l(){T&&(delete T.value,T.detachEvent("onpropertychange",p),T=null,w=null,_=null,S=null)}function p(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==_&&(_=t,r(e))}}function d(e,t,n){return e===x.topInput?n:void 0}function f(e,t,n){e===x.topFocus?(l(),c(t,n)):e===x.topBlur&&l()}function h(e){return e!==x.topSelectionChange&&e!==x.topKeyUp&&e!==x.topKeyDown||!T||T.value===_?void 0:(_=T.value,w)}function m(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function v(e,t,n){return e===x.topClick?n:void 0}var y=e("./EventConstants"),g=e("./EventPluginHub"),E=e("./EventPropagators"),C=e("./ExecutionEnvironment"),R=e("./ReactUpdates"),M=e("./SyntheticEvent"),b=e("./isEventSupported"),O=e("./isTextInputElement"),D=e("./keyOf"),x=y.topLevelTypes,P={change:{phasedRegistrationNames:{bubbled:D({onChange:null}),captured:D({onChangeCapture:null})},dependencies:[x.topBlur,x.topChange,x.topClick,x.topFocus,x.topInput,x.topKeyDown,x.topKeyUp,x.topSelectionChange]}},T=null,w=null,_=null,S=null,N=!1;C.canUseDOM&&(N=b("change")&&(!("documentMode"in document)||document.documentMode>8));var I=!1;C.canUseDOM&&(I=b("input")&&(!("documentMode"in document)||document.documentMode>9));var k={get:function(){return S.get.call(this)},set:function(e){_=""+e,S.set.call(this,e)}},A={eventTypes:P,extractEvents:function(e,t,r,o){var i,a;if(n(t)?N?i=s:a=u:O(t)?I?i=d:(i=h,a=f):m(t)&&(i=v),i){var c=i(e,t,r);if(c){var l=M.getPooled(P.change,c,o);return E.accumulateTwoPhaseDispatches(l),l}}a&&a(e,t,r)}};t.exports=A},{"./EventConstants":17,"./EventPluginHub":19,"./EventPropagators":22,"./ExecutionEnvironment":23,"./ReactUpdates":88,"./SyntheticEvent":96,"./isEventSupported":138,"./isTextInputElement":140,"./keyOf":144}],9:[function(e,t){"use strict";var n=0,r={createReactRootIndex:function(){return n++}};t.exports=r},{}],10:[function(e,t){"use strict";function n(e){switch(e){case y.topCompositionStart:return E.compositionStart;case y.topCompositionEnd:return E.compositionEnd;case y.topCompositionUpdate:return E.compositionUpdate}}function r(e,t){return e===y.topKeyDown&&t.keyCode===h}function o(e,t){switch(e){case y.topKeyUp:return-1!==f.indexOf(t.keyCode);case y.topKeyDown:return t.keyCode!==h;case y.topKeyPress:case y.topMouseDown:case y.topBlur:return!0;default:return!1}}function i(e){this.root=e,this.startSelection=c.getSelection(e),this.startValue=this.getText()}var a=e("./EventConstants"),s=e("./EventPropagators"),u=e("./ExecutionEnvironment"),c=e("./ReactInputSelection"),l=e("./SyntheticCompositionEvent"),p=e("./getTextContentAccessor"),d=e("./keyOf"),f=[9,13,27,32],h=229,m=u.canUseDOM&&"CompositionEvent"in window,v=!m||"documentMode"in document&&document.documentMode>8&&document.documentMode<=11,y=a.topLevelTypes,g=null,E={compositionEnd:{phasedRegistrationNames:{bubbled:d({onCompositionEnd:null}),captured:d({onCompositionEndCapture:null})},dependencies:[y.topBlur,y.topCompositionEnd,y.topKeyDown,y.topKeyPress,y.topKeyUp,y.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:d({onCompositionStart:null}),captured:d({onCompositionStartCapture:null})},dependencies:[y.topBlur,y.topCompositionStart,y.topKeyDown,y.topKeyPress,y.topKeyUp,y.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:d({onCompositionUpdate:null}),captured:d({onCompositionUpdateCapture:null})},dependencies:[y.topBlur,y.topCompositionUpdate,y.topKeyDown,y.topKeyPress,y.topKeyUp,y.topMouseDown]}};i.prototype.getText=function(){return this.root.value||this.root[p()]},i.prototype.getData=function(){var e=this.getText(),t=this.startSelection.start,n=this.startValue.length-this.startSelection.end;return e.substr(t,e.length-n-t)};var C={eventTypes:E,extractEvents:function(e,t,a,u){var c,p;if(m?c=n(e):g?o(e,u)&&(c=E.compositionEnd):r(e,u)&&(c=E.compositionStart),v&&(g||c!==E.compositionStart?c===E.compositionEnd&&g&&(p=g.getData(),g=null):g=new i(t)),c){var d=l.getPooled(c,a,u);return p&&(d.data=p),s.accumulateTwoPhaseDispatches(d),d}}};t.exports=C},{"./EventConstants":17,"./EventPropagators":22,"./ExecutionEnvironment":23,"./ReactInputSelection":63,"./SyntheticCompositionEvent":94,"./getTextContentAccessor":132,"./keyOf":144}],11:[function(e,t){"use strict";function n(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var r,o=e("./Danger"),i=e("./ReactMultiChildUpdateTypes"),a=e("./getTextContentAccessor"),s=e("./invariant"),u=a();r="textContent"===u?function(e,t){e.textContent=t}:function(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);if(t){var n=e.ownerDocument||document;e.appendChild(n.createTextNode(t))}};var c={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,updateTextContent:r,processUpdates:function(e,t){for(var a,u=null,c=null,l=0;a=e[l];l++)if(a.type===i.MOVE_EXISTING||a.type===i.REMOVE_NODE){var p=a.fromIndex,d=a.parentNode.childNodes[p],f=a.parentID;s(d),u=u||{},u[f]=u[f]||[],u[f][p]=d,c=c||[],c.push(d)}var h=o.dangerouslyRenderMarkup(t);if(c)for(var m=0;m<c.length;m++)c[m].parentNode.removeChild(c[m]);for(var v=0;a=e[v];v++)switch(a.type){case i.INSERT_MARKUP:n(a.parentNode,h[a.markupIndex],a.toIndex);break;case i.MOVE_EXISTING:n(a.parentNode,u[a.parentID][a.fromIndex],a.toIndex);break;case i.TEXT_CONTENT:r(a.parentNode,a.textContent);break;case i.REMOVE_NODE:}}};t.exports=c},{"./Danger":14,"./ReactMultiChildUpdateTypes":70,"./getTextContentAccessor":132,"./invariant":137}],12:[function(e,t){"use strict";function n(e,t){return(e&t)===t}var r=e("./invariant"),o={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=e.Properties||{},i=e.DOMAttributeNames||{},s=e.DOMPropertyNames||{},u=e.DOMMutationMethods||{};e.isCustomAttribute&&a._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var c in t){r(!a.isStandardName.hasOwnProperty(c)),a.isStandardName[c]=!0;var l=c.toLowerCase();if(a.getPossibleStandardName[l]=c,i.hasOwnProperty(c)){var p=i[c];a.getPossibleStandardName[p]=c,a.getAttributeName[c]=p}else a.getAttributeName[c]=l;a.getPropertyName[c]=s.hasOwnProperty(c)?s[c]:c,a.getMutationMethod[c]=u.hasOwnProperty(c)?u[c]:null;var d=t[c];a.mustUseAttribute[c]=n(d,o.MUST_USE_ATTRIBUTE),a.mustUseProperty[c]=n(d,o.MUST_USE_PROPERTY),a.hasSideEffects[c]=n(d,o.HAS_SIDE_EFFECTS),a.hasBooleanValue[c]=n(d,o.HAS_BOOLEAN_VALUE),a.hasNumericValue[c]=n(d,o.HAS_NUMERIC_VALUE),a.hasPositiveNumericValue[c]=n(d,o.HAS_POSITIVE_NUMERIC_VALUE),a.hasOverloadedBooleanValue[c]=n(d,o.HAS_OVERLOADED_BOOLEAN_VALUE),r(!a.mustUseAttribute[c]||!a.mustUseProperty[c]),r(a.mustUseProperty[c]||!a.hasSideEffects[c]),r(!!a.hasBooleanValue[c]+!!a.hasNumericValue[c]+!!a.hasOverloadedBooleanValue[c]<=1)}}},i={},a={ID_ATTRIBUTE_NAME:"data-reactid",isStandardName:{},getPossibleStandardName:{},getAttributeName:{},getPropertyName:{},getMutationMethod:{},mustUseAttribute:{},mustUseProperty:{},hasSideEffects:{},hasBooleanValue:{},hasNumericValue:{},hasPositiveNumericValue:{},hasOverloadedBooleanValue:{},_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<a._isCustomAttributeFunctions.length;t++){var n=a._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},getDefaultValueForProperty:function(e,t){var n,r=i[e];return r||(i[e]=r={}),t in r||(n=document.createElement(e),r[t]=n[t]),r[t]},injection:o};t.exports=a},{"./invariant":137}],13:[function(e,t){"use strict";function n(e,t){return null==t||r.hasBooleanValue[e]&&!t||r.hasNumericValue[e]&&isNaN(t)||r.hasPositiveNumericValue[e]&&1>t||r.hasOverloadedBooleanValue[e]&&t===!1}var r=e("./DOMProperty"),o=e("./escapeTextForBrowser"),i=e("./memoizeStringOnly"),a=(e("./warning"),i(function(e){return o(e)+'="'})),s={createMarkupForID:function(e){return a(r.ID_ATTRIBUTE_NAME)+o(e)+'"'},createMarkupForProperty:function(e,t){if(r.isStandardName.hasOwnProperty(e)&&r.isStandardName[e]){if(n(e,t))return"";var i=r.getAttributeName[e];return r.hasBooleanValue[e]||r.hasOverloadedBooleanValue[e]&&t===!0?o(i):a(i)+o(t)+'"'}return r.isCustomAttribute(e)?null==t?"":a(e)+o(t)+'"':null},setValueForProperty:function(e,t,o){if(r.isStandardName.hasOwnProperty(t)&&r.isStandardName[t]){var i=r.getMutationMethod[t];if(i)i(e,o);else if(n(t,o))this.deleteValueForProperty(e,t);else if(r.mustUseAttribute[t])e.setAttribute(r.getAttributeName[t],""+o);else{var a=r.getPropertyName[t];r.hasSideEffects[t]&&""+e[a]==""+o||(e[a]=o)}}else r.isCustomAttribute(t)&&(null==o?e.removeAttribute(t):e.setAttribute(t,""+o))},deleteValueForProperty:function(e,t){if(r.isStandardName.hasOwnProperty(t)&&r.isStandardName[t]){var n=r.getMutationMethod[t];if(n)n(e,void 0);else if(r.mustUseAttribute[t])e.removeAttribute(r.getAttributeName[t]);else{var o=r.getPropertyName[t],i=r.getDefaultValueForProperty(e.nodeName,o);r.hasSideEffects[t]&&""+e[o]===i||(e[o]=i)}}else r.isCustomAttribute(t)&&e.removeAttribute(t)}};t.exports=s},{"./DOMProperty":12,"./escapeTextForBrowser":120,"./memoizeStringOnly":146,"./warning":155}],14:[function(e,t){"use strict";function n(e){return e.substring(1,e.indexOf(" "))}var r=e("./ExecutionEnvironment"),o=e("./createNodesFromMarkup"),i=e("./emptyFunction"),a=e("./getMarkupWrap"),s=e("./invariant"),u=/^(<[^ \/>]+)/,c="data-danger-index",l={dangerouslyRenderMarkup:function(e){s(r.canUseDOM);for(var t,l={},p=0;p<e.length;p++)s(e[p]),t=n(e[p]),t=a(t)?t:"*",l[t]=l[t]||[],l[t][p]=e[p];var d=[],f=0;for(t in l)if(l.hasOwnProperty(t)){var h=l[t];for(var m in h)if(h.hasOwnProperty(m)){var v=h[m];h[m]=v.replace(u,"$1 "+c+'="'+m+'" ')}var y=o(h.join(""),i);for(p=0;p<y.length;++p){var g=y[p];g.hasAttribute&&g.hasAttribute(c)&&(m=+g.getAttribute(c),g.removeAttribute(c),s(!d.hasOwnProperty(m)),d[m]=g,f+=1)}}return s(f===d.length),s(d.length===e.length),d},dangerouslyReplaceNodeWithMarkup:function(e,t){s(r.canUseDOM),s(t),s("html"!==e.tagName.toLowerCase());var n=o(t,i)[0];e.parentNode.replaceChild(n,e)}};t.exports=l},{"./ExecutionEnvironment":23,"./createNodesFromMarkup":114,"./emptyFunction":118,"./getMarkupWrap":129,"./invariant":137}],15:[function(e,t){"use strict";var n=e("./keyOf"),r=[n({ResponderEventPlugin:null}),n({SimpleEventPlugin:null}),n({TapEventPlugin:null}),n({EnterLeaveEventPlugin:null}),n({ChangeEventPlugin:null}),n({SelectEventPlugin:null}),n({CompositionEventPlugin:null}),n({BeforeInputEventPlugin:null}),n({AnalyticsEventPlugin:null}),n({MobileSafariClickEventPlugin:null})];t.exports=r},{"./keyOf":144}],16:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./EventPropagators"),o=e("./SyntheticMouseEvent"),i=e("./ReactMount"),a=e("./keyOf"),s=n.topLevelTypes,u=i.getFirstReactDOM,c={mouseEnter:{registrationName:a({onMouseEnter:null}),dependencies:[s.topMouseOut,s.topMouseOver]},mouseLeave:{registrationName:a({onMouseLeave:null}),dependencies:[s.topMouseOut,s.topMouseOver]}},l=[null,null],p={eventTypes:c,extractEvents:function(e,t,n,a){if(e===s.topMouseOver&&(a.relatedTarget||a.fromElement))return null;if(e!==s.topMouseOut&&e!==s.topMouseOver)return null;var p;if(t.window===t)p=t;else{var d=t.ownerDocument;p=d?d.defaultView||d.parentWindow:window}var f,h;if(e===s.topMouseOut?(f=t,h=u(a.relatedTarget||a.toElement)||p):(f=p,h=t),f===h)return null;var m=f?i.getID(f):"",v=h?i.getID(h):"",y=o.getPooled(c.mouseLeave,m,a);y.type="mouseleave",y.target=f,y.relatedTarget=h;var g=o.getPooled(c.mouseEnter,v,a);return g.type="mouseenter",g.target=h,g.relatedTarget=f,r.accumulateEnterLeaveDispatches(y,g,m,v),l[0]=y,l[1]=g,l}};t.exports=p},{"./EventConstants":17,"./EventPropagators":22,"./ReactMount":68,"./SyntheticMouseEvent":100,"./keyOf":144}],17:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({bubbled:null,captured:null}),o=n({topBlur:null,topChange:null,topClick:null,topCompositionEnd:null,topCompositionStart:null,topCompositionUpdate:null,topContextMenu:null,topCopy:null,topCut:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topError:null,topFocus:null,topInput:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topLoad:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topPaste:null,topReset:null,topScroll:null,topSelectionChange:null,topSubmit:null,topTextInput:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topWheel:null}),i={topLevelTypes:o,PropagationPhases:r};t.exports=i},{"./keyMirror":143}],18:[function(e,t){var n=e("./emptyFunction"),r={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,r){return e.addEventListener?(e.addEventListener(t,r,!0),{remove:function(){e.removeEventListener(t,r,!0)}}):{remove:n}},registerDefault:function(){}};t.exports=r},{"./emptyFunction":118}],19:[function(e,t){"use strict";var n=e("./EventPluginRegistry"),r=e("./EventPluginUtils"),o=e("./accumulateInto"),i=e("./forEachAccumulated"),a=e("./invariant"),s={},u=null,c=function(e){if(e){var t=r.executeDispatch,o=n.getPluginModuleForEvent(e);o&&o.executeDispatch&&(t=o.executeDispatch),r.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e)}},l=null,p={injection:{injectMount:r.injection.injectMount,injectInstanceHandle:function(e){l=e},getInstanceHandle:function(){return l},injectEventPluginOrder:n.injectEventPluginOrder,injectEventPluginsByName:n.injectEventPluginsByName},eventNameDispatchConfigs:n.eventNameDispatchConfigs,registrationNameModules:n.registrationNameModules,putListener:function(e,t,n){a(!n||"function"==typeof n);var r=s[t]||(s[t]={});r[e]=n},getListener:function(e,t){var n=s[t];return n&&n[e]},deleteListener:function(e,t){var n=s[t];n&&delete n[e]},deleteAllListeners:function(e){for(var t in s)delete s[t][e]},extractEvents:function(e,t,r,i){for(var a,s=n.plugins,u=0,c=s.length;c>u;u++){var l=s[u];if(l){var p=l.extractEvents(e,t,r,i);p&&(a=o(a,p))}}return a},enqueueEvents:function(e){e&&(u=o(u,e))},processEventQueue:function(){var e=u;u=null,i(e,c),a(!u)},__purge:function(){s={}},__getListenerBank:function(){return s}};t.exports=p},{"./EventPluginRegistry":20,"./EventPluginUtils":21,"./accumulateInto":106,"./forEachAccumulated":123,"./invariant":137}],20:[function(e,t){"use strict";function n(){if(a)for(var e in s){var t=s[e],n=a.indexOf(e);if(i(n>-1),!u.plugins[n]){i(t.extractEvents),u.plugins[n]=t;var o=t.eventTypes;for(var c in o)i(r(o[c],t,c))}}}function r(e,t,n){i(!u.eventNameDispatchConfigs.hasOwnProperty(n)),u.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var a in r)if(r.hasOwnProperty(a)){var s=r[a];o(s,t,n)}return!0}return e.registrationName?(o(e.registrationName,t,n),!0):!1}function o(e,t,n){i(!u.registrationNameModules[e]),u.registrationNameModules[e]=t,u.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var i=e("./invariant"),a=null,s={},u={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){i(!a),a=Array.prototype.slice.call(e),n()},injectEventPluginsByName:function(e){var t=!1;for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];s.hasOwnProperty(r)&&s[r]===o||(i(!s[r]),s[r]=o,t=!0)}t&&n()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return u.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=u.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){a=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];u.plugins.length=0;var t=u.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=u.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=u},{"./invariant":137}],21:[function(e,t){"use strict";function n(e){return e===m.topMouseUp||e===m.topTouchEnd||e===m.topTouchCancel}function r(e){return e===m.topMouseMove||e===m.topTouchMove}function o(e){return e===m.topMouseDown||e===m.topTouchStart}function i(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)t(e,n[o],r[o]);else n&&t(e,n,r)}function a(e,t,n){e.currentTarget=h.Mount.getNode(n);var r=t(e,n);return e.currentTarget=null,r}function s(e,t){i(e,t),e._dispatchListeners=null,e._dispatchIDs=null}function u(e){var t=e._dispatchListeners,n=e._dispatchIDs;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}function c(e){var t=u(e);return e._dispatchIDs=null,e._dispatchListeners=null,t}function l(e){var t=e._dispatchListeners,n=e._dispatchIDs;f(!Array.isArray(t));var r=t?t(e,n):null;return e._dispatchListeners=null,e._dispatchIDs=null,r}function p(e){return!!e._dispatchListeners}var d=e("./EventConstants"),f=e("./invariant"),h={Mount:null,injectMount:function(e){h.Mount=e}},m=d.topLevelTypes,v={isEndish:n,isMoveish:r,isStartish:o,executeDirectDispatch:l,executeDispatch:a,executeDispatchesInOrder:s,executeDispatchesInOrderStopAtTrue:c,hasDispatches:p,injection:h,useTouchEvents:!1};t.exports=v},{"./EventConstants":17,"./invariant":137}],22:[function(e,t){"use strict";function n(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return m(e,r)}function r(e,t,r){var o=t?h.bubbled:h.captured,i=n(e,r,o);i&&(r._dispatchListeners=d(r._dispatchListeners,i),r._dispatchIDs=d(r._dispatchIDs,e))}function o(e){e&&e.dispatchConfig.phasedRegistrationNames&&p.injection.getInstanceHandle().traverseTwoPhase(e.dispatchMarker,r,e)}function i(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=m(e,r);o&&(n._dispatchListeners=d(n._dispatchListeners,o),n._dispatchIDs=d(n._dispatchIDs,e))}}function a(e){e&&e.dispatchConfig.registrationName&&i(e.dispatchMarker,null,e)}function s(e){f(e,o)}function u(e,t,n,r){p.injection.getInstanceHandle().traverseEnterLeave(n,r,i,e,t)}function c(e){f(e,a)}var l=e("./EventConstants"),p=e("./EventPluginHub"),d=e("./accumulateInto"),f=e("./forEachAccumulated"),h=l.PropagationPhases,m=p.getListener,v={accumulateTwoPhaseDispatches:s,accumulateDirectDispatches:c,accumulateEnterLeaveDispatches:u};t.exports=v},{"./EventConstants":17,"./EventPluginHub":19,"./accumulateInto":106,"./forEachAccumulated":123}],23:[function(e,t){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};t.exports=r},{}],24:[function(e,t){"use strict";var n,r=e("./DOMProperty"),o=e("./ExecutionEnvironment"),i=r.injection.MUST_USE_ATTRIBUTE,a=r.injection.MUST_USE_PROPERTY,s=r.injection.HAS_BOOLEAN_VALUE,u=r.injection.HAS_SIDE_EFFECTS,c=r.injection.HAS_NUMERIC_VALUE,l=r.injection.HAS_POSITIVE_NUMERIC_VALUE,p=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(o.canUseDOM){var d=document.implementation;n=d&&d.hasFeature&&d.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var f={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:i|s,allowTransparency:i,alt:null,async:s,autoComplete:null,autoPlay:s,cellPadding:null,cellSpacing:null,charSet:i,checked:a|s,classID:i,className:n?i:a,cols:i|l,colSpan:null,content:null,contentEditable:null,contextMenu:i,controls:a|s,coords:null,crossOrigin:null,data:null,dateTime:i,defer:s,dir:null,disabled:i|s,download:p,draggable:null,encType:null,form:i,formNoValidate:s,frameBorder:i,height:i,hidden:i|s,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:a,label:null,lang:null,list:i,loop:a|s,manifest:i,max:null,maxLength:i,media:i,mediaGroup:null,method:null,min:null,multiple:a|s,muted:a|s,name:null,noValidate:s,open:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:a|s,rel:null,required:s,role:i,rows:i|l,rowSpan:null,sandbox:null,scope:null,scrolling:null,seamless:i|s,selected:a|s,shape:null,size:i|l,sizes:i,span:l,spellCheck:null,src:null,srcDoc:a,srcSet:i,start:c,step:null,style:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:a|u,width:i,wmode:i,autoCapitalize:null,autoCorrect:null,itemProp:i,itemScope:i|s,itemType:i,property:null},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",encType:"enctype",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=f},{"./DOMProperty":12,"./ExecutionEnvironment":23}],25:[function(e,t){"use strict";var n=e("./ReactLink"),r=e("./ReactStateSetters"),o={linkState:function(e){return new n(this.state[e],r.createStateKeySetter(this,e))}};t.exports=o},{"./ReactLink":66,"./ReactStateSetters":83}],26:[function(e,t){"use strict";function n(e){u(null==e.props.checkedLink||null==e.props.valueLink)}function r(e){n(e),u(null==e.props.value&&null==e.props.onChange)}function o(e){n(e),u(null==e.props.checked&&null==e.props.onChange)}function i(e){this.props.valueLink.requestChange(e.target.value)}function a(e){this.props.checkedLink.requestChange(e.target.checked)}var s=e("./ReactPropTypes"),u=e("./invariant"),c={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},l={Mixin:{propTypes:{value:function(e,t){return!e[t]||c[e.type]||e.onChange||e.readOnly||e.disabled?void 0:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t){return!e[t]||e.onChange||e.readOnly||e.disabled?void 0:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:s.func}},getValue:function(e){return e.props.valueLink?(r(e),e.props.valueLink.value):e.props.value},getChecked:function(e){return e.props.checkedLink?(o(e),e.props.checkedLink.value):e.props.checked},getOnChange:function(e){return e.props.valueLink?(r(e),i):e.props.checkedLink?(o(e),a):e.props.onChange}};t.exports=l},{"./ReactPropTypes":77,"./invariant":137}],27:[function(e,t){"use strict";function n(e){e.remove()}var r=e("./ReactBrowserEventEmitter"),o=e("./accumulateInto"),i=e("./forEachAccumulated"),a=e("./invariant"),s={trapBubbledEvent:function(e,t){a(this.isMounted());var n=r.trapBubbledEvent(e,t,this.getDOMNode());this._localEventListeners=o(this._localEventListeners,n)},componentWillUnmount:function(){this._localEventListeners&&i(this._localEventListeners,n)}};t.exports=s},{"./ReactBrowserEventEmitter":33,"./accumulateInto":106,"./forEachAccumulated":123,"./invariant":137}],28:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./emptyFunction"),o=n.topLevelTypes,i={eventTypes:null,extractEvents:function(e,t,n,i){if(e===o.topTouchStart){var a=i.target;a&&!a.onclick&&(a.onclick=r)}}};t.exports=i},{"./EventConstants":17,"./emptyFunction":118}],29:[function(e,t){function n(e){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var t=Object(e),n=Object.prototype.hasOwnProperty,r=1;r<arguments.length;r++){var o=arguments[r];if(null!=o){var i=Object(o);for(var a in i)n.call(i,a)&&(t[a]=i[a])}}return t}t.exports=n},{}],30:[function(e,t){"use strict";var n=e("./invariant"),r=function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)},o=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},i=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},a=function(e,t,n,r,o){var i=this;if(i.instancePool.length){var a=i.instancePool.pop();return i.call(a,e,t,n,r,o),a}return new i(e,t,n,r,o)},s=function(e){var t=this;n(e instanceof t),e.destructor&&e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},u=10,c=r,l=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||c,n.poolSize||(n.poolSize=u),n.release=s,n},p={addPoolingTo:l,oneArgumentPooler:r,twoArgumentPooler:o,threeArgumentPooler:i,fiveArgumentPooler:a};t.exports=p},{"./invariant":137}],31:[function(e,t){"use strict";var n=e("./DOMPropertyOperations"),r=e("./EventPluginUtils"),o=e("./ReactChildren"),i=e("./ReactComponent"),a=e("./ReactCompositeComponent"),s=e("./ReactContext"),u=e("./ReactCurrentOwner"),c=e("./ReactElement"),l=(e("./ReactElementValidator"),e("./ReactDOM")),p=e("./ReactDOMComponent"),d=e("./ReactDefaultInjection"),f=e("./ReactInstanceHandles"),h=e("./ReactLegacyElement"),m=e("./ReactMount"),v=e("./ReactMultiChild"),y=e("./ReactPerf"),g=e("./ReactPropTypes"),E=e("./ReactServerRendering"),C=e("./ReactTextComponent"),R=e("./Object.assign"),M=e("./deprecated"),b=e("./onlyChild"); 13 d.inject();var O=c.createElement,D=c.createFactory;O=h.wrapCreateElement(O),D=h.wrapCreateFactory(D);var x=y.measure("React","render",m.render),P={Children:{map:o.map,forEach:o.forEach,count:o.count,only:b},DOM:l,PropTypes:g,initializeTouchEvents:function(e){r.useTouchEvents=e},createClass:a.createClass,createElement:O,createFactory:D,constructAndRenderComponent:m.constructAndRenderComponent,constructAndRenderComponentByID:m.constructAndRenderComponentByID,render:x,renderToString:E.renderToString,renderToStaticMarkup:E.renderToStaticMarkup,unmountComponentAtNode:m.unmountComponentAtNode,isValidClass:h.isValidClass,isValidElement:c.isValidElement,withContext:s.withContext,__spread:R,renderComponent:M("React","renderComponent","render",this,x),renderComponentToString:M("React","renderComponentToString","renderToString",this,E.renderToString),renderComponentToStaticMarkup:M("React","renderComponentToStaticMarkup","renderToStaticMarkup",this,E.renderToStaticMarkup),isValidComponent:M("React","isValidComponent","isValidElement",this,c.isValidElement)};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({Component:i,CurrentOwner:u,DOMComponent:p,DOMPropertyOperations:n,InstanceHandles:f,Mount:m,MultiChild:v,TextComponent:C});P.version="0.12.0",t.exports=P},{"./DOMPropertyOperations":13,"./EventPluginUtils":21,"./Object.assign":29,"./ReactChildren":36,"./ReactComponent":37,"./ReactCompositeComponent":40,"./ReactContext":41,"./ReactCurrentOwner":42,"./ReactDOM":43,"./ReactDOMComponent":45,"./ReactDefaultInjection":55,"./ReactElement":56,"./ReactElementValidator":57,"./ReactInstanceHandles":64,"./ReactLegacyElement":65,"./ReactMount":68,"./ReactMultiChild":69,"./ReactPerf":73,"./ReactPropTypes":77,"./ReactServerRendering":81,"./ReactTextComponent":84,"./deprecated":117,"./onlyChild":148}],32:[function(e,t){"use strict";var n=e("./ReactEmptyComponent"),r=e("./ReactMount"),o=e("./invariant"),i={getDOMNode:function(){return o(this.isMounted()),n.isNullComponentID(this._rootNodeID)?null:r.getNode(this._rootNodeID)}};t.exports=i},{"./ReactEmptyComponent":58,"./ReactMount":68,"./invariant":137}],33:[function(e,t){"use strict";function n(e){return Object.prototype.hasOwnProperty.call(e,h)||(e[h]=d++,l[e[h]]={}),l[e[h]]}var r=e("./EventConstants"),o=e("./EventPluginHub"),i=e("./EventPluginRegistry"),a=e("./ReactEventEmitterMixin"),s=e("./ViewportMetrics"),u=e("./Object.assign"),c=e("./isEventSupported"),l={},p=!1,d=0,f={topBlur:"blur",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topScroll:"scroll",topSelectionChange:"selectionchange",topTextInput:"textInput",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topWheel:"wheel"},h="_reactListenersID"+String(Math.random()).slice(2),m=u({},a,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(m.handleTopLevel),m.ReactEventListener=e}},setEnabled:function(e){m.ReactEventListener&&m.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!m.ReactEventListener||!m.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var o=t,a=n(o),s=i.registrationNameDependencies[e],u=r.topLevelTypes,l=0,p=s.length;p>l;l++){var d=s[l];a.hasOwnProperty(d)&&a[d]||(d===u.topWheel?c("wheel")?m.ReactEventListener.trapBubbledEvent(u.topWheel,"wheel",o):c("mousewheel")?m.ReactEventListener.trapBubbledEvent(u.topWheel,"mousewheel",o):m.ReactEventListener.trapBubbledEvent(u.topWheel,"DOMMouseScroll",o):d===u.topScroll?c("scroll",!0)?m.ReactEventListener.trapCapturedEvent(u.topScroll,"scroll",o):m.ReactEventListener.trapBubbledEvent(u.topScroll,"scroll",m.ReactEventListener.WINDOW_HANDLE):d===u.topFocus||d===u.topBlur?(c("focus",!0)?(m.ReactEventListener.trapCapturedEvent(u.topFocus,"focus",o),m.ReactEventListener.trapCapturedEvent(u.topBlur,"blur",o)):c("focusin")&&(m.ReactEventListener.trapBubbledEvent(u.topFocus,"focusin",o),m.ReactEventListener.trapBubbledEvent(u.topBlur,"focusout",o)),a[u.topBlur]=!0,a[u.topFocus]=!0):f.hasOwnProperty(d)&&m.ReactEventListener.trapBubbledEvent(d,f[d],o),a[d]=!0)}},trapBubbledEvent:function(e,t,n){return m.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return m.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!p){var e=s.refreshScrollValues;m.ReactEventListener.monitorScrollValue(e),p=!0}},eventNameDispatchConfigs:o.eventNameDispatchConfigs,registrationNameModules:o.registrationNameModules,putListener:o.putListener,getListener:o.getListener,deleteListener:o.deleteListener,deleteAllListeners:o.deleteAllListeners});t.exports=m},{"./EventConstants":17,"./EventPluginHub":19,"./EventPluginRegistry":20,"./Object.assign":29,"./ReactEventEmitterMixin":60,"./ViewportMetrics":105,"./isEventSupported":138}],34:[function(e,t){"use strict";var n=e("./React"),r=e("./Object.assign"),o=n.createFactory(e("./ReactTransitionGroup")),i=n.createFactory(e("./ReactCSSTransitionGroupChild")),a=n.createClass({displayName:"ReactCSSTransitionGroup",propTypes:{transitionName:n.PropTypes.string.isRequired,transitionEnter:n.PropTypes.bool,transitionLeave:n.PropTypes.bool},getDefaultProps:function(){return{transitionEnter:!0,transitionLeave:!0}},_wrapChild:function(e){return i({name:this.props.transitionName,enter:this.props.transitionEnter,leave:this.props.transitionLeave},e)},render:function(){return o(r({},this.props,{childFactory:this._wrapChild}))}});t.exports=a},{"./Object.assign":29,"./React":31,"./ReactCSSTransitionGroupChild":35,"./ReactTransitionGroup":87}],35:[function(e,t){"use strict";var n=e("./React"),r=e("./CSSCore"),o=e("./ReactTransitionEvents"),i=e("./onlyChild"),a=17,s=n.createClass({displayName:"ReactCSSTransitionGroupChild",transition:function(e,t){var n=this.getDOMNode(),i=this.props.name+"-"+e,a=i+"-active",s=function(e){e&&e.target!==n||(r.removeClass(n,i),r.removeClass(n,a),o.removeEndEventListener(n,s),t&&t())};o.addEndEventListener(n,s),r.addClass(n,i),this.queueClass(a)},queueClass:function(e){this.classNameQueue.push(e),this.timeout||(this.timeout=setTimeout(this.flushClassNameQueue,a))},flushClassNameQueue:function(){this.isMounted()&&this.classNameQueue.forEach(r.addClass.bind(r,this.getDOMNode())),this.classNameQueue.length=0,this.timeout=null},componentWillMount:function(){this.classNameQueue=[]},componentWillUnmount:function(){this.timeout&&clearTimeout(this.timeout)},componentWillEnter:function(e){this.props.enter?this.transition("enter",e):e()},componentWillLeave:function(e){this.props.leave?this.transition("leave",e):e()},render:function(){return i(this.props.children)}});t.exports=s},{"./CSSCore":4,"./React":31,"./ReactTransitionEvents":86,"./onlyChild":148}],36:[function(e,t){"use strict";function n(e,t){this.forEachFunction=e,this.forEachContext=t}function r(e,t,n,r){var o=e;o.forEachFunction.call(o.forEachContext,t,r)}function o(e,t,o){if(null==e)return e;var i=n.getPooled(t,o);p(e,r,i),n.release(i)}function i(e,t,n){this.mapResult=e,this.mapFunction=t,this.mapContext=n}function a(e,t,n,r){var o=e,i=o.mapResult,a=!i.hasOwnProperty(n);if(a){var s=o.mapFunction.call(o.mapContext,t,r);i[n]=s}}function s(e,t,n){if(null==e)return e;var r={},o=i.getPooled(r,t,n);return p(e,a,o),i.release(o),r}function u(){return null}function c(e){return p(e,u,null)}var l=e("./PooledClass"),p=e("./traverseAllChildren"),d=(e("./warning"),l.twoArgumentPooler),f=l.threeArgumentPooler;l.addPoolingTo(n,d),l.addPoolingTo(i,f);var h={forEach:o,map:s,count:c};t.exports=h},{"./PooledClass":30,"./traverseAllChildren":153,"./warning":155}],37:[function(e,t){"use strict";var n=e("./ReactElement"),r=e("./ReactOwner"),o=e("./ReactUpdates"),i=e("./Object.assign"),a=e("./invariant"),s=e("./keyMirror"),u=s({MOUNTED:null,UNMOUNTED:null}),c=!1,l=null,p=null,d={injection:{injectEnvironment:function(e){a(!c),p=e.mountImageIntoNode,l=e.unmountIDFromEnvironment,d.BackendIDOperations=e.BackendIDOperations,c=!0}},LifeCycle:u,BackendIDOperations:null,Mixin:{isMounted:function(){return this._lifeCycleState===u.MOUNTED},setProps:function(e,t){var n=this._pendingElement||this._currentElement;this.replaceProps(i({},n.props,e),t)},replaceProps:function(e,t){a(this.isMounted()),a(0===this._mountDepth),this._pendingElement=n.cloneAndReplaceProps(this._pendingElement||this._currentElement,e),o.enqueueUpdate(this,t)},_setPropsInternal:function(e,t){var r=this._pendingElement||this._currentElement;this._pendingElement=n.cloneAndReplaceProps(r,i({},r.props,e)),o.enqueueUpdate(this,t)},construct:function(e){this.props=e.props,this._owner=e._owner,this._lifeCycleState=u.UNMOUNTED,this._pendingCallbacks=null,this._currentElement=e,this._pendingElement=null},mountComponent:function(e,t,n){a(!this.isMounted());var o=this._currentElement.ref;if(null!=o){var i=this._currentElement._owner;r.addComponentAsRefTo(this,o,i)}this._rootNodeID=e,this._lifeCycleState=u.MOUNTED,this._mountDepth=n},unmountComponent:function(){a(this.isMounted());var e=this._currentElement.ref;null!=e&&r.removeComponentAsRefFrom(this,e,this._owner),l(this._rootNodeID),this._rootNodeID=null,this._lifeCycleState=u.UNMOUNTED},receiveComponent:function(e,t){a(this.isMounted()),this._pendingElement=e,this.performUpdateIfNecessary(t)},performUpdateIfNecessary:function(e){if(null!=this._pendingElement){var t=this._currentElement,n=this._pendingElement;this._currentElement=n,this.props=n.props,this._owner=n._owner,this._pendingElement=null,this.updateComponent(e,t)}},updateComponent:function(e,t){var n=this._currentElement;(n._owner!==t._owner||n.ref!==t.ref)&&(null!=t.ref&&r.removeComponentAsRefFrom(this,t.ref,t._owner),null!=n.ref&&r.addComponentAsRefTo(this,n.ref,n._owner))},mountComponentIntoNode:function(e,t,n){var r=o.ReactReconcileTransaction.getPooled();r.perform(this._mountComponentIntoNode,this,e,t,r,n),o.ReactReconcileTransaction.release(r)},_mountComponentIntoNode:function(e,t,n,r){var o=this.mountComponent(e,n,0);p(o,t,r)},isOwnedBy:function(e){return this._owner===e},getSiblingByRef:function(e){var t=this._owner;return t&&t.refs?t.refs[e]:null}}};t.exports=d},{"./Object.assign":29,"./ReactElement":56,"./ReactOwner":72,"./ReactUpdates":88,"./invariant":137,"./keyMirror":143}],38:[function(e,t){"use strict";var n=e("./ReactDOMIDOperations"),r=e("./ReactMarkupChecksum"),o=e("./ReactMount"),i=e("./ReactPerf"),a=e("./ReactReconcileTransaction"),s=e("./getReactRootElementInContainer"),u=e("./invariant"),c=e("./setInnerHTML"),l=1,p=9,d={ReactReconcileTransaction:a,BackendIDOperations:n,unmountIDFromEnvironment:function(e){o.purgeID(e)},mountImageIntoNode:i.measure("ReactComponentBrowserEnvironment","mountImageIntoNode",function(e,t,n){if(u(t&&(t.nodeType===l||t.nodeType===p)),n){if(r.canReuseMarkup(e,s(t)))return;u(t.nodeType!==p)}u(t.nodeType!==p),c(t,e)})};t.exports=d},{"./ReactDOMIDOperations":47,"./ReactMarkupChecksum":67,"./ReactMount":68,"./ReactPerf":73,"./ReactReconcileTransaction":79,"./getReactRootElementInContainer":131,"./invariant":137,"./setInnerHTML":149}],39:[function(e,t){"use strict";var n=e("./shallowEqual"),r={shouldComponentUpdate:function(e,t){return!n(this.props,e)||!n(this.state,t)}};t.exports=r},{"./shallowEqual":150}],40:[function(e,t){"use strict";function n(e){var t=e._owner||null;return t&&t.constructor&&t.constructor.displayName?" Check the render method of `"+t.constructor.displayName+"`.":""}function r(e,t){for(var n in t)t.hasOwnProperty(n)&&D("function"==typeof t[n])}function o(e,t){var n=I.hasOwnProperty(t)?I[t]:null;L.hasOwnProperty(t)&&D(n===S.OVERRIDE_BASE),e.hasOwnProperty(t)&&D(n===S.DEFINE_MANY||n===S.DEFINE_MANY_MERGED)}function i(e){var t=e._compositeLifeCycleState;D(e.isMounted()||t===A.MOUNTING),D(null==f.current),D(t!==A.UNMOUNTING)}function a(e,t){if(t){D(!y.isValidFactory(t)),D(!h.isValidElement(t));var n=e.prototype;t.hasOwnProperty(_)&&k.mixins(e,t.mixins);for(var r in t)if(t.hasOwnProperty(r)&&r!==_){var i=t[r];if(o(n,r),k.hasOwnProperty(r))k[r](e,i);else{var a=I.hasOwnProperty(r),s=n.hasOwnProperty(r),u=i&&i.__reactDontBind,p="function"==typeof i,d=p&&!a&&!s&&!u;if(d)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[r]=i,n[r]=i;else if(s){var f=I[r];D(a&&(f===S.DEFINE_MANY_MERGED||f===S.DEFINE_MANY)),f===S.DEFINE_MANY_MERGED?n[r]=c(n[r],i):f===S.DEFINE_MANY&&(n[r]=l(n[r],i))}else n[r]=i}}}}function s(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in k;D(!o);var i=n in e;D(!i),e[n]=r}}}function u(e,t){return D(e&&t&&"object"==typeof e&&"object"==typeof t),T(t,function(t,n){D(void 0===e[n]),e[n]=t}),e}function c(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);return null==n?r:null==r?n:u(n,r)}}function l(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}var p=e("./ReactComponent"),d=e("./ReactContext"),f=e("./ReactCurrentOwner"),h=e("./ReactElement"),m=(e("./ReactElementValidator"),e("./ReactEmptyComponent")),v=e("./ReactErrorUtils"),y=e("./ReactLegacyElement"),g=e("./ReactOwner"),E=e("./ReactPerf"),C=e("./ReactPropTransferer"),R=e("./ReactPropTypeLocations"),M=(e("./ReactPropTypeLocationNames"),e("./ReactUpdates")),b=e("./Object.assign"),O=e("./instantiateReactComponent"),D=e("./invariant"),x=e("./keyMirror"),P=e("./keyOf"),T=(e("./monitorCodeUse"),e("./mapObject")),w=e("./shouldUpdateReactComponent"),_=(e("./warning"),P({mixins:null})),S=x({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),N=[],I={mixins:S.DEFINE_MANY,statics:S.DEFINE_MANY,propTypes:S.DEFINE_MANY,contextTypes:S.DEFINE_MANY,childContextTypes:S.DEFINE_MANY,getDefaultProps:S.DEFINE_MANY_MERGED,getInitialState:S.DEFINE_MANY_MERGED,getChildContext:S.DEFINE_MANY_MERGED,render:S.DEFINE_ONCE,componentWillMount:S.DEFINE_MANY,componentDidMount:S.DEFINE_MANY,componentWillReceiveProps:S.DEFINE_MANY,shouldComponentUpdate:S.DEFINE_ONCE,componentWillUpdate:S.DEFINE_MANY,componentDidUpdate:S.DEFINE_MANY,componentWillUnmount:S.DEFINE_MANY,updateComponent:S.OVERRIDE_BASE},k={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)a(e,t[n])},childContextTypes:function(e,t){r(e,t,R.childContext),e.childContextTypes=b({},e.childContextTypes,t)},contextTypes:function(e,t){r(e,t,R.context),e.contextTypes=b({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps=e.getDefaultProps?c(e.getDefaultProps,t):t},propTypes:function(e,t){r(e,t,R.prop),e.propTypes=b({},e.propTypes,t)},statics:function(e,t){s(e,t)}},A=x({MOUNTING:null,UNMOUNTING:null,RECEIVING_PROPS:null}),L={construct:function(){p.Mixin.construct.apply(this,arguments),g.Mixin.construct.apply(this,arguments),this.state=null,this._pendingState=null,this.context=null,this._compositeLifeCycleState=null},isMounted:function(){return p.Mixin.isMounted.call(this)&&this._compositeLifeCycleState!==A.MOUNTING},mountComponent:E.measure("ReactCompositeComponent","mountComponent",function(e,t,n){p.Mixin.mountComponent.call(this,e,t,n),this._compositeLifeCycleState=A.MOUNTING,this.__reactAutoBindMap&&this._bindAutoBindMethods(),this.context=this._processContext(this._currentElement._context),this.props=this._processProps(this.props),this.state=this.getInitialState?this.getInitialState():null,D("object"==typeof this.state&&!Array.isArray(this.state)),this._pendingState=null,this._pendingForceUpdate=!1,this.componentWillMount&&(this.componentWillMount(),this._pendingState&&(this.state=this._pendingState,this._pendingState=null)),this._renderedComponent=O(this._renderValidatedComponent(),this._currentElement.type),this._compositeLifeCycleState=null;var r=this._renderedComponent.mountComponent(e,t,n+1);return this.componentDidMount&&t.getReactMountReady().enqueue(this.componentDidMount,this),r}),unmountComponent:function(){this._compositeLifeCycleState=A.UNMOUNTING,this.componentWillUnmount&&this.componentWillUnmount(),this._compositeLifeCycleState=null,this._renderedComponent.unmountComponent(),this._renderedComponent=null,p.Mixin.unmountComponent.call(this)},setState:function(e,t){D("object"==typeof e||null==e),this.replaceState(b({},this._pendingState||this.state,e),t)},replaceState:function(e,t){i(this),this._pendingState=e,this._compositeLifeCycleState!==A.MOUNTING&&M.enqueueUpdate(this,t)},_processContext:function(e){var t=null,n=this.constructor.contextTypes;if(n){t={};for(var r in n)t[r]=e[r]}return t},_processChildContext:function(e){var t=this.getChildContext&&this.getChildContext();if(this.constructor.displayName||"ReactCompositeComponent",t){D("object"==typeof this.constructor.childContextTypes);for(var n in t)D(n in this.constructor.childContextTypes);return b({},e,t)}return e},_processProps:function(e){return e},_checkPropTypes:function(e,t,r){var o=this.constructor.displayName;for(var i in e)if(e.hasOwnProperty(i)){var a=e[i](t,i,o,r);a instanceof Error&&n(this)}},performUpdateIfNecessary:function(e){var t=this._compositeLifeCycleState;if(t!==A.MOUNTING&&t!==A.RECEIVING_PROPS&&(null!=this._pendingElement||null!=this._pendingState||this._pendingForceUpdate)){var n=this.context,r=this.props,o=this._currentElement;null!=this._pendingElement&&(o=this._pendingElement,n=this._processContext(o._context),r=this._processProps(o.props),this._pendingElement=null,this._compositeLifeCycleState=A.RECEIVING_PROPS,this.componentWillReceiveProps&&this.componentWillReceiveProps(r,n)),this._compositeLifeCycleState=null;var i=this._pendingState||this.state;this._pendingState=null;var a=this._pendingForceUpdate||!this.shouldComponentUpdate||this.shouldComponentUpdate(r,i,n);a?(this._pendingForceUpdate=!1,this._performComponentUpdate(o,r,i,n,e)):(this._currentElement=o,this.props=r,this.state=i,this.context=n,this._owner=o._owner)}},_performComponentUpdate:function(e,t,n,r,o){var i=this._currentElement,a=this.props,s=this.state,u=this.context;this.componentWillUpdate&&this.componentWillUpdate(t,n,r),this._currentElement=e,this.props=t,this.state=n,this.context=r,this._owner=e._owner,this.updateComponent(o,i),this.componentDidUpdate&&o.getReactMountReady().enqueue(this.componentDidUpdate.bind(this,a,s,u),this)},receiveComponent:function(e,t){(e!==this._currentElement||null==e._owner)&&p.Mixin.receiveComponent.call(this,e,t)},updateComponent:E.measure("ReactCompositeComponent","updateComponent",function(e,t){p.Mixin.updateComponent.call(this,e,t);var n=this._renderedComponent,r=n._currentElement,o=this._renderValidatedComponent();if(w(r,o))n.receiveComponent(o,e);else{var i=this._rootNodeID,a=n._rootNodeID;n.unmountComponent(),this._renderedComponent=O(o,this._currentElement.type);var s=this._renderedComponent.mountComponent(i,e,this._mountDepth+1);p.BackendIDOperations.dangerouslyReplaceNodeWithMarkupByID(a,s)}}),forceUpdate:function(e){var t=this._compositeLifeCycleState;D(this.isMounted()||t===A.MOUNTING),D(t!==A.UNMOUNTING&&null==f.current),this._pendingForceUpdate=!0,M.enqueueUpdate(this,e)},_renderValidatedComponent:E.measure("ReactCompositeComponent","_renderValidatedComponent",function(){var e,t=d.current;d.current=this._processChildContext(this._currentElement._context),f.current=this;try{e=this.render(),null===e||e===!1?(e=m.getEmptyComponent(),m.registerNullComponentID(this._rootNodeID)):m.deregisterNullComponentID(this._rootNodeID)}finally{d.current=t,f.current=null}return D(h.isValidElement(e)),e}),_bindAutoBindMethods:function(){for(var e in this.__reactAutoBindMap)if(this.__reactAutoBindMap.hasOwnProperty(e)){var t=this.__reactAutoBindMap[e];this[e]=this._bindAutoBindMethod(v.guard(t,this.constructor.displayName+"."+e))}},_bindAutoBindMethod:function(e){var t=this,n=e.bind(t);return n}},U=function(){};b(U.prototype,p.Mixin,g.Mixin,C.Mixin,L);var F={LifeCycle:A,Base:U,createClass:function(e){var t=function(){};t.prototype=new U,t.prototype.constructor=t,N.forEach(a.bind(null,t)),a(t,e),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),D(t.prototype.render);for(var n in I)t.prototype[n]||(t.prototype[n]=null);return y.wrapFactory(h.createFactory(t))},injection:{injectMixin:function(e){N.push(e)}}};t.exports=F},{"./Object.assign":29,"./ReactComponent":37,"./ReactContext":41,"./ReactCurrentOwner":42,"./ReactElement":56,"./ReactElementValidator":57,"./ReactEmptyComponent":58,"./ReactErrorUtils":59,"./ReactLegacyElement":65,"./ReactOwner":72,"./ReactPerf":73,"./ReactPropTransferer":74,"./ReactPropTypeLocationNames":75,"./ReactPropTypeLocations":76,"./ReactUpdates":88,"./instantiateReactComponent":136,"./invariant":137,"./keyMirror":143,"./keyOf":144,"./mapObject":145,"./monitorCodeUse":147,"./shouldUpdateReactComponent":151,"./warning":155}],41:[function(e,t){"use strict";var n=e("./Object.assign"),r={current:{},withContext:function(e,t){var o,i=r.current;r.current=n({},i,e);try{o=t()}finally{r.current=i}return o}};t.exports=r},{"./Object.assign":29}],42:[function(e,t){"use strict";var n={current:null};t.exports=n},{}],43:[function(e,t){"use strict";function n(e){return o.markNonLegacyFactory(r.createFactory(e))}var r=e("./ReactElement"),o=(e("./ReactElementValidator"),e("./ReactLegacyElement")),i=e("./mapObject"),a=i({a:"a",abbr:"abbr",address:"address",area:"area",article:"article",aside:"aside",audio:"audio",b:"b",base:"base",bdi:"bdi",bdo:"bdo",big:"big",blockquote:"blockquote",body:"body",br:"br",button:"button",canvas:"canvas",caption:"caption",cite:"cite",code:"code",col:"col",colgroup:"colgroup",data:"data",datalist:"datalist",dd:"dd",del:"del",details:"details",dfn:"dfn",dialog:"dialog",div:"div",dl:"dl",dt:"dt",em:"em",embed:"embed",fieldset:"fieldset",figcaption:"figcaption",figure:"figure",footer:"footer",form:"form",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",head:"head",header:"header",hr:"hr",html:"html",i:"i",iframe:"iframe",img:"img",input:"input",ins:"ins",kbd:"kbd",keygen:"keygen",label:"label",legend:"legend",li:"li",link:"link",main:"main",map:"map",mark:"mark",menu:"menu",menuitem:"menuitem",meta:"meta",meter:"meter",nav:"nav",noscript:"noscript",object:"object",ol:"ol",optgroup:"optgroup",option:"option",output:"output",p:"p",param:"param",picture:"picture",pre:"pre",progress:"progress",q:"q",rp:"rp",rt:"rt",ruby:"ruby",s:"s",samp:"samp",script:"script",section:"section",select:"select",small:"small",source:"source",span:"span",strong:"strong",style:"style",sub:"sub",summary:"summary",sup:"sup",table:"table",tbody:"tbody",td:"td",textarea:"textarea",tfoot:"tfoot",th:"th",thead:"thead",time:"time",title:"title",tr:"tr",track:"track",u:"u",ul:"ul","var":"var",video:"video",wbr:"wbr",circle:"circle",defs:"defs",ellipse:"ellipse",g:"g",line:"line",linearGradient:"linearGradient",mask:"mask",path:"path",pattern:"pattern",polygon:"polygon",polyline:"polyline",radialGradient:"radialGradient",rect:"rect",stop:"stop",svg:"svg",text:"text",tspan:"tspan"},n);t.exports=a},{"./ReactElement":56,"./ReactElementValidator":57,"./ReactLegacyElement":65,"./mapObject":145}],44:[function(e,t){"use strict";var n=e("./AutoFocusMixin"),r=e("./ReactBrowserComponentMixin"),o=e("./ReactCompositeComponent"),i=e("./ReactElement"),a=e("./ReactDOM"),s=e("./keyMirror"),u=i.createFactory(a.button.type),c=s({onClick:!0,onDoubleClick:!0,onMouseDown:!0,onMouseMove:!0,onMouseUp:!0,onClickCapture:!0,onDoubleClickCapture:!0,onMouseDownCapture:!0,onMouseMoveCapture:!0,onMouseUpCapture:!0}),l=o.createClass({displayName:"ReactDOMButton",mixins:[n,r],render:function(){var e={};for(var t in this.props)!this.props.hasOwnProperty(t)||this.props.disabled&&c[t]||(e[t]=this.props[t]);return u(e,this.props.children)}});t.exports=l},{"./AutoFocusMixin":2,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56,"./keyMirror":143}],45:[function(e,t){"use strict";function n(e){e&&(y(null==e.children||null==e.dangerouslySetInnerHTML),y(null==e.style||"object"==typeof e.style))}function r(e,t,n,r){var o=d.findReactContainerForID(e);if(o){var i=o.nodeType===O?o.ownerDocument:o;C(t,i)}r.getPutListenerQueue().enqueuePutListener(e,t,n)}function o(e){T.call(P,e)||(y(x.test(e)),P[e]=!0)}function i(e){o(e),this._tag=e,this.tagName=e.toUpperCase()}var a=e("./CSSPropertyOperations"),s=e("./DOMProperty"),u=e("./DOMPropertyOperations"),c=e("./ReactBrowserComponentMixin"),l=e("./ReactComponent"),p=e("./ReactBrowserEventEmitter"),d=e("./ReactMount"),f=e("./ReactMultiChild"),h=e("./ReactPerf"),m=e("./Object.assign"),v=e("./escapeTextForBrowser"),y=e("./invariant"),g=(e("./isEventSupported"),e("./keyOf")),E=(e("./monitorCodeUse"),p.deleteListener),C=p.listenTo,R=p.registrationNameModules,M={string:!0,number:!0},b=g({style:null}),O=1,D={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},x=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,P={},T={}.hasOwnProperty;i.displayName="ReactDOMComponent",i.Mixin={mountComponent:h.measure("ReactDOMComponent","mountComponent",function(e,t,r){l.Mixin.mountComponent.call(this,e,t,r),n(this.props);var o=D[this._tag]?"":"</"+this._tag+">";return this._createOpenTagMarkupAndPutListeners(t)+this._createContentMarkup(t)+o}),_createOpenTagMarkupAndPutListeners:function(e){var t=this.props,n="<"+this._tag;for(var o in t)if(t.hasOwnProperty(o)){var i=t[o];if(null!=i)if(R.hasOwnProperty(o))r(this._rootNodeID,o,i,e);else{o===b&&(i&&(i=t.style=m({},t.style)),i=a.createMarkupForStyles(i));var s=u.createMarkupForProperty(o,i);s&&(n+=" "+s)}}if(e.renderToStaticMarkup)return n+">";var c=u.createMarkupForID(this._rootNodeID);return n+" "+c+">"},_createContentMarkup:function(e){var t=this.props.dangerouslySetInnerHTML;if(null!=t){if(null!=t.__html)return t.__html}else{var n=M[typeof this.props.children]?this.props.children:null,r=null!=n?null:this.props.children;if(null!=n)return v(n);if(null!=r){var o=this.mountChildren(r,e);return o.join("")}}return""},receiveComponent:function(e,t){(e!==this._currentElement||null==e._owner)&&l.Mixin.receiveComponent.call(this,e,t)},updateComponent:h.measure("ReactDOMComponent","updateComponent",function(e,t){n(this._currentElement.props),l.Mixin.updateComponent.call(this,e,t),this._updateDOMProperties(t.props,e),this._updateDOMChildren(t.props,e)}),_updateDOMProperties:function(e,t){var n,o,i,a=this.props;for(n in e)if(!a.hasOwnProperty(n)&&e.hasOwnProperty(n))if(n===b){var u=e[n];for(o in u)u.hasOwnProperty(o)&&(i=i||{},i[o]="")}else R.hasOwnProperty(n)?E(this._rootNodeID,n):(s.isStandardName[n]||s.isCustomAttribute(n))&&l.BackendIDOperations.deletePropertyByID(this._rootNodeID,n);for(n in a){var c=a[n],p=e[n];if(a.hasOwnProperty(n)&&c!==p)if(n===b)if(c&&(c=a.style=m({},c)),p){for(o in p)!p.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(i=i||{},i[o]="");for(o in c)c.hasOwnProperty(o)&&p[o]!==c[o]&&(i=i||{},i[o]=c[o])}else i=c;else R.hasOwnProperty(n)?r(this._rootNodeID,n,c,t):(s.isStandardName[n]||s.isCustomAttribute(n))&&l.BackendIDOperations.updatePropertyByID(this._rootNodeID,n,c)}i&&l.BackendIDOperations.updateStylesByID(this._rootNodeID,i)},_updateDOMChildren:function(e,t){var n=this.props,r=M[typeof e.children]?e.children:null,o=M[typeof n.children]?n.children:null,i=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,a=n.dangerouslySetInnerHTML&&n.dangerouslySetInnerHTML.__html,s=null!=r?null:e.children,u=null!=o?null:n.children,c=null!=r||null!=i,p=null!=o||null!=a;null!=s&&null==u?this.updateChildren(null,t):c&&!p&&this.updateTextContent(""),null!=o?r!==o&&this.updateTextContent(""+o):null!=a?i!==a&&l.BackendIDOperations.updateInnerHTMLByID(this._rootNodeID,a):null!=u&&this.updateChildren(u,t)},unmountComponent:function(){this.unmountChildren(),p.deleteAllListeners(this._rootNodeID),l.Mixin.unmountComponent.call(this)}},m(i.prototype,l.Mixin,i.Mixin,f.Mixin,c),t.exports=i},{"./CSSPropertyOperations":6,"./DOMProperty":12,"./DOMPropertyOperations":13,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactBrowserEventEmitter":33,"./ReactComponent":37,"./ReactMount":68,"./ReactMultiChild":69,"./ReactPerf":73,"./escapeTextForBrowser":120,"./invariant":137,"./isEventSupported":138,"./keyOf":144,"./monitorCodeUse":147}],46:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./LocalEventTrapMixin"),o=e("./ReactBrowserComponentMixin"),i=e("./ReactCompositeComponent"),a=e("./ReactElement"),s=e("./ReactDOM"),u=a.createFactory(s.form.type),c=i.createClass({displayName:"ReactDOMForm",mixins:[o,r],render:function(){return u(this.props)},componentDidMount:function(){this.trapBubbledEvent(n.topLevelTypes.topReset,"reset"),this.trapBubbledEvent(n.topLevelTypes.topSubmit,"submit")}});t.exports=c},{"./EventConstants":17,"./LocalEventTrapMixin":27,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56}],47:[function(e,t){"use strict";var n=e("./CSSPropertyOperations"),r=e("./DOMChildrenOperations"),o=e("./DOMPropertyOperations"),i=e("./ReactMount"),a=e("./ReactPerf"),s=e("./invariant"),u=e("./setInnerHTML"),c={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},l={updatePropertyByID:a.measure("ReactDOMIDOperations","updatePropertyByID",function(e,t,n){var r=i.getNode(e);s(!c.hasOwnProperty(t)),null!=n?o.setValueForProperty(r,t,n):o.deleteValueForProperty(r,t)}),deletePropertyByID:a.measure("ReactDOMIDOperations","deletePropertyByID",function(e,t,n){var r=i.getNode(e);s(!c.hasOwnProperty(t)),o.deleteValueForProperty(r,t,n)}),updateStylesByID:a.measure("ReactDOMIDOperations","updateStylesByID",function(e,t){var r=i.getNode(e);n.setValueForStyles(r,t)}),updateInnerHTMLByID:a.measure("ReactDOMIDOperations","updateInnerHTMLByID",function(e,t){var n=i.getNode(e);u(n,t)}),updateTextContentByID:a.measure("ReactDOMIDOperations","updateTextContentByID",function(e,t){var n=i.getNode(e);r.updateTextContent(n,t)}),dangerouslyReplaceNodeWithMarkupByID:a.measure("ReactDOMIDOperations","dangerouslyReplaceNodeWithMarkupByID",function(e,t){var n=i.getNode(e);r.dangerouslyReplaceNodeWithMarkup(n,t)}),dangerouslyProcessChildrenUpdates:a.measure("ReactDOMIDOperations","dangerouslyProcessChildrenUpdates",function(e,t){for(var n=0;n<e.length;n++)e[n].parentNode=i.getNode(e[n].parentID);r.processUpdates(e,t)})};t.exports=l},{"./CSSPropertyOperations":6,"./DOMChildrenOperations":11,"./DOMPropertyOperations":13,"./ReactMount":68,"./ReactPerf":73,"./invariant":137,"./setInnerHTML":149}],48:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./LocalEventTrapMixin"),o=e("./ReactBrowserComponentMixin"),i=e("./ReactCompositeComponent"),a=e("./ReactElement"),s=e("./ReactDOM"),u=a.createFactory(s.img.type),c=i.createClass({displayName:"ReactDOMImg",tagName:"IMG",mixins:[o,r],render:function(){return u(this.props)},componentDidMount:function(){this.trapBubbledEvent(n.topLevelTypes.topLoad,"load"),this.trapBubbledEvent(n.topLevelTypes.topError,"error")}});t.exports=c},{"./EventConstants":17,"./LocalEventTrapMixin":27,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56}],49:[function(e,t){"use strict";function n(){this.isMounted()&&this.forceUpdate()}var r=e("./AutoFocusMixin"),o=e("./DOMPropertyOperations"),i=e("./LinkedValueUtils"),a=e("./ReactBrowserComponentMixin"),s=e("./ReactCompositeComponent"),u=e("./ReactElement"),c=e("./ReactDOM"),l=e("./ReactMount"),p=e("./ReactUpdates"),d=e("./Object.assign"),f=e("./invariant"),h=u.createFactory(c.input.type),m={},v=s.createClass({displayName:"ReactDOMInput",mixins:[r,i.Mixin,a],getInitialState:function(){var e=this.props.defaultValue; 14 return{initialChecked:this.props.defaultChecked||!1,initialValue:null!=e?e:null}},render:function(){var e=d({},this.props);e.defaultChecked=null,e.defaultValue=null;var t=i.getValue(this);e.value=null!=t?t:this.state.initialValue;var n=i.getChecked(this);return e.checked=null!=n?n:this.state.initialChecked,e.onChange=this._handleChange,h(e,this.props.children)},componentDidMount:function(){var e=l.getID(this.getDOMNode());m[e]=this},componentWillUnmount:function(){var e=this.getDOMNode(),t=l.getID(e);delete m[t]},componentDidUpdate:function(){var e=this.getDOMNode();null!=this.props.checked&&o.setValueForProperty(e,"checked",this.props.checked||!1);var t=i.getValue(this);null!=t&&o.setValueForProperty(e,"value",""+t)},_handleChange:function(e){var t,r=i.getOnChange(this);r&&(t=r.call(this,e)),p.asap(n,this);var o=this.props.name;if("radio"===this.props.type&&null!=o){for(var a=this.getDOMNode(),s=a;s.parentNode;)s=s.parentNode;for(var u=s.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),c=0,d=u.length;d>c;c++){var h=u[c];if(h!==a&&h.form===a.form){var v=l.getID(h);f(v);var y=m[v];f(y),p.asap(n,y)}}}return t}});t.exports=v},{"./AutoFocusMixin":2,"./DOMPropertyOperations":13,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56,"./ReactMount":68,"./ReactUpdates":88,"./invariant":137}],50:[function(e,t){"use strict";var n=e("./ReactBrowserComponentMixin"),r=e("./ReactCompositeComponent"),o=e("./ReactElement"),i=e("./ReactDOM"),a=(e("./warning"),o.createFactory(i.option.type)),s=r.createClass({displayName:"ReactDOMOption",mixins:[n],componentWillMount:function(){},render:function(){return a(this.props,this.props.children)}});t.exports=s},{"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56,"./warning":155}],51:[function(e,t){"use strict";function n(){this.isMounted()&&(this.setState({value:this._pendingValue}),this._pendingValue=0)}function r(e,t){if(null!=e[t])if(e.multiple){if(!Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to <select> must be an array if `multiple` is true.")}else if(Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to <select> must be a scalar value if `multiple` is false.")}function o(e,t){var n,r,o,i=e.props.multiple,a=null!=t?t:e.state.value,s=e.getDOMNode().options;if(i)for(n={},r=0,o=a.length;o>r;++r)n[""+a[r]]=!0;else n=""+a;for(r=0,o=s.length;o>r;r++){var u=i?n.hasOwnProperty(s[r].value):s[r].value===n;u!==s[r].selected&&(s[r].selected=u)}}var i=e("./AutoFocusMixin"),a=e("./LinkedValueUtils"),s=e("./ReactBrowserComponentMixin"),u=e("./ReactCompositeComponent"),c=e("./ReactElement"),l=e("./ReactDOM"),p=e("./ReactUpdates"),d=e("./Object.assign"),f=c.createFactory(l.select.type),h=u.createClass({displayName:"ReactDOMSelect",mixins:[i,a.Mixin,s],propTypes:{defaultValue:r,value:r},getInitialState:function(){return{value:this.props.defaultValue||(this.props.multiple?[]:"")}},componentWillMount:function(){this._pendingValue=null},componentWillReceiveProps:function(e){!this.props.multiple&&e.multiple?this.setState({value:[this.state.value]}):this.props.multiple&&!e.multiple&&this.setState({value:this.state.value[0]})},render:function(){var e=d({},this.props);return e.onChange=this._handleChange,e.value=null,f(e,this.props.children)},componentDidMount:function(){o(this,a.getValue(this))},componentDidUpdate:function(e){var t=a.getValue(this),n=!!e.multiple,r=!!this.props.multiple;(null!=t||n!==r)&&o(this,t)},_handleChange:function(e){var t,r=a.getOnChange(this);r&&(t=r.call(this,e));var o;if(this.props.multiple){o=[];for(var i=e.target.options,s=0,u=i.length;u>s;s++)i[s].selected&&o.push(i[s].value)}else o=e.target.value;return this._pendingValue=o,p.asap(n,this),t}});t.exports=h},{"./AutoFocusMixin":2,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56,"./ReactUpdates":88}],52:[function(e,t){"use strict";function n(e,t,n,r){return e===n&&t===r}function r(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var i=o.text.length,a=i+r;return{start:i,end:a}}function o(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var r=t.anchorNode,o=t.anchorOffset,i=t.focusNode,a=t.focusOffset,s=t.getRangeAt(0),u=n(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),c=u?0:s.toString().length,l=s.cloneRange();l.selectNodeContents(e),l.setEnd(s.startContainer,s.startOffset);var p=n(l.startContainer,l.startOffset,l.endContainer,l.endOffset),d=p?0:l.toString().length,f=d+c,h=document.createRange();h.setStart(r,o),h.setEnd(i,a);var m=h.collapsed;return{start:m?f:d,end:m?d:f}}function i(e,t){var n,r,o=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function a(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i="undefined"==typeof t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var s=u(e,o),l=u(e,i);if(s&&l){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(l.node,l.offset)):(p.setEnd(l.node,l.offset),n.addRange(p))}}}var s=e("./ExecutionEnvironment"),u=e("./getNodeForCharacterOffset"),c=e("./getTextContentAccessor"),l=s.canUseDOM&&document.selection,p={getOffsets:l?r:o,setOffsets:l?i:a};t.exports=p},{"./ExecutionEnvironment":23,"./getNodeForCharacterOffset":130,"./getTextContentAccessor":132}],53:[function(e,t){"use strict";function n(){this.isMounted()&&this.forceUpdate()}var r=e("./AutoFocusMixin"),o=e("./DOMPropertyOperations"),i=e("./LinkedValueUtils"),a=e("./ReactBrowserComponentMixin"),s=e("./ReactCompositeComponent"),u=e("./ReactElement"),c=e("./ReactDOM"),l=e("./ReactUpdates"),p=e("./Object.assign"),d=e("./invariant"),f=(e("./warning"),u.createFactory(c.textarea.type)),h=s.createClass({displayName:"ReactDOMTextarea",mixins:[r,i.Mixin,a],getInitialState:function(){var e=this.props.defaultValue,t=this.props.children;null!=t&&(d(null==e),Array.isArray(t)&&(d(t.length<=1),t=t[0]),e=""+t),null==e&&(e="");var n=i.getValue(this);return{initialValue:""+(null!=n?n:e)}},render:function(){var e=p({},this.props);return d(null==e.dangerouslySetInnerHTML),e.defaultValue=null,e.value=null,e.onChange=this._handleChange,f(e,this.state.initialValue)},componentDidUpdate:function(){var e=i.getValue(this);if(null!=e){var t=this.getDOMNode();o.setValueForProperty(t,"value",""+e)}},_handleChange:function(e){var t,r=i.getOnChange(this);return r&&(t=r.call(this,e)),l.asap(n,this),t}});t.exports=h},{"./AutoFocusMixin":2,"./DOMPropertyOperations":13,"./LinkedValueUtils":26,"./Object.assign":29,"./ReactBrowserComponentMixin":32,"./ReactCompositeComponent":40,"./ReactDOM":43,"./ReactElement":56,"./ReactUpdates":88,"./invariant":137,"./warning":155}],54:[function(e,t){"use strict";function n(){this.reinitializeTransaction()}var r=e("./ReactUpdates"),o=e("./Transaction"),i=e("./Object.assign"),a=e("./emptyFunction"),s={initialize:a,close:function(){p.isBatchingUpdates=!1}},u={initialize:a,close:r.flushBatchedUpdates.bind(r)},c=[u,s];i(n.prototype,o.Mixin,{getTransactionWrappers:function(){return c}});var l=new n,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n){var r=p.isBatchingUpdates;p.isBatchingUpdates=!0,r?e(t,n):l.perform(e,null,t,n)}};t.exports=p},{"./Object.assign":29,"./ReactUpdates":88,"./Transaction":104,"./emptyFunction":118}],55:[function(e,t){"use strict";function n(){O.EventEmitter.injectReactEventListener(b),O.EventPluginHub.injectEventPluginOrder(s),O.EventPluginHub.injectInstanceHandle(D),O.EventPluginHub.injectMount(x),O.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:w,EnterLeaveEventPlugin:u,ChangeEventPlugin:o,CompositionEventPlugin:a,MobileSafariClickEventPlugin:p,SelectEventPlugin:P,BeforeInputEventPlugin:r}),O.NativeComponent.injectGenericComponentClass(m),O.NativeComponent.injectComponentClasses({button:v,form:y,img:g,input:E,option:C,select:R,textarea:M,html:S("html"),head:S("head"),body:S("body")}),O.CompositeComponent.injectMixin(d),O.DOMProperty.injectDOMPropertyConfig(l),O.DOMProperty.injectDOMPropertyConfig(_),O.EmptyComponent.injectEmptyComponent("noscript"),O.Updates.injectReconcileTransaction(f.ReactReconcileTransaction),O.Updates.injectBatchingStrategy(h),O.RootIndex.injectCreateReactRootIndex(c.canUseDOM?i.createReactRootIndex:T.createReactRootIndex),O.Component.injectEnvironment(f)}var r=e("./BeforeInputEventPlugin"),o=e("./ChangeEventPlugin"),i=e("./ClientReactRootIndex"),a=e("./CompositionEventPlugin"),s=e("./DefaultEventPluginOrder"),u=e("./EnterLeaveEventPlugin"),c=e("./ExecutionEnvironment"),l=e("./HTMLDOMPropertyConfig"),p=e("./MobileSafariClickEventPlugin"),d=e("./ReactBrowserComponentMixin"),f=e("./ReactComponentBrowserEnvironment"),h=e("./ReactDefaultBatchingStrategy"),m=e("./ReactDOMComponent"),v=e("./ReactDOMButton"),y=e("./ReactDOMForm"),g=e("./ReactDOMImg"),E=e("./ReactDOMInput"),C=e("./ReactDOMOption"),R=e("./ReactDOMSelect"),M=e("./ReactDOMTextarea"),b=e("./ReactEventListener"),O=e("./ReactInjection"),D=e("./ReactInstanceHandles"),x=e("./ReactMount"),P=e("./SelectEventPlugin"),T=e("./ServerReactRootIndex"),w=e("./SimpleEventPlugin"),_=e("./SVGDOMPropertyConfig"),S=e("./createFullPageComponent");t.exports={inject:n}},{"./BeforeInputEventPlugin":3,"./ChangeEventPlugin":8,"./ClientReactRootIndex":9,"./CompositionEventPlugin":10,"./DefaultEventPluginOrder":15,"./EnterLeaveEventPlugin":16,"./ExecutionEnvironment":23,"./HTMLDOMPropertyConfig":24,"./MobileSafariClickEventPlugin":28,"./ReactBrowserComponentMixin":32,"./ReactComponentBrowserEnvironment":38,"./ReactDOMButton":44,"./ReactDOMComponent":45,"./ReactDOMForm":46,"./ReactDOMImg":48,"./ReactDOMInput":49,"./ReactDOMOption":50,"./ReactDOMSelect":51,"./ReactDOMTextarea":53,"./ReactDefaultBatchingStrategy":54,"./ReactEventListener":61,"./ReactInjection":62,"./ReactInstanceHandles":64,"./ReactMount":68,"./SVGDOMPropertyConfig":89,"./SelectEventPlugin":90,"./ServerReactRootIndex":91,"./SimpleEventPlugin":92,"./createFullPageComponent":113}],56:[function(e,t){"use strict";var n=e("./ReactContext"),r=e("./ReactCurrentOwner"),o=(e("./warning"),{key:!0,ref:!0}),i=function(e,t,n,r,o,i){this.type=e,this.key=t,this.ref=n,this._owner=r,this._context=o,this.props=i};i.prototype={_isReactElement:!0},i.createElement=function(e,t,a){var s,u={},c=null,l=null;if(null!=t){l=void 0===t.ref?null:t.ref,c=null==t.key?null:""+t.key;for(s in t)t.hasOwnProperty(s)&&!o.hasOwnProperty(s)&&(u[s]=t[s])}var p=arguments.length-2;if(1===p)u.children=a;else if(p>1){for(var d=Array(p),f=0;p>f;f++)d[f]=arguments[f+2];u.children=d}if(e.defaultProps){var h=e.defaultProps;for(s in h)"undefined"==typeof u[s]&&(u[s]=h[s])}return new i(e,c,l,r.current,n.current,u)},i.createFactory=function(e){var t=i.createElement.bind(null,e);return t.type=e,t},i.cloneAndReplaceProps=function(e,t){var n=new i(e.type,e.key,e.ref,e._owner,e._context,t);return n},i.isValidElement=function(e){var t=!(!e||!e._isReactElement);return t},t.exports=i},{"./ReactContext":41,"./ReactCurrentOwner":42,"./warning":155}],57:[function(e,t){"use strict";function n(){var e=p.current;return e&&e.constructor.displayName||void 0}function r(e,t){e._store.validated||null!=e.key||(e._store.validated=!0,i("react_key_warning",'Each child in an array should have a unique "key" prop.',e,t))}function o(e,t,n){v.test(e)&&i("react_numeric_key_warning","Child objects should have non-numeric keys so ordering is preserved.",t,n)}function i(e,t,r,o){var i=n(),a=o.displayName,s=i||a,u=f[e];if(!u.hasOwnProperty(s)){u[s]=!0,t+=i?" Check the render method of "+i+".":" Check the renderComponent call using <"+a+">.";var c=null;r._owner&&r._owner!==p.current&&(c=r._owner.constructor.displayName,t+=" It was passed a child from "+c+"."),t+=" See http://fb.me/react-warning-keys for more information.",d(e,{component:s,componentOwner:c}),console.warn(t)}}function a(){var e=n()||"";h.hasOwnProperty(e)||(h[e]=!0,d("react_object_map_children"))}function s(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++){var i=e[n];c.isValidElement(i)&&r(i,t)}else if(c.isValidElement(e))e._store.validated=!0;else if(e&&"object"==typeof e){a();for(var s in e)o(s,e[s],t)}}function u(e,t,n,r){for(var o in t)if(t.hasOwnProperty(o)){var i;try{i=t[o](n,o,e,r)}catch(a){i=a}i instanceof Error&&!(i.message in m)&&(m[i.message]=!0,d("react_failed_descriptor_type_check",{message:i.message}))}}var c=e("./ReactElement"),l=e("./ReactPropTypeLocations"),p=e("./ReactCurrentOwner"),d=e("./monitorCodeUse"),f={react_key_warning:{},react_numeric_key_warning:{}},h={},m={},v=/^\d+$/,y={createElement:function(e){var t=c.createElement.apply(this,arguments);if(null==t)return t;for(var n=2;n<arguments.length;n++)s(arguments[n],e);var r=e.displayName;return e.propTypes&&u(r,e.propTypes,t.props,l.prop),e.contextTypes&&u(r,e.contextTypes,t._context,l.context),t},createFactory:function(e){var t=y.createElement.bind(null,e);return t.type=e,t}};t.exports=y},{"./ReactCurrentOwner":42,"./ReactElement":56,"./ReactPropTypeLocations":76,"./monitorCodeUse":147}],58:[function(e,t){"use strict";function n(){return u(a),a()}function r(e){c[e]=!0}function o(e){delete c[e]}function i(e){return c[e]}var a,s=e("./ReactElement"),u=e("./invariant"),c={},l={injectEmptyComponent:function(e){a=s.createFactory(e)}},p={deregisterNullComponentID:o,getEmptyComponent:n,injection:l,isNullComponentID:i,registerNullComponentID:r};t.exports=p},{"./ReactElement":56,"./invariant":137}],59:[function(e,t){"use strict";var n={guard:function(e){return e}};t.exports=n},{}],60:[function(e,t){"use strict";function n(e){r.enqueueEvents(e),r.processEventQueue()}var r=e("./EventPluginHub"),o={handleTopLevel:function(e,t,o,i){var a=r.extractEvents(e,t,o,i);n(a)}};t.exports=o},{"./EventPluginHub":19}],61:[function(e,t){"use strict";function n(e){var t=l.getID(e),n=c.getReactRootIDFromNodeID(t),r=l.findReactContainerForID(n),o=l.getFirstReactDOM(r);return o}function r(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function o(e){for(var t=l.getFirstReactDOM(f(e.nativeEvent))||window,r=t;r;)e.ancestors.push(r),r=n(r);for(var o=0,i=e.ancestors.length;i>o;o++){t=e.ancestors[o];var a=l.getID(t)||"";m._handleTopLevel(e.topLevelType,t,a,e.nativeEvent)}}function i(e){var t=h(window);e(t)}var a=e("./EventListener"),s=e("./ExecutionEnvironment"),u=e("./PooledClass"),c=e("./ReactInstanceHandles"),l=e("./ReactMount"),p=e("./ReactUpdates"),d=e("./Object.assign"),f=e("./getEventTarget"),h=e("./getUnboundedScrollPosition");d(r.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),u.addPoolingTo(r,u.twoArgumentPooler);var m={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:s.canUseDOM?window:null,setHandleTopLevel:function(e){m._handleTopLevel=e},setEnabled:function(e){m._enabled=!!e},isEnabled:function(){return m._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?a.listen(r,t,m.dispatchEvent.bind(null,e)):void 0},trapCapturedEvent:function(e,t,n){var r=n;return r?a.capture(r,t,m.dispatchEvent.bind(null,e)):void 0},monitorScrollValue:function(e){var t=i.bind(null,e);a.listen(window,"scroll",t),a.listen(window,"resize",t)},dispatchEvent:function(e,t){if(m._enabled){var n=r.getPooled(e,t);try{p.batchedUpdates(o,n)}finally{r.release(n)}}}};t.exports=m},{"./EventListener":18,"./ExecutionEnvironment":23,"./Object.assign":29,"./PooledClass":30,"./ReactInstanceHandles":64,"./ReactMount":68,"./ReactUpdates":88,"./getEventTarget":128,"./getUnboundedScrollPosition":133}],62:[function(e,t){"use strict";var n=e("./DOMProperty"),r=e("./EventPluginHub"),o=e("./ReactComponent"),i=e("./ReactCompositeComponent"),a=e("./ReactEmptyComponent"),s=e("./ReactBrowserEventEmitter"),u=e("./ReactNativeComponent"),c=e("./ReactPerf"),l=e("./ReactRootIndex"),p=e("./ReactUpdates"),d={Component:o.injection,CompositeComponent:i.injection,DOMProperty:n.injection,EmptyComponent:a.injection,EventPluginHub:r.injection,EventEmitter:s.injection,NativeComponent:u.injection,Perf:c.injection,RootIndex:l.injection,Updates:p.injection};t.exports=d},{"./DOMProperty":12,"./EventPluginHub":19,"./ReactBrowserEventEmitter":33,"./ReactComponent":37,"./ReactCompositeComponent":40,"./ReactEmptyComponent":58,"./ReactNativeComponent":71,"./ReactPerf":73,"./ReactRootIndex":80,"./ReactUpdates":88}],63:[function(e,t){"use strict";function n(e){return o(document.documentElement,e)}var r=e("./ReactDOMSelection"),o=e("./containsNode"),i=e("./focusNode"),a=e("./getActiveElement"),s={hasSelectionCapabilities:function(e){return e&&("INPUT"===e.nodeName&&"text"===e.type||"TEXTAREA"===e.nodeName||"true"===e.contentEditable)},getSelectionInformation:function(){var e=a();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t=a(),r=e.focusedElem,o=e.selectionRange;t!==r&&n(r)&&(s.hasSelectionCapabilities(r)&&s.setSelection(r,o),i(r))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&"INPUT"===e.nodeName){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=r.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,o=t.end;if("undefined"==typeof o&&(o=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(o,e.value.length);else if(document.selection&&"INPUT"===e.nodeName){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",o-n),i.select()}else r.setOffsets(e,t)}};t.exports=s},{"./ReactDOMSelection":52,"./containsNode":111,"./focusNode":122,"./getActiveElement":124}],64:[function(e,t){"use strict";function n(e){return d+e.toString(36)}function r(e,t){return e.charAt(t)===d||t===e.length}function o(e){return""===e||e.charAt(0)===d&&e.charAt(e.length-1)!==d}function i(e,t){return 0===t.indexOf(e)&&r(t,e.length)}function a(e){return e?e.substr(0,e.lastIndexOf(d)):""}function s(e,t){if(p(o(e)&&o(t)),p(i(e,t)),e===t)return e;for(var n=e.length+f,a=n;a<t.length&&!r(t,a);a++);return t.substr(0,a)}function u(e,t){var n=Math.min(e.length,t.length);if(0===n)return"";for(var i=0,a=0;n>=a;a++)if(r(e,a)&&r(t,a))i=a;else if(e.charAt(a)!==t.charAt(a))break;var s=e.substr(0,i);return p(o(s)),s}function c(e,t,n,r,o,u){e=e||"",t=t||"",p(e!==t);var c=i(t,e);p(c||i(e,t));for(var l=0,d=c?a:s,f=e;;f=d(f,t)){var m;if(o&&f===e||u&&f===t||(m=n(f,c,r)),m===!1||f===t)break;p(l++<h)}}var l=e("./ReactRootIndex"),p=e("./invariant"),d=".",f=d.length,h=100,m={createReactRootID:function(){return n(l.createReactRootIndex())},createReactID:function(e,t){return e+t},getReactRootIDFromNodeID:function(e){if(e&&e.charAt(0)===d&&e.length>1){var t=e.indexOf(d,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var i=u(e,t);i!==e&&c(e,i,n,r,!1,!0),i!==t&&c(i,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(c("",e,t,n,!0,!1),c(e,"",t,n,!1,!0))},traverseAncestors:function(e,t,n){c("",e,t,n,!0,!1)},_getFirstCommonAncestorID:u,_getNextDescendantID:s,isAncestorIDOf:i,SEPARATOR:d};t.exports=m},{"./ReactRootIndex":80,"./invariant":137}],65:[function(e,t){"use strict";function n(e,t){if("function"==typeof t)for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];if("function"==typeof r){var o=r.bind(t);for(var i in r)r.hasOwnProperty(i)&&(o[i]=r[i]);e[n]=o}else e[n]=r}}var r=(e("./ReactCurrentOwner"),e("./invariant")),o=(e("./monitorCodeUse"),e("./warning"),{}),i={},a={};a.wrapCreateFactory=function(e){var t=function(t){return"function"!=typeof t?e(t):t.isReactNonLegacyFactory?e(t.type):t.isReactLegacyFactory?e(t.type):t};return t},a.wrapCreateElement=function(e){var t=function(t){if("function"!=typeof t)return e.apply(this,arguments);var n;return t.isReactNonLegacyFactory?(n=Array.prototype.slice.call(arguments,0),n[0]=t.type,e.apply(this,n)):t.isReactLegacyFactory?(t._isMockFunction&&(t.type._mockedReactClassConstructor=t),n=Array.prototype.slice.call(arguments,0),n[0]=t.type,e.apply(this,n)):t.apply(null,Array.prototype.slice.call(arguments,1))};return t},a.wrapFactory=function(e){r("function"==typeof e);var t=function(){return e.apply(this,arguments)};return n(t,e.type),t.isReactLegacyFactory=o,t.type=e.type,t},a.markNonLegacyFactory=function(e){return e.isReactNonLegacyFactory=i,e},a.isValidFactory=function(e){return"function"==typeof e&&e.isReactLegacyFactory===o},a.isValidClass=function(e){return a.isValidFactory(e)},a._isLegacyCallWarningEnabled=!0,t.exports=a},{"./ReactCurrentOwner":42,"./invariant":137,"./monitorCodeUse":147,"./warning":155}],66:[function(e,t){"use strict";function n(e,t){this.value=e,this.requestChange=t}function r(e){var t={value:"undefined"==typeof e?o.PropTypes.any.isRequired:e.isRequired,requestChange:o.PropTypes.func.isRequired};return o.PropTypes.shape(t)}var o=e("./React");n.PropTypes={link:r},t.exports=n},{"./React":31}],67:[function(e,t){"use strict";var n=e("./adler32"),r={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=n(e);return e.replace(">"," "+r.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var o=t.getAttribute(r.CHECKSUM_ATTR_NAME);o=o&&parseInt(o,10);var i=n(e);return i===o}};t.exports=r},{"./adler32":107}],68:[function(e,t){"use strict";function n(e){var t=E(e);return t&&I.getID(t)}function r(e){var t=o(e);if(t)if(x.hasOwnProperty(t)){var n=x[t];n!==e&&(R(!s(n,t)),x[t]=e)}else x[t]=e;return t}function o(e){return e&&e.getAttribute&&e.getAttribute(D)||""}function i(e,t){var n=o(e);n!==t&&delete x[n],e.setAttribute(D,t),x[t]=e}function a(e){return x.hasOwnProperty(e)&&s(x[e],e)||(x[e]=I.findReactNodeByID(e)),x[e]}function s(e,t){if(e){R(o(e)===t);var n=I.findReactContainerForID(t);if(n&&y(n,e))return!0}return!1}function u(e){delete x[e]}function c(e){var t=x[e];return t&&s(t,e)?void(N=t):!1}function l(e){N=null,m.traverseAncestors(e,c);var t=N;return N=null,t}var p=e("./DOMProperty"),d=e("./ReactBrowserEventEmitter"),f=(e("./ReactCurrentOwner"),e("./ReactElement")),h=e("./ReactLegacyElement"),m=e("./ReactInstanceHandles"),v=e("./ReactPerf"),y=e("./containsNode"),g=e("./deprecated"),E=e("./getReactRootElementInContainer"),C=e("./instantiateReactComponent"),R=e("./invariant"),M=e("./shouldUpdateReactComponent"),b=(e("./warning"),h.wrapCreateElement(f.createElement)),O=m.SEPARATOR,D=p.ID_ATTRIBUTE_NAME,x={},P=1,T=9,w={},_={},S=[],N=null,I={_instancesByReactRootID:w,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){var o=t.props;return I.scrollMonitor(n,function(){e.replaceProps(o,r)}),e},_registerComponent:function(e,t){R(t&&(t.nodeType===P||t.nodeType===T)),d.ensureScrollValueMonitoring();var n=I.registerContainer(t);return w[n]=e,n},_renderNewRootComponent:v.measure("ReactMount","_renderNewRootComponent",function(e,t,n){var r=C(e,null),o=I._registerComponent(r,t);return r.mountComponentIntoNode(o,t,n),r}),render:function(e,t,r){R(f.isValidElement(e));var o=w[n(t)];if(o){var i=o._currentElement;if(M(i,e))return I._updateRootComponent(o,e,t,r);I.unmountComponentAtNode(t)}var a=E(t),s=a&&I.isRenderedByReact(a),u=s&&!o,c=I._renderNewRootComponent(e,t,u);return r&&r.call(c),c},constructAndRenderComponent:function(e,t,n){var r=b(e,t);return I.render(r,n)},constructAndRenderComponentByID:function(e,t,n){var r=document.getElementById(n);return R(r),I.constructAndRenderComponent(e,t,r)},registerContainer:function(e){var t=n(e);return t&&(t=m.getReactRootIDFromNodeID(t)),t||(t=m.createReactRootID()),_[t]=e,t},unmountComponentAtNode:function(e){var t=n(e),r=w[t];return r?(I.unmountComponentFromNode(r,e),delete w[t],delete _[t],!0):!1},unmountComponentFromNode:function(e,t){for(e.unmountComponent(),t.nodeType===T&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)},findReactContainerForID:function(e){var t=m.getReactRootIDFromNodeID(e),n=_[t];return n},findReactNodeByID:function(e){var t=I.findReactContainerForID(e);return I.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=I.getID(e);return t?t.charAt(0)===O:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if(I.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){var n=S,r=0,o=l(t)||e;for(n[0]=o.firstChild,n.length=1;r<n.length;){for(var i,a=n[r++];a;){var s=I.getID(a);s?t===s?i=a:m.isAncestorIDOf(s,t)&&(n.length=r=0,n.push(a.firstChild)):n.push(a.firstChild),a=a.nextSibling}if(i)return n.length=0,i}n.length=0,R(!1)},getReactRootID:n,getID:r,setID:i,getNode:a,purgeID:u};I.renderComponent=g("ReactMount","renderComponent","render",this,I.render),t.exports=I},{"./DOMProperty":12,"./ReactBrowserEventEmitter":33,"./ReactCurrentOwner":42,"./ReactElement":56,"./ReactInstanceHandles":64,"./ReactLegacyElement":65,"./ReactPerf":73,"./containsNode":111,"./deprecated":117,"./getReactRootElementInContainer":131,"./instantiateReactComponent":136,"./invariant":137,"./shouldUpdateReactComponent":151,"./warning":155}],69:[function(e,t){"use strict";function n(e,t,n){h.push({parentID:e,parentNode:null,type:c.INSERT_MARKUP,markupIndex:m.push(t)-1,textContent:null,fromIndex:null,toIndex:n})}function r(e,t,n){h.push({parentID:e,parentNode:null,type:c.MOVE_EXISTING,markupIndex:null,textContent:null,fromIndex:t,toIndex:n})}function o(e,t){h.push({parentID:e,parentNode:null,type:c.REMOVE_NODE,markupIndex:null,textContent:null,fromIndex:t,toIndex:null})}function i(e,t){h.push({parentID:e,parentNode:null,type:c.TEXT_CONTENT,markupIndex:null,textContent:t,fromIndex:null,toIndex:null})}function a(){h.length&&(u.BackendIDOperations.dangerouslyProcessChildrenUpdates(h,m),s())}function s(){h.length=0,m.length=0}var u=e("./ReactComponent"),c=e("./ReactMultiChildUpdateTypes"),l=e("./flattenChildren"),p=e("./instantiateReactComponent"),d=e("./shouldUpdateReactComponent"),f=0,h=[],m=[],v={Mixin:{mountChildren:function(e,t){var n=l(e),r=[],o=0;this._renderedChildren=n;for(var i in n){var a=n[i];if(n.hasOwnProperty(i)){var s=p(a,null);n[i]=s;var u=this._rootNodeID+i,c=s.mountComponent(u,t,this._mountDepth+1);s._mountIndex=o,r.push(c),o++}}return r},updateTextContent:function(e){f++;var t=!0;try{var n=this._renderedChildren;for(var r in n)n.hasOwnProperty(r)&&this._unmountChildByName(n[r],r);this.setTextContent(e),t=!1}finally{f--,f||(t?s():a())}},updateChildren:function(e,t){f++;var n=!0;try{this._updateChildren(e,t),n=!1}finally{f--,f||(n?s():a())}},_updateChildren:function(e,t){var n=l(e),r=this._renderedChildren;if(n||r){var o,i=0,a=0;for(o in n)if(n.hasOwnProperty(o)){var s=r&&r[o],u=s&&s._currentElement,c=n[o];if(d(u,c))this.moveChild(s,a,i),i=Math.max(s._mountIndex,i),s.receiveComponent(c,t),s._mountIndex=a;else{s&&(i=Math.max(s._mountIndex,i),this._unmountChildByName(s,o));var f=p(c,null);this._mountChildByNameAtIndex(f,o,a,t)}a++}for(o in r)!r.hasOwnProperty(o)||n&&n[o]||this._unmountChildByName(r[o],o)}},unmountChildren:function(){var e=this._renderedChildren;for(var t in e){var n=e[t];n.unmountComponent&&n.unmountComponent()}this._renderedChildren=null},moveChild:function(e,t,n){e._mountIndex<n&&r(this._rootNodeID,e._mountIndex,t)},createChild:function(e,t){n(this._rootNodeID,t,e._mountIndex)},removeChild:function(e){o(this._rootNodeID,e._mountIndex)},setTextContent:function(e){i(this._rootNodeID,e)},_mountChildByNameAtIndex:function(e,t,n,r){var o=this._rootNodeID+t,i=e.mountComponent(o,r,this._mountDepth+1);e._mountIndex=n,this.createChild(e,i),this._renderedChildren=this._renderedChildren||{},this._renderedChildren[t]=e},_unmountChildByName:function(e,t){this.removeChild(e),e._mountIndex=null,e.unmountComponent(),delete this._renderedChildren[t]}}};t.exports=v},{"./ReactComponent":37,"./ReactMultiChildUpdateTypes":70,"./flattenChildren":121,"./instantiateReactComponent":136,"./shouldUpdateReactComponent":151}],70:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({INSERT_MARKUP:null,MOVE_EXISTING:null,REMOVE_NODE:null,TEXT_CONTENT:null});t.exports=r},{"./keyMirror":143}],71:[function(e,t){"use strict";function n(e,t,n){var r=a[e];return null==r?(o(i),new i(e,t)):n===e?(o(i),new i(e,t)):new r.type(t)}var r=e("./Object.assign"),o=e("./invariant"),i=null,a={},s={injectGenericComponentClass:function(e){i=e},injectComponentClasses:function(e){r(a,e)}},u={createInstanceForTag:n,injection:s};t.exports=u},{"./Object.assign":29,"./invariant":137}],72:[function(e,t){"use strict";var n=e("./emptyObject"),r=e("./invariant"),o={isValidOwner:function(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)},addComponentAsRefTo:function(e,t,n){r(o.isValidOwner(n)),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){r(o.isValidOwner(n)),n.refs[t]===e&&n.detachRef(t)},Mixin:{construct:function(){this.refs=n},attachRef:function(e,t){r(t.isOwnedBy(this));var o=this.refs===n?this.refs={}:this.refs;o[e]=t},detachRef:function(e){delete this.refs[e]}}};t.exports=o},{"./emptyObject":119,"./invariant":137}],73:[function(e,t){"use strict";function n(e,t,n){return n}var r={enableMeasure:!1,storedMeasure:n,measure:function(e,t,n){return n},injection:{injectMeasure:function(e){r.storedMeasure=e}}};t.exports=r},{}],74:[function(e,t){"use strict";function n(e){return function(t,n,r){t[n]=t.hasOwnProperty(n)?e(t[n],r):r}}function r(e,t){for(var n in t)if(t.hasOwnProperty(n)){var r=c[n];r&&c.hasOwnProperty(n)?r(e,n,t[n]):e.hasOwnProperty(n)||(e[n]=t[n])}return e}var o=e("./Object.assign"),i=e("./emptyFunction"),a=e("./invariant"),s=e("./joinClasses"),u=(e("./warning"),n(function(e,t){return o({},t,e)})),c={children:i,className:n(s),style:u},l={TransferStrategies:c,mergeProps:function(e,t){return r(o({},e),t)},Mixin:{transferPropsTo:function(e){return a(e._owner===this),r(e.props,this.props),e}}};t.exports=l},{"./Object.assign":29,"./emptyFunction":118,"./invariant":137,"./joinClasses":142,"./warning":155}],75:[function(e,t){"use strict";var n={};t.exports=n},{}],76:[function(e,t){"use strict";var n=e("./keyMirror"),r=n({prop:null,context:null,childContext:null});t.exports=r},{"./keyMirror":143}],77:[function(e,t){"use strict";function n(e){function t(t,n,r,o,i){if(o=o||C,null!=n[r])return e(n,r,o,i);var a=y[i];return t?new Error("Required "+a+" `"+r+"` was not specified in "+("`"+o+"`.")):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function r(e){function t(t,n,r,o){var i=t[n],a=h(i);if(a!==e){var s=y[o],u=m(i);return new Error("Invalid "+s+" `"+n+"` of type `"+u+"` "+("supplied to `"+r+"`, expected `"+e+"`."))}}return n(t)}function o(){return n(E.thatReturns())}function i(e){function t(t,n,r,o){var i=t[n];if(!Array.isArray(i)){var a=y[o],s=h(i);return new Error("Invalid "+a+" `"+n+"` of type "+("`"+s+"` supplied to `"+r+"`, expected an array."))}for(var u=0;u<i.length;u++){var c=e(i,u,r,o);if(c instanceof Error)return c}}return n(t)}function a(){function e(e,t,n,r){if(!v.isValidElement(e[t])){var o=y[r];return new Error("Invalid "+o+" `"+t+"` supplied to "+("`"+n+"`, expected a ReactElement."))}}return n(e)}function s(e){function t(t,n,r,o){if(!(t[n]instanceof e)){var i=y[o],a=e.name||C;return new Error("Invalid "+i+" `"+n+"` supplied to "+("`"+r+"`, expected instance of `"+a+"`."))}}return n(t)}function u(e){function t(t,n,r,o){for(var i=t[n],a=0;a<e.length;a++)if(i===e[a])return;var s=y[o],u=JSON.stringify(e);return new Error("Invalid "+s+" `"+n+"` of value `"+i+"` "+("supplied to `"+r+"`, expected one of "+u+"."))}return n(t)}function c(e){function t(t,n,r,o){var i=t[n],a=h(i);if("object"!==a){var s=y[o];return new Error("Invalid "+s+" `"+n+"` of type "+("`"+a+"` supplied to `"+r+"`, expected an object.")) 15 }for(var u in i)if(i.hasOwnProperty(u)){var c=e(i,u,r,o);if(c instanceof Error)return c}}return n(t)}function l(e){function t(t,n,r,o){for(var i=0;i<e.length;i++){var a=e[i];if(null==a(t,n,r,o))return}var s=y[o];return new Error("Invalid "+s+" `"+n+"` supplied to "+("`"+r+"`."))}return n(t)}function p(){function e(e,t,n,r){if(!f(e[t])){var o=y[r];return new Error("Invalid "+o+" `"+t+"` supplied to "+("`"+n+"`, expected a ReactNode."))}}return n(e)}function d(e){function t(t,n,r,o){var i=t[n],a=h(i);if("object"!==a){var s=y[o];return new Error("Invalid "+s+" `"+n+"` of type `"+a+"` "+("supplied to `"+r+"`, expected `object`."))}for(var u in e){var c=e[u];if(c){var l=c(i,u,r,o);if(l)return l}}}return n(t,"expected `object`")}function f(e){switch(typeof e){case"number":case"string":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(f);if(v.isValidElement(e))return!0;for(var t in e)if(!f(e[t]))return!1;return!0;default:return!1}}function h(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":t}function m(e){var t=h(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}var v=e("./ReactElement"),y=e("./ReactPropTypeLocationNames"),g=e("./deprecated"),E=e("./emptyFunction"),C="<<anonymous>>",R=a(),M=p(),b={array:r("array"),bool:r("boolean"),func:r("function"),number:r("number"),object:r("object"),string:r("string"),any:o(),arrayOf:i,element:R,instanceOf:s,node:M,objectOf:c,oneOf:u,oneOfType:l,shape:d,component:g("React.PropTypes","component","element",this,R),renderable:g("React.PropTypes","renderable","node",this,M)};t.exports=b},{"./ReactElement":56,"./ReactPropTypeLocationNames":75,"./deprecated":117,"./emptyFunction":118}],78:[function(e,t){"use strict";function n(){this.listenersToPut=[]}var r=e("./PooledClass"),o=e("./ReactBrowserEventEmitter"),i=e("./Object.assign");i(n.prototype,{enqueuePutListener:function(e,t,n){this.listenersToPut.push({rootNodeID:e,propKey:t,propValue:n})},putListeners:function(){for(var e=0;e<this.listenersToPut.length;e++){var t=this.listenersToPut[e];o.putListener(t.rootNodeID,t.propKey,t.propValue)}},reset:function(){this.listenersToPut.length=0},destructor:function(){this.reset()}}),r.addPoolingTo(n),t.exports=n},{"./Object.assign":29,"./PooledClass":30,"./ReactBrowserEventEmitter":33}],79:[function(e,t){"use strict";function n(){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=r.getPooled(null),this.putListenerQueue=s.getPooled()}var r=e("./CallbackQueue"),o=e("./PooledClass"),i=e("./ReactBrowserEventEmitter"),a=e("./ReactInputSelection"),s=e("./ReactPutListenerQueue"),u=e("./Transaction"),c=e("./Object.assign"),l={initialize:a.getSelectionInformation,close:a.restoreSelection},p={initialize:function(){var e=i.isEnabled();return i.setEnabled(!1),e},close:function(e){i.setEnabled(e)}},d={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},f={initialize:function(){this.putListenerQueue.reset()},close:function(){this.putListenerQueue.putListeners()}},h=[f,l,p,d],m={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},getPutListenerQueue:function(){return this.putListenerQueue},destructor:function(){r.release(this.reactMountReady),this.reactMountReady=null,s.release(this.putListenerQueue),this.putListenerQueue=null}};c(n.prototype,u.Mixin,m),o.addPoolingTo(n),t.exports=n},{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactBrowserEventEmitter":33,"./ReactInputSelection":63,"./ReactPutListenerQueue":78,"./Transaction":104}],80:[function(e,t){"use strict";var n={injectCreateReactRootIndex:function(e){r.createReactRootIndex=e}},r={createReactRootIndex:null,injection:n};t.exports=r},{}],81:[function(e,t){"use strict";function n(e){c(o.isValidElement(e));var t;try{var n=i.createReactRootID();return t=s.getPooled(!1),t.perform(function(){var r=u(e,null),o=r.mountComponent(n,t,0);return a.addChecksumToMarkup(o)},null)}finally{s.release(t)}}function r(e){c(o.isValidElement(e));var t;try{var n=i.createReactRootID();return t=s.getPooled(!0),t.perform(function(){var r=u(e,null);return r.mountComponent(n,t,0)},null)}finally{s.release(t)}}var o=e("./ReactElement"),i=e("./ReactInstanceHandles"),a=e("./ReactMarkupChecksum"),s=e("./ReactServerRenderingTransaction"),u=e("./instantiateReactComponent"),c=e("./invariant");t.exports={renderToString:n,renderToStaticMarkup:r}},{"./ReactElement":56,"./ReactInstanceHandles":64,"./ReactMarkupChecksum":67,"./ReactServerRenderingTransaction":82,"./instantiateReactComponent":136,"./invariant":137}],82:[function(e,t){"use strict";function n(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.reactMountReady=o.getPooled(null),this.putListenerQueue=i.getPooled()}var r=e("./PooledClass"),o=e("./CallbackQueue"),i=e("./ReactPutListenerQueue"),a=e("./Transaction"),s=e("./Object.assign"),u=e("./emptyFunction"),c={initialize:function(){this.reactMountReady.reset()},close:u},l={initialize:function(){this.putListenerQueue.reset()},close:u},p=[l,c],d={getTransactionWrappers:function(){return p},getReactMountReady:function(){return this.reactMountReady},getPutListenerQueue:function(){return this.putListenerQueue},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null,i.release(this.putListenerQueue),this.putListenerQueue=null}};s(n.prototype,a.Mixin,d),r.addPoolingTo(n),t.exports=n},{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactPutListenerQueue":78,"./Transaction":104,"./emptyFunction":118}],83:[function(e,t){"use strict";function n(e,t){var n={};return function(r){n[t]=r,e.setState(n)}}var r={createStateSetter:function(e,t){return function(n,r,o,i,a,s){var u=t.call(e,n,r,o,i,a,s);u&&e.setState(u)}},createStateKeySetter:function(e,t){var r=e.__keySetters||(e.__keySetters={});return r[t]||(r[t]=n(e,t))}};r.Mixin={createStateSetter:function(e){return r.createStateSetter(this,e)},createStateKeySetter:function(e){return r.createStateKeySetter(this,e)}},t.exports=r},{}],84:[function(e,t){"use strict";var n=e("./DOMPropertyOperations"),r=e("./ReactComponent"),o=e("./ReactElement"),i=e("./Object.assign"),a=e("./escapeTextForBrowser"),s=function(){};i(s.prototype,r.Mixin,{mountComponent:function(e,t,o){r.Mixin.mountComponent.call(this,e,t,o);var i=a(this.props);return t.renderToStaticMarkup?i:"<span "+n.createMarkupForID(e)+">"+i+"</span>"},receiveComponent:function(e){var t=e.props;t!==this.props&&(this.props=t,r.BackendIDOperations.updateTextContentByID(this._rootNodeID,t))}});var u=function(e){return new o(s,null,null,null,null,e)};u.type=s,t.exports=u},{"./DOMPropertyOperations":13,"./Object.assign":29,"./ReactComponent":37,"./ReactElement":56,"./escapeTextForBrowser":120}],85:[function(e,t){"use strict";var n=e("./ReactChildren"),r={getChildMapping:function(e){return n.map(e,function(e){return e})},mergeChildMappings:function(e,t){function n(n){return t.hasOwnProperty(n)?t[n]:e[n]}e=e||{},t=t||{};var r={},o=[];for(var i in e)t.hasOwnProperty(i)?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var u in t){if(r.hasOwnProperty(u))for(a=0;a<r[u].length;a++){var c=r[u][a];s[r[u][a]]=n(c)}s[u]=n(u)}for(a=0;a<o.length;a++)s[o[a]]=n(o[a]);return s}};t.exports=r},{"./ReactChildren":36}],86:[function(e,t){"use strict";function n(){var e=document.createElement("div"),t=e.style;"AnimationEvent"in window||delete a.animationend.animation,"TransitionEvent"in window||delete a.transitionend.transition;for(var n in a){var r=a[n];for(var o in r)if(o in t){s.push(r[o]);break}}}function r(e,t,n){e.addEventListener(t,n,!1)}function o(e,t,n){e.removeEventListener(t,n,!1)}var i=e("./ExecutionEnvironment"),a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},s=[];i.canUseDOM&&n();var u={addEndEventListener:function(e,t){return 0===s.length?void window.setTimeout(t,0):void s.forEach(function(n){r(e,n,t)})},removeEndEventListener:function(e,t){0!==s.length&&s.forEach(function(n){o(e,n,t)})}};t.exports=u},{"./ExecutionEnvironment":23}],87:[function(e,t){"use strict";var n=e("./React"),r=e("./ReactTransitionChildMapping"),o=e("./Object.assign"),i=e("./cloneWithProps"),a=e("./emptyFunction"),s=n.createClass({displayName:"ReactTransitionGroup",propTypes:{component:n.PropTypes.any,childFactory:n.PropTypes.func},getDefaultProps:function(){return{component:"span",childFactory:a.thatReturnsArgument}},getInitialState:function(){return{children:r.getChildMapping(this.props.children)}},componentWillReceiveProps:function(e){var t=r.getChildMapping(e.children),n=this.state.children;this.setState({children:r.mergeChildMappings(n,t)});var o;for(o in t){var i=n&&n.hasOwnProperty(o);!t[o]||i||this.currentlyTransitioningKeys[o]||this.keysToEnter.push(o)}for(o in n){var a=t&&t.hasOwnProperty(o);!n[o]||a||this.currentlyTransitioningKeys[o]||this.keysToLeave.push(o)}},componentWillMount:function(){this.currentlyTransitioningKeys={},this.keysToEnter=[],this.keysToLeave=[]},componentDidUpdate:function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)},performEnter:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillEnter?t.componentWillEnter(this._handleDoneEntering.bind(this,e)):this._handleDoneEntering(e)},_handleDoneEntering:function(e){var t=this.refs[e];t.componentDidEnter&&t.componentDidEnter(),delete this.currentlyTransitioningKeys[e];var n=r.getChildMapping(this.props.children);n&&n.hasOwnProperty(e)||this.performLeave(e)},performLeave:function(e){this.currentlyTransitioningKeys[e]=!0;var t=this.refs[e];t.componentWillLeave?t.componentWillLeave(this._handleDoneLeaving.bind(this,e)):this._handleDoneLeaving(e)},_handleDoneLeaving:function(e){var t=this.refs[e];t.componentDidLeave&&t.componentDidLeave(),delete this.currentlyTransitioningKeys[e];var n=r.getChildMapping(this.props.children);if(n&&n.hasOwnProperty(e))this.performEnter(e);else{var i=o({},this.state.children);delete i[e],this.setState({children:i})}},render:function(){var e={};for(var t in this.state.children){var r=this.state.children[t];r&&(e[t]=i(this.props.childFactory(r),{ref:t}))}return n.createElement(this.props.component,this.props,e)}});t.exports=s},{"./Object.assign":29,"./React":31,"./ReactTransitionChildMapping":85,"./cloneWithProps":110,"./emptyFunction":118}],88:[function(e,t){"use strict";function n(){h(O.ReactReconcileTransaction&&g)}function r(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=c.getPooled(),this.reconcileTransaction=O.ReactReconcileTransaction.getPooled()}function o(e,t,r){n(),g.batchedUpdates(e,t,r)}function i(e,t){return e._mountDepth-t._mountDepth}function a(e){var t=e.dirtyComponentsLength;h(t===m.length),m.sort(i);for(var n=0;t>n;n++){var r=m[n];if(r.isMounted()){var o=r._pendingCallbacks;if(r._pendingCallbacks=null,r.performUpdateIfNecessary(e.reconcileTransaction),o)for(var a=0;a<o.length;a++)e.callbackQueue.enqueue(o[a],r)}}}function s(e,t){return h(!t||"function"==typeof t),n(),g.isBatchingUpdates?(m.push(e),void(t&&(e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t]))):void g.batchedUpdates(s,e,t)}function u(e,t){h(g.isBatchingUpdates),v.enqueue(e,t),y=!0}var c=e("./CallbackQueue"),l=e("./PooledClass"),p=(e("./ReactCurrentOwner"),e("./ReactPerf")),d=e("./Transaction"),f=e("./Object.assign"),h=e("./invariant"),m=(e("./warning"),[]),v=c.getPooled(),y=!1,g=null,E={initialize:function(){this.dirtyComponentsLength=m.length},close:function(){this.dirtyComponentsLength!==m.length?(m.splice(0,this.dirtyComponentsLength),M()):m.length=0}},C={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},R=[E,C];f(r.prototype,d.Mixin,{getTransactionWrappers:function(){return R},destructor:function(){this.dirtyComponentsLength=null,c.release(this.callbackQueue),this.callbackQueue=null,O.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return d.Mixin.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),l.addPoolingTo(r);var M=p.measure("ReactUpdates","flushBatchedUpdates",function(){for(;m.length||y;){if(m.length){var e=r.getPooled();e.perform(a,null,e),r.release(e)}if(y){y=!1;var t=v;v=c.getPooled(),t.notifyAll(),c.release(t)}}}),b={injectReconcileTransaction:function(e){h(e),O.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){h(e),h("function"==typeof e.batchedUpdates),h("boolean"==typeof e.isBatchingUpdates),g=e}},O={ReactReconcileTransaction:null,batchedUpdates:o,enqueueUpdate:s,flushBatchedUpdates:M,injection:b,asap:u};t.exports=O},{"./CallbackQueue":7,"./Object.assign":29,"./PooledClass":30,"./ReactCurrentOwner":42,"./ReactPerf":73,"./Transaction":104,"./invariant":137,"./warning":155}],89:[function(e,t){"use strict";var n=e("./DOMProperty"),r=n.injection.MUST_USE_ATTRIBUTE,o={Properties:{cx:r,cy:r,d:r,dx:r,dy:r,fill:r,fillOpacity:r,fontFamily:r,fontSize:r,fx:r,fy:r,gradientTransform:r,gradientUnits:r,markerEnd:r,markerMid:r,markerStart:r,offset:r,opacity:r,patternContentUnits:r,patternUnits:r,points:r,preserveAspectRatio:r,r:r,rx:r,ry:r,spreadMethod:r,stopColor:r,stopOpacity:r,stroke:r,strokeDasharray:r,strokeLinecap:r,strokeOpacity:r,strokeWidth:r,textAnchor:r,transform:r,version:r,viewBox:r,x1:r,x2:r,x:r,y1:r,y2:r,y:r},DOMAttributeNames:{fillOpacity:"fill-opacity",fontFamily:"font-family",fontSize:"font-size",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",patternContentUnits:"patternContentUnits",patternUnits:"patternUnits",preserveAspectRatio:"preserveAspectRatio",spreadMethod:"spreadMethod",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeLinecap:"stroke-linecap",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",viewBox:"viewBox"}};t.exports=o},{"./DOMProperty":12}],90:[function(e,t){"use strict";function n(e){if("selectionStart"in e&&a.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function r(e){if(!y&&null!=h&&h==u()){var t=n(h);if(!v||!p(v,t)){v=t;var r=s.getPooled(f.select,m,e);return r.type="select",r.target=h,i.accumulateTwoPhaseDispatches(r),r}}}var o=e("./EventConstants"),i=e("./EventPropagators"),a=e("./ReactInputSelection"),s=e("./SyntheticEvent"),u=e("./getActiveElement"),c=e("./isTextInputElement"),l=e("./keyOf"),p=e("./shallowEqual"),d=o.topLevelTypes,f={select:{phasedRegistrationNames:{bubbled:l({onSelect:null}),captured:l({onSelectCapture:null})},dependencies:[d.topBlur,d.topContextMenu,d.topFocus,d.topKeyDown,d.topMouseDown,d.topMouseUp,d.topSelectionChange]}},h=null,m=null,v=null,y=!1,g={eventTypes:f,extractEvents:function(e,t,n,o){switch(e){case d.topFocus:(c(t)||"true"===t.contentEditable)&&(h=t,m=n,v=null);break;case d.topBlur:h=null,m=null,v=null;break;case d.topMouseDown:y=!0;break;case d.topContextMenu:case d.topMouseUp:return y=!1,r(o);case d.topSelectionChange:case d.topKeyDown:case d.topKeyUp:return r(o)}}};t.exports=g},{"./EventConstants":17,"./EventPropagators":22,"./ReactInputSelection":63,"./SyntheticEvent":96,"./getActiveElement":124,"./isTextInputElement":140,"./keyOf":144,"./shallowEqual":150}],91:[function(e,t){"use strict";var n=Math.pow(2,53),r={createReactRootIndex:function(){return Math.ceil(Math.random()*n)}};t.exports=r},{}],92:[function(e,t){"use strict";var n=e("./EventConstants"),r=e("./EventPluginUtils"),o=e("./EventPropagators"),i=e("./SyntheticClipboardEvent"),a=e("./SyntheticEvent"),s=e("./SyntheticFocusEvent"),u=e("./SyntheticKeyboardEvent"),c=e("./SyntheticMouseEvent"),l=e("./SyntheticDragEvent"),p=e("./SyntheticTouchEvent"),d=e("./SyntheticUIEvent"),f=e("./SyntheticWheelEvent"),h=e("./getEventCharCode"),m=e("./invariant"),v=e("./keyOf"),y=(e("./warning"),n.topLevelTypes),g={blur:{phasedRegistrationNames:{bubbled:v({onBlur:!0}),captured:v({onBlurCapture:!0})}},click:{phasedRegistrationNames:{bubbled:v({onClick:!0}),captured:v({onClickCapture:!0})}},contextMenu:{phasedRegistrationNames:{bubbled:v({onContextMenu:!0}),captured:v({onContextMenuCapture:!0})}},copy:{phasedRegistrationNames:{bubbled:v({onCopy:!0}),captured:v({onCopyCapture:!0})}},cut:{phasedRegistrationNames:{bubbled:v({onCut:!0}),captured:v({onCutCapture:!0})}},doubleClick:{phasedRegistrationNames:{bubbled:v({onDoubleClick:!0}),captured:v({onDoubleClickCapture:!0})}},drag:{phasedRegistrationNames:{bubbled:v({onDrag:!0}),captured:v({onDragCapture:!0})}},dragEnd:{phasedRegistrationNames:{bubbled:v({onDragEnd:!0}),captured:v({onDragEndCapture:!0})}},dragEnter:{phasedRegistrationNames:{bubbled:v({onDragEnter:!0}),captured:v({onDragEnterCapture:!0})}},dragExit:{phasedRegistrationNames:{bubbled:v({onDragExit:!0}),captured:v({onDragExitCapture:!0})}},dragLeave:{phasedRegistrationNames:{bubbled:v({onDragLeave:!0}),captured:v({onDragLeaveCapture:!0})}},dragOver:{phasedRegistrationNames:{bubbled:v({onDragOver:!0}),captured:v({onDragOverCapture:!0})}},dragStart:{phasedRegistrationNames:{bubbled:v({onDragStart:!0}),captured:v({onDragStartCapture:!0})}},drop:{phasedRegistrationNames:{bubbled:v({onDrop:!0}),captured:v({onDropCapture:!0})}},focus:{phasedRegistrationNames:{bubbled:v({onFocus:!0}),captured:v({onFocusCapture:!0})}},input:{phasedRegistrationNames:{bubbled:v({onInput:!0}),captured:v({onInputCapture:!0})}},keyDown:{phasedRegistrationNames:{bubbled:v({onKeyDown:!0}),captured:v({onKeyDownCapture:!0})}},keyPress:{phasedRegistrationNames:{bubbled:v({onKeyPress:!0}),captured:v({onKeyPressCapture:!0})}},keyUp:{phasedRegistrationNames:{bubbled:v({onKeyUp:!0}),captured:v({onKeyUpCapture:!0})}},load:{phasedRegistrationNames:{bubbled:v({onLoad:!0}),captured:v({onLoadCapture:!0})}},error:{phasedRegistrationNames:{bubbled:v({onError:!0}),captured:v({onErrorCapture:!0})}},mouseDown:{phasedRegistrationNames:{bubbled:v({onMouseDown:!0}),captured:v({onMouseDownCapture:!0})}},mouseMove:{phasedRegistrationNames:{bubbled:v({onMouseMove:!0}),captured:v({onMouseMoveCapture:!0})}},mouseOut:{phasedRegistrationNames:{bubbled:v({onMouseOut:!0}),captured:v({onMouseOutCapture:!0})}},mouseOver:{phasedRegistrationNames:{bubbled:v({onMouseOver:!0}),captured:v({onMouseOverCapture:!0})}},mouseUp:{phasedRegistrationNames:{bubbled:v({onMouseUp:!0}),captured:v({onMouseUpCapture:!0})}},paste:{phasedRegistrationNames:{bubbled:v({onPaste:!0}),captured:v({onPasteCapture:!0})}},reset:{phasedRegistrationNames:{bubbled:v({onReset:!0}),captured:v({onResetCapture:!0})}},scroll:{phasedRegistrationNames:{bubbled:v({onScroll:!0}),captured:v({onScrollCapture:!0})}},submit:{phasedRegistrationNames:{bubbled:v({onSubmit:!0}),captured:v({onSubmitCapture:!0})}},touchCancel:{phasedRegistrationNames:{bubbled:v({onTouchCancel:!0}),captured:v({onTouchCancelCapture:!0})}},touchEnd:{phasedRegistrationNames:{bubbled:v({onTouchEnd:!0}),captured:v({onTouchEndCapture:!0})}},touchMove:{phasedRegistrationNames:{bubbled:v({onTouchMove:!0}),captured:v({onTouchMoveCapture:!0})}},touchStart:{phasedRegistrationNames:{bubbled:v({onTouchStart:!0}),captured:v({onTouchStartCapture:!0})}},wheel:{phasedRegistrationNames:{bubbled:v({onWheel:!0}),captured:v({onWheelCapture:!0})}}},E={topBlur:g.blur,topClick:g.click,topContextMenu:g.contextMenu,topCopy:g.copy,topCut:g.cut,topDoubleClick:g.doubleClick,topDrag:g.drag,topDragEnd:g.dragEnd,topDragEnter:g.dragEnter,topDragExit:g.dragExit,topDragLeave:g.dragLeave,topDragOver:g.dragOver,topDragStart:g.dragStart,topDrop:g.drop,topError:g.error,topFocus:g.focus,topInput:g.input,topKeyDown:g.keyDown,topKeyPress:g.keyPress,topKeyUp:g.keyUp,topLoad:g.load,topMouseDown:g.mouseDown,topMouseMove:g.mouseMove,topMouseOut:g.mouseOut,topMouseOver:g.mouseOver,topMouseUp:g.mouseUp,topPaste:g.paste,topReset:g.reset,topScroll:g.scroll,topSubmit:g.submit,topTouchCancel:g.touchCancel,topTouchEnd:g.touchEnd,topTouchMove:g.touchMove,topTouchStart:g.touchStart,topWheel:g.wheel};for(var C in E)E[C].dependencies=[C];var R={eventTypes:g,executeDispatch:function(e,t,n){var o=r.executeDispatch(e,t,n);o===!1&&(e.stopPropagation(),e.preventDefault())},extractEvents:function(e,t,n,r){var v=E[e];if(!v)return null;var g;switch(e){case y.topInput:case y.topLoad:case y.topError:case y.topReset:case y.topSubmit:g=a;break;case y.topKeyPress:if(0===h(r))return null;case y.topKeyDown:case y.topKeyUp:g=u;break;case y.topBlur:case y.topFocus:g=s;break;case y.topClick:if(2===r.button)return null;case y.topContextMenu:case y.topDoubleClick:case y.topMouseDown:case y.topMouseMove:case y.topMouseOut:case y.topMouseOver:case y.topMouseUp:g=c;break;case y.topDrag:case y.topDragEnd:case y.topDragEnter:case y.topDragExit:case y.topDragLeave:case y.topDragOver:case y.topDragStart:case y.topDrop:g=l;break;case y.topTouchCancel:case y.topTouchEnd:case y.topTouchMove:case y.topTouchStart:g=p;break;case y.topScroll:g=d;break;case y.topWheel:g=f;break;case y.topCopy:case y.topCut:case y.topPaste:g=i}m(g);var C=g.getPooled(v,n,r);return o.accumulateTwoPhaseDispatches(C),C}};t.exports=R},{"./EventConstants":17,"./EventPluginUtils":21,"./EventPropagators":22,"./SyntheticClipboardEvent":93,"./SyntheticDragEvent":95,"./SyntheticEvent":96,"./SyntheticFocusEvent":97,"./SyntheticKeyboardEvent":99,"./SyntheticMouseEvent":100,"./SyntheticTouchEvent":101,"./SyntheticUIEvent":102,"./SyntheticWheelEvent":103,"./getEventCharCode":125,"./invariant":137,"./keyOf":144,"./warning":155}],93:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":96}],94:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={data:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":96}],95:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticMouseEvent"),o={dataTransfer:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticMouseEvent":100}],96:[function(e,t){"use strict";function n(e,t,n){this.dispatchConfig=e,this.dispatchMarker=t,this.nativeEvent=n;var r=this.constructor.Interface;for(var o in r)if(r.hasOwnProperty(o)){var a=r[o];this[o]=a?a(n):n[o]}var s=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;this.isDefaultPrevented=s?i.thatReturnsTrue:i.thatReturnsFalse,this.isPropagationStopped=i.thatReturnsFalse}var r=e("./PooledClass"),o=e("./Object.assign"),i=e("./emptyFunction"),a=e("./getEventTarget"),s={type:null,target:a,currentTarget:i.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};o(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e.preventDefault?e.preventDefault():e.returnValue=!1,this.isDefaultPrevented=i.thatReturnsTrue},stopPropagation:function(){var e=this.nativeEvent;e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.isPropagationStopped=i.thatReturnsTrue},persist:function(){this.isPersistent=i.thatReturnsTrue},isPersistent:i.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;this.dispatchConfig=null,this.dispatchMarker=null,this.nativeEvent=null}}),n.Interface=s,n.augmentClass=function(e,t){var n=this,i=Object.create(n.prototype);o(i,e.prototype),e.prototype=i,e.prototype.constructor=e,e.Interface=o({},n.Interface,t),e.augmentClass=n.augmentClass,r.addPoolingTo(e,r.threeArgumentPooler)},r.addPoolingTo(n,r.threeArgumentPooler),t.exports=n},{"./Object.assign":29,"./PooledClass":30,"./emptyFunction":118,"./getEventTarget":128}],97:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o={relatedTarget:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticUIEvent":102}],98:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o={data:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticEvent":96}],99:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./getEventCharCode"),i=e("./getEventKey"),a=e("./getEventModifierState"),s={key:i,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:a,charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};r.augmentClass(n,s),t.exports=n},{"./SyntheticUIEvent":102,"./getEventCharCode":125,"./getEventKey":126,"./getEventModifierState":127}],100:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./ViewportMetrics"),i=e("./getEventModifierState"),a={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:i,button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};r.augmentClass(n,a),t.exports=n},{"./SyntheticUIEvent":102,"./ViewportMetrics":105,"./getEventModifierState":127}],101:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticUIEvent"),o=e("./getEventModifierState"),i={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:o};r.augmentClass(n,i),t.exports=n},{"./SyntheticUIEvent":102,"./getEventModifierState":127}],102:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticEvent"),o=e("./getEventTarget"),i={view:function(e){if(e.view)return e.view;var t=o(e);if(null!=t&&t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};r.augmentClass(n,i),t.exports=n},{"./SyntheticEvent":96,"./getEventTarget":128}],103:[function(e,t){"use strict";function n(e,t,n){r.call(this,e,t,n)}var r=e("./SyntheticMouseEvent"),o={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};r.augmentClass(n,o),t.exports=n},{"./SyntheticMouseEvent":100}],104:[function(e,t){"use strict";var n=e("./invariant"),r={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,r,o,i,a,s,u){n(!this.isInTransaction());var c,l;try{this._isInTransaction=!0,c=!0,this.initializeAll(0),l=e.call(t,r,o,i,a,s,u),c=!1}finally{try{if(c)try{this.closeAll(0)}catch(p){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o.OBSERVED_ERROR,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o.OBSERVED_ERROR)try{this.initializeAll(n+1)}catch(i){}}}},closeAll:function(e){n(this.isInTransaction());for(var t=this.transactionWrappers,r=e;r<t.length;r++){var i,a=t[r],s=this.wrapperInitData[r];try{i=!0,s!==o.OBSERVED_ERROR&&a.close&&a.close.call(this,s),i=!1}finally{if(i)try{this.closeAll(r+1)}catch(u){}}}this.wrapperInitData.length=0}},o={Mixin:r,OBSERVED_ERROR:{}};t.exports=o},{"./invariant":137}],105:[function(e,t){"use strict";var n=e("./getUnboundedScrollPosition"),r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(){var e=n(window);r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};t.exports=r},{"./getUnboundedScrollPosition":133}],106:[function(e,t){"use strict";function n(e,t){if(r(null!=t),null==e)return t;var n=Array.isArray(e),o=Array.isArray(t);return n&&o?(e.push.apply(e,t),e):n?(e.push(t),e):o?[e].concat(t):[e,t]}var r=e("./invariant");t.exports=n},{"./invariant":137}],107:[function(e,t){"use strict";function n(e){for(var t=1,n=0,o=0;o<e.length;o++)t=(t+e.charCodeAt(o))%r,n=(n+t)%r;return t|n<<16}var r=65521;t.exports=n},{}],108:[function(e,t){function n(e){return e.replace(r,function(e,t){return t.toUpperCase()})}var r=/-(.)/g;t.exports=n},{}],109:[function(e,t){"use strict";function n(e){return r(e.replace(o,"ms-"))}var r=e("./camelize"),o=/^-ms-/;t.exports=n},{"./camelize":108}],110:[function(e,t){"use strict";function n(e,t){var n=o.mergeProps(t,e.props);return!n.hasOwnProperty(a)&&e.props.hasOwnProperty(a)&&(n.children=e.props.children),r.createElement(e.type,n)}var r=e("./ReactElement"),o=e("./ReactPropTransferer"),i=e("./keyOf"),a=(e("./warning"),i({children:null}));t.exports=n},{"./ReactElement":56,"./ReactPropTransferer":74,"./keyOf":144,"./warning":155}],111:[function(e,t){function n(e,t){return e&&t?e===t?!0:r(e)?!1:r(t)?n(e,t.parentNode):e.contains?e.contains(t):e.compareDocumentPosition?!!(16&e.compareDocumentPosition(t)):!1:!1}var r=e("./isTextNode");t.exports=n},{"./isTextNode":141}],112:[function(e,t){function n(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}function r(e){return n(e)?Array.isArray(e)?e.slice():o(e):[e]}var o=e("./toArray");t.exports=r},{"./toArray":152}],113:[function(e,t){"use strict";function n(e){var t=o.createFactory(e),n=r.createClass({displayName:"ReactFullPageComponent"+e,componentWillUnmount:function(){i(!1)},render:function(){return t(this.props)}});return n}var r=e("./ReactCompositeComponent"),o=e("./ReactElement"),i=e("./invariant");t.exports=n},{"./ReactCompositeComponent":40,"./ReactElement":56,"./invariant":137}],114:[function(e,t){function n(e){var t=e.match(c);return t&&t[1].toLowerCase()}function r(e,t){var r=u;s(!!u);var o=n(e),c=o&&a(o);if(c){r.innerHTML=c[1]+e+c[2];for(var l=c[0];l--;)r=r.lastChild}else r.innerHTML=e;var p=r.getElementsByTagName("script");p.length&&(s(t),i(p).forEach(t));for(var d=i(r.childNodes);r.lastChild;)r.removeChild(r.lastChild);return d}var o=e("./ExecutionEnvironment"),i=e("./createArrayFrom"),a=e("./getMarkupWrap"),s=e("./invariant"),u=o.canUseDOM?document.createElement("div"):null,c=/^\s*<(\w+)/;t.exports=r},{"./ExecutionEnvironment":23,"./createArrayFrom":112,"./getMarkupWrap":129,"./invariant":137}],115:[function(e,t){function n(e){return"object"==typeof e?Object.keys(e).filter(function(t){return e[t]}).join(" "):Array.prototype.join.call(arguments," ")}t.exports=n},{}],116:[function(e,t){"use strict";function n(e,t){var n=null==t||"boolean"==typeof t||""===t;if(n)return"";var r=isNaN(t);return r||0===t||o.hasOwnProperty(e)&&o[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}var r=e("./CSSProperty"),o=r.isUnitlessNumber;t.exports=n},{"./CSSProperty":5}],117:[function(e,t){function n(e,t,n,r,o){return o 16 }e("./Object.assign"),e("./warning");t.exports=n},{"./Object.assign":29,"./warning":155}],118:[function(e,t){function n(e){return function(){return e}}function r(){}r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},t.exports=r},{}],119:[function(e,t){"use strict";var n={};t.exports=n},{}],120:[function(e,t){"use strict";function n(e){return o[e]}function r(e){return(""+e).replace(i,n)}var o={"&":"&",">":">","<":"<",'"':""","'":"'"},i=/[&><"']/g;t.exports=r},{}],121:[function(e,t){"use strict";function n(e,t,n){var r=e,i=!r.hasOwnProperty(n);if(i&&null!=t){var a,s=typeof t;a="string"===s?o(t):"number"===s?o(""+t):t,r[n]=a}}function r(e){if(null==e)return e;var t={};return i(e,n,t),t}{var o=e("./ReactTextComponent"),i=e("./traverseAllChildren");e("./warning")}t.exports=r},{"./ReactTextComponent":84,"./traverseAllChildren":153,"./warning":155}],122:[function(e,t){"use strict";function n(e){try{e.focus()}catch(t){}}t.exports=n},{}],123:[function(e,t){"use strict";var n=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=n},{}],124:[function(e,t){function n(){try{return document.activeElement||document.body}catch(e){return document.body}}t.exports=n},{}],125:[function(e,t){"use strict";function n(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=n},{}],126:[function(e,t){"use strict";function n(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=r(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}var r=e("./getEventCharCode"),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=n},{"./getEventCharCode":125}],127:[function(e,t){"use strict";function n(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=o[e];return r?!!n[r]:!1}function r(){return n}var o={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=r},{}],128:[function(e,t){"use strict";function n(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}t.exports=n},{}],129:[function(e,t){function n(e){return o(!!i),p.hasOwnProperty(e)||(e="*"),a.hasOwnProperty(e)||(i.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",a[e]=!i.firstChild),a[e]?p[e]:null}var r=e("./ExecutionEnvironment"),o=e("./invariant"),i=r.canUseDOM?document.createElement("div"):null,a={circle:!0,defs:!0,ellipse:!0,g:!0,line:!0,linearGradient:!0,path:!0,polygon:!0,polyline:!0,radialGradient:!0,rect:!0,stop:!0,text:!0},s=[1,'<select multiple="true">',"</select>"],u=[1,"<table>","</table>"],c=[3,"<table><tbody><tr>","</tr></tbody></table>"],l=[1,"<svg>","</svg>"],p={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:s,option:s,caption:u,colgroup:u,tbody:u,tfoot:u,thead:u,td:c,th:c,circle:l,defs:l,ellipse:l,g:l,line:l,linearGradient:l,path:l,polygon:l,polyline:l,radialGradient:l,rect:l,stop:l,text:l};t.exports=n},{"./ExecutionEnvironment":23,"./invariant":137}],130:[function(e,t){"use strict";function n(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function r(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function o(e,t){for(var o=n(e),i=0,a=0;o;){if(3==o.nodeType){if(a=i+o.textContent.length,t>=i&&a>=t)return{node:o,offset:t-i};i=a}o=n(r(o))}}t.exports=o},{}],131:[function(e,t){"use strict";function n(e){return e?e.nodeType===r?e.documentElement:e.firstChild:null}var r=9;t.exports=n},{}],132:[function(e,t){"use strict";function n(){return!o&&r.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}var r=e("./ExecutionEnvironment"),o=null;t.exports=n},{"./ExecutionEnvironment":23}],133:[function(e,t){"use strict";function n(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=n},{}],134:[function(e,t){function n(e){return e.replace(r,"-$1").toLowerCase()}var r=/([A-Z])/g;t.exports=n},{}],135:[function(e,t){"use strict";function n(e){return r(e).replace(o,"-ms-")}var r=e("./hyphenate"),o=/^ms-/;t.exports=n},{"./hyphenate":134}],136:[function(e,t){"use strict";function n(e,t){var n;return n="string"==typeof e.type?r.createInstanceForTag(e.type,e.props,t):new e.type(e.props),n.construct(e),n}{var r=(e("./warning"),e("./ReactElement"),e("./ReactLegacyElement"),e("./ReactNativeComponent"));e("./ReactEmptyComponent")}t.exports=n},{"./ReactElement":56,"./ReactEmptyComponent":58,"./ReactLegacyElement":65,"./ReactNativeComponent":71,"./warning":155}],137:[function(e,t){"use strict";var n=function(e,t,n,r,o,i,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;u=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return c[l++]}))}throw u.framesToPop=1,u}};t.exports=n},{}],138:[function(e,t){"use strict";function n(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,i=n in document;if(!i){var a=document.createElement("div");a.setAttribute(n,"return;"),i="function"==typeof a[n]}return!i&&r&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}var r,o=e("./ExecutionEnvironment");o.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=n},{"./ExecutionEnvironment":23}],139:[function(e,t){function n(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=n},{}],140:[function(e,t){"use strict";function n(e){return e&&("INPUT"===e.nodeName&&r[e.type]||"TEXTAREA"===e.nodeName)}var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=n},{}],141:[function(e,t){function n(e){return r(e)&&3==e.nodeType}var r=e("./isNode");t.exports=n},{"./isNode":139}],142:[function(e,t){"use strict";function n(e){e||(e="");var t,n=arguments.length;if(n>1)for(var r=1;n>r;r++)t=arguments[r],t&&(e=(e?e+" ":"")+t);return e}t.exports=n},{}],143:[function(e,t){"use strict";var n=e("./invariant"),r=function(e){var t,r={};n(e instanceof Object&&!Array.isArray(e));for(t in e)e.hasOwnProperty(t)&&(r[t]=t);return r};t.exports=r},{"./invariant":137}],144:[function(e,t){var n=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=n},{}],145:[function(e,t){"use strict";function n(e,t,n){if(!e)return null;var o={};for(var i in e)r.call(e,i)&&(o[i]=t.call(n,e[i],i,e));return o}var r=Object.prototype.hasOwnProperty;t.exports=n},{}],146:[function(e,t){"use strict";function n(e){var t={};return function(n){return t.hasOwnProperty(n)?t[n]:t[n]=e.call(this,n)}}t.exports=n},{}],147:[function(e,t){"use strict";function n(e){r(e&&!/[^a-z0-9_]/.test(e))}var r=e("./invariant");t.exports=n},{"./invariant":137}],148:[function(e,t){"use strict";function n(e){return o(r.isValidElement(e)),e}var r=e("./ReactElement"),o=e("./invariant");t.exports=n},{"./ReactElement":56,"./invariant":137}],149:[function(e,t){"use strict";var n=e("./ExecutionEnvironment"),r=/^[ \r\n\t\f]/,o=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,i=function(e,t){e.innerHTML=t};if(n.canUseDOM){var a=document.createElement("div");a.innerHTML=" ",""===a.innerHTML&&(i=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),r.test(t)||"<"===t[0]&&o.test(t)){e.innerHTML=""+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}t.exports=i},{"./ExecutionEnvironment":23}],150:[function(e,t){"use strict";function n(e,t){if(e===t)return!0;var n;for(n in e)if(e.hasOwnProperty(n)&&(!t.hasOwnProperty(n)||e[n]!==t[n]))return!1;for(n in t)if(t.hasOwnProperty(n)&&!e.hasOwnProperty(n))return!1;return!0}t.exports=n},{}],151:[function(e,t){"use strict";function n(e,t){return e&&t&&e.type===t.type&&e.key===t.key&&e._owner===t._owner?!0:!1}t.exports=n},{}],152:[function(e,t){function n(e){var t=e.length;if(r(!Array.isArray(e)&&("object"==typeof e||"function"==typeof e)),r("number"==typeof t),r(0===t||t-1 in e),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(n){}for(var o=Array(t),i=0;t>i;i++)o[i]=e[i];return o}var r=e("./invariant");t.exports=n},{"./invariant":137}],153:[function(e,t){"use strict";function n(e){return d[e]}function r(e,t){return e&&null!=e.key?i(e.key):t.toString(36)}function o(e){return(""+e).replace(f,n)}function i(e){return"$"+o(e)}function a(e,t,n){return null==e?0:h(e,"",0,t,n)}var s=e("./ReactElement"),u=e("./ReactInstanceHandles"),c=e("./invariant"),l=u.SEPARATOR,p=":",d={"=":"=0",".":"=1",":":"=2"},f=/[=.:]/g,h=function(e,t,n,o,a){var u,d,f=0;if(Array.isArray(e))for(var m=0;m<e.length;m++){var v=e[m];u=t+(t?p:l)+r(v,m),d=n+f,f+=h(v,u,d,o,a)}else{var y=typeof e,g=""===t,E=g?l+r(e,0):t;if(null==e||"boolean"===y)o(a,null,E,n),f=1;else if("string"===y||"number"===y||s.isValidElement(e))o(a,e,E,n),f=1;else if("object"===y){c(!e||1!==e.nodeType);for(var C in e)e.hasOwnProperty(C)&&(u=t+(t?p:l)+i(C)+p+r(e[C],0),d=n+f,f+=h(e[C],u,d,o,a))}}return f};t.exports=a},{"./ReactElement":56,"./ReactInstanceHandles":64,"./invariant":137}],154:[function(e,t){"use strict";function n(e){return Array.isArray(e)?e.concat():e&&"object"==typeof e?i(new e.constructor,e):e}function r(e,t,n){s(Array.isArray(e));var r=t[n];s(Array.isArray(r))}function o(e,t){if(s("object"==typeof t),t.hasOwnProperty(p))return s(1===Object.keys(t).length),t[p];var a=n(e);if(t.hasOwnProperty(d)){var h=t[d];s(h&&"object"==typeof h),s(a&&"object"==typeof a),i(a,t[d])}t.hasOwnProperty(u)&&(r(e,t,u),t[u].forEach(function(e){a.push(e)})),t.hasOwnProperty(c)&&(r(e,t,c),t[c].forEach(function(e){a.unshift(e)})),t.hasOwnProperty(l)&&(s(Array.isArray(e)),s(Array.isArray(t[l])),t[l].forEach(function(e){s(Array.isArray(e)),a.splice.apply(a,e)})),t.hasOwnProperty(f)&&(s("function"==typeof t[f]),a=t[f](a));for(var v in t)m.hasOwnProperty(v)&&m[v]||(a[v]=o(e[v],t[v]));return a}var i=e("./Object.assign"),a=e("./keyOf"),s=e("./invariant"),u=a({$push:null}),c=a({$unshift:null}),l=a({$splice:null}),p=a({$set:null}),d=a({$merge:null}),f=a({$apply:null}),h=[u,c,l,p,d,f],m={};h.forEach(function(e){m[e]=!0}),t.exports=o},{"./Object.assign":29,"./invariant":137,"./keyOf":144}],155:[function(e,t){"use strict";var n=e("./emptyFunction"),r=n;t.exports=r},{"./emptyFunction":118}]},{},[1])(1)}); -
SRUAggregator/trunk/src/test/java/eu/clarin/sru/fcs/aggregator/app/ScanCrawlerTest.java
r5758 r5771 3 3 import eu.clarin.sru.client.SRUThreadedClient; 4 4 import eu.clarin.sru.client.fcs.ClarinFCSClientBuilder; 5 import eu.clarin.sru.fcs.aggregator.cache.Corpora; 5 6 import eu.clarin.sru.fcs.aggregator.cache.EndpointUrlFilter; 6 import eu.clarin.sru.fcs.aggregator.cache.ScanCache;7 7 import eu.clarin.sru.fcs.aggregator.cache.ScanCrawler; 8 import eu.clarin.sru.fcs.aggregator.registry.CenterRegistry; 8 9 import eu.clarin.sru.fcs.aggregator.registry.CenterRegistryLive; 9 10 import eu.clarin.sru.fcs.aggregator.registry.Corpus; 10 11 import java.util.HashSet; 11 12 import java.util.Set; 13 import javax.naming.InitialContext; 14 import javax.naming.NamingException; 12 15 import org.junit.Assert; 13 16 import org.junit.Ignore; … … 22 25 23 26 @Test 24 public void testCrawlForMpiAndTue() {27 public void testCrawlForMpiAndTue() throws NamingException { 25 28 26 29 SRUThreadedClient sruClient = new ClarinFCSClientBuilder() … … 31 34 EndpointUrlFilter filter = new EndpointUrlFilter() 32 35 .allow("uni-tuebingen.de"); //, "leipzig", ".mpi.nl", "dspin.dwds.de", "lindat." 33 ScanCrawler crawler = new ScanCrawler(new CenterRegistryLive(), sruClient, filter, 2); 34 ScanCache cache = crawler.crawl(); 35 Corpus tueRootCorpus = cache.getRootCorporaOfEndpoint("http://weblicht.sfs.uni-tuebingen.de/rws/sru/").get(0); 36 Corpus mpiRootCorpus = cache.getRootCorporaOfEndpoint("http://cqlservlet.mpi.nl/").get(0); 36 37 InitialContext context = new InitialContext(); 38 String centerRegistryUrl = (String) context.lookup("java:comp/env/center-registry-url"); 39 CenterRegistry centerRegistry = new CenterRegistryLive(centerRegistryUrl); 40 ScanCrawler crawler = new ScanCrawler(centerRegistry, sruClient, filter, 2); 41 Corpora cache = crawler.crawl(); 42 Corpus tueRootCorpus = cache.findByEndpoint("http://weblicht.sfs.uni-tuebingen.de/rws/sru/").get(0); 43 Corpus mpiRootCorpus = cache.findByEndpoint("http://cqlservlet.mpi.nl/").get(0); 37 44 Assert.assertEquals("http://hdl.handle.net/11858/00-1778-0000-0001-DDAF-D", 38 45 tueRootCorpus.getHandle()); 39 Corpus mpiCorpus = cache. getCorpus("hdl:1839/00-0000-0000-0001-53A5-2@format=cmdi");40 Assert.assertEquals("hdl:1839/00-0000-0000-0003-4692-D@format=cmdi", cache.getChildren(mpiCorpus).get(0).getHandle());46 Corpus mpiCorpus = cache.findByHandle("hdl:1839/00-0000-0000-0001-53A5-2@format=cmdi"); 47 Assert.assertEquals("hdl:1839/00-0000-0000-0003-4692-D@format=cmdi", mpiCorpus.getSubCorpora().get(0).getHandle()); 41 48 //check if languages and other corpus data is crawled corectly... 42 49 Set<String> tueLangs = new HashSet<>();
Note: See TracChangeset
for help on using the changeset viewer.